
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: uint64_t set_section_list_addresses(Output_segment * this, Layout *
   layout, bool reset, Output_data_list * pdl, uint64_t addr, off_t * poff, off_t * pfoff, uint *
   pshndx, bool * in_tls) */

uint64_t __thiscall
gold::Output_segment::set_section_list_addresses
          (Output_segment *this,Layout *layout,bool reset,Output_data_list *pdl,uint64_t addr,
          off_t *poff,off_t *pfoff,uint *pshndx,bool *in_tls)

{
  byte bVar1;
  uint uVar2;
  Errors *this_00;
  off_t len;
  Parameters *this_01;
  byte bVar3;
  bool bVar4;
  int iVar5;
  uint64_t uVar6;
  undefined4 extraout_var;
  undefined4 extraout_var_00;
  undefined4 extraout_var_01;
  uint64_t uVar7;
  ulong uVar8;
  undefined4 extraout_var_02;
  undefined4 extraout_var_03;
  undefined4 extraout_var_04;
  undefined4 extraout_var_05;
  undefined4 extraout_var_06;
  pointer ppOVar9;
  undefined8 uVar10;
  Output_data *pOVar11;
  char *pcVar12;
  ulong uVar13;
  char cVar14;
  ulong uVar15;
  ulong minoff;
  ulong uVar16;
  
  minoff = *poff;
  uVar16 = *pfoff;
  ppOVar9 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).
            _M_impl._M_start;
  if (ppOVar9 !=
      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.
      _M_finish) {
    uVar8 = minoff;
    uVar15 = minoff;
    do {
      iVar5 = (*(*ppOVar9)->_vptr_Output_data[7])(*ppOVar9,8);
      bVar3 = (byte)iVar5;
      iVar5 = (*(*ppOVar9)->_vptr_Output_data[8])(*ppOVar9,0x400);
      if (reset) {
        pOVar11 = *ppOVar9;
        bVar1 = pOVar11->field_0x20;
        pOVar11->field_0x20 = bVar1 & 0xfa;
        if ((bVar1 & 8) == 0) {
          pOVar11->field_0x20 = bVar1 & 0xf8;
        }
        (*pOVar11->_vptr_Output_data[0xf])();
      }
      cVar14 = (char)iVar5;
      if (((*ppOVar9)->field_0x20 & 1) == 0) {
        iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])();
        uVar13 = CONCAT44(extraout_var_01,iVar5);
        uVar6 = uVar13;
        if (cVar14 == '\0') {
          if (*in_tls == false) goto LAB_003cb7c6;
          uVar7 = maximum_alignment(layout->tls_segment_);
          this_01 = parameters;
          if (uVar13 < uVar7) {
            uVar6 = uVar7;
          }
          *in_tls = false;
          bVar4 = Parameters::incremental_update(this_01);
        }
        else {
          if (*in_tls == false) {
            if (layout->tls_segment_ == (Output_segment *)0x0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");
            }
            uVar6 = maximum_alignment(layout->tls_segment_);
            if (uVar6 < uVar13) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");
            }
            *in_tls = true;
          }
LAB_003cb7c6:
          bVar4 = Parameters::incremental_update(parameters);
        }
        if (bVar4) {
          pOVar11 = *ppOVar9;
          if ((pOVar11->field_0x20 & 2) == 0) {
            (*pOVar11->_vptr_Output_data[0xd])();
            pOVar11 = *ppOVar9;
          }
          len = pOVar11->data_size_;
          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);
          if (uVar8 == 0xffffffffffffffff) {
            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();
            if (CONCAT44(extraout_var_03,iVar5) == 0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");
            }
            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();
            pcVar12 = "out of patch space for section %s; relink with --incremental-full";
            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);
LAB_003cbcf1:
            pcVar12 = (char *)gettext(pcVar12);
                    /* WARNING: Subroutine does not return */
            gold_fallback(pcVar12,uVar10);
          }
          pOVar11 = *ppOVar9;
          bVar1 = pOVar11->field_0x20;
          if ((bVar1 & 1) != 0) goto LAB_003cbd96;
          pOVar11->address_ = (uVar8 - minoff) + addr;
          pOVar11->field_0x20 = bVar1 | 1;
          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;
          pOVar11->offset_ = uVar8;
          pOVar11->field_0x20 = bVar1 | 5;
          if ((bVar1 & 2) == 0) {
            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);
            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;
            pOVar11 = *ppOVar9;
            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;
          }
          uVar16 = uVar8;
          if (len < pOVar11->data_size_) {
            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);
            if (CONCAT44(extraout_var_05,iVar5) == 0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");
            }
            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();
            pcVar12 = "%s: section changed size; relink with --incremental-full";
            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);
            goto LAB_003cbcf1;
          }
        }
        else {
          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");
          }
          if (uVar6 != 0) {
            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;
          }
          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {
            uVar16 = uVar8;
          }
          pOVar11 = *ppOVar9;
          bVar1 = pOVar11->field_0x20;
          if ((bVar1 & 1) != 0) {
LAB_003cbd96:
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/output.h",0x142,"set_address");
          }
          pOVar11->address_ = (uVar8 - minoff) + addr;
          pOVar11->field_0x20 = bVar1 | 1;
          if ((bVar1 & 4) != 0) {
LAB_003cbd7e:
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");
          }
          pOVar11->offset_ = uVar16;
          pOVar11->field_0x20 = bVar1 | 5;
          if ((bVar1 & 2) == 0) goto LAB_003cb852;
        }
      }
      else {
        bVar4 = Parameters::incremental_update(parameters);
        if (bVar4) {
          if (((*ppOVar9)->field_0x20 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/output.h",0xe3,"offset");
          }
          uVar8 = (*ppOVar9)->offset_;
          uVar16 = uVar8;
        }
        else {
          pOVar11 = *ppOVar9;
          if ((pOVar11->field_0x20 & 1) == 0) {
LAB_003cbe3e:
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/output.h",0xc5,"address");
          }
          uVar13 = (uVar8 - minoff) + addr;
          if (pOVar11->address_ < uVar13) {
            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");
            }
            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);
            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;
            uVar6 = (*ppOVar9)->address_;
            if (CONCAT44(extraout_var_02,iVar5) == 0) {
              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")
              ;
              gold_error(pcVar12,uVar13,uVar6);
              pOVar11 = *ppOVar9;
            }
            else {
              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);
              pcVar12 = (char *)gettext(
                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"
                                       );
              gold_error(pcVar12,uVar10,uVar13,uVar6);
              pOVar11 = *ppOVar9;
            }
          }
          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {
            pcVar12 = (char *)gettext(
                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"
                                     );
            gold_warning(pcVar12);
            pOVar11 = *ppOVar9;
            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;
            uVar8 = (uVar8 + pOVar11->address_) - uVar13;
            uVar16 = uVar8;
          }
          else {
            uVar8 = (pOVar11->address_ + uVar8) - uVar13;
            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {
              uVar16 = uVar8;
            }
          }
          bVar1 = pOVar11->field_0x20;
          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;
          pOVar11->offset_ = uVar16;
          pOVar11->field_0x20 = bVar1 | 4;
          if ((bVar1 & 2) != 0) goto LAB_003cb866;
LAB_003cb852:
          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);
          if ((pOVar11->field_0x20 & 2) == 0) {
LAB_003cbdae:
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");
          }
        }
      }
LAB_003cb866:
      bVar4 = Parameters::incremental_update(parameters);
      if (bVar4) {
        pOVar11 = *ppOVar9;
        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))
        {
          this_00 = parameters->errors_;
          iVar5 = (*pOVar11->_vptr_Output_data[9])();
          pcVar12 = "(special)";
          if (CONCAT44(extraout_var,iVar5) != 0) {
            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();
            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);
          }
          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;
          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,
                        (*ppOVar9)->data_size_,pcVar12);
          goto LAB_003cb8d4;
        }
      }
      else {
LAB_003cb8d4:
        pOVar11 = *ppOVar9;
      }
      if ((cVar14 == '\0') || (bVar3 == 0)) {
        if ((pOVar11->field_0x20 & 2) == 0) {
LAB_003cbd66:
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
        }
        uVar8 = uVar8 + pOVar11->data_size_;
        if (bVar3 == 0) {
          uVar16 = uVar8;
        }
      }
      if ((long)uVar15 < (long)uVar8) {
        uVar15 = uVar8;
      }
      iVar5 = (*pOVar11->_vptr_Output_data[6])();
      if ((char)iVar5 != '\0') {
        pOVar11 = *ppOVar9;
        if (pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx) {
          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);
          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");
          }
          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;
        }
        else {
          (*pOVar11->_vptr_Output_data[0xc])();
        }
        *pshndx = *pshndx + 1;
      }
      ppOVar9 = ppOVar9 + 1;
    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).
             _M_impl._M_finish != ppOVar9);
    addr = (uVar15 - minoff) + addr;
    minoff = uVar15;
  }
  *poff = minoff;
  *pfoff = uVar16;
  return addr;
}



long FUN_003cb730(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,
                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)

{
  byte bVar1;
  undefined *puVar2;
  byte bVar3;
  char cVar4;
  char cVar5;
  ulong uVar6;
  long lVar7;
  ulong uVar8;
  ulong uVar9;
  ulong uVar10;
  undefined8 uVar11;
  undefined8 uVar12;
  undefined8 uVar13;
  long *plVar14;
  long *plVar15;
  char *pcVar16;
  ulong uVar17;
  ulong uVar18;
  ulong uVar19;
  
  uVar18 = *param_6;
  uVar19 = *param_7;
  plVar14 = (long *)*param_4;
  if (plVar14 != (long *)param_4[1]) {
    uVar10 = uVar18;
    uVar17 = uVar18;
    do {
      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);
      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);
      if (param_3 != '\0') {
        plVar15 = (long *)*plVar14;
        bVar1 = *(byte *)(plVar15 + 4);
        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;
        if ((bVar1 & 8) == 0) {
          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;
        }
        (**(code **)(*plVar15 + 0x78))();
      }
      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {
        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();
        uVar6 = uVar8;
        if (cVar4 == '\0') {
          if (*param_9 == '\0') goto LAB_003cb7c6;
          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));
          puVar2 = PTR_DAT_0067cb08;
          if (uVar8 < uVar9) {
            uVar6 = uVar9;
          }
          *param_9 = '\0';
          cVar5 = FUN_00406510(puVar2);
        }
        else {
          if (*param_9 == '\0') {
            if (*(long *)(param_2 + 0x2b0) == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");
            }
            uVar6 = FUN_003cb5b0();
            if (uVar6 < uVar8) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");
            }
            *param_9 = '\x01';
          }
LAB_003cb7c6:
          cVar5 = FUN_00406510(PTR_DAT_0067cb08);
        }
        if (cVar5 == '\0') {
          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");
          }
          if (uVar6 != 0) {
            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;
          }
          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {
            uVar19 = uVar10;
          }
          plVar15 = (long *)*plVar14;
          bVar1 = *(byte *)(plVar15 + 4);
          if ((bVar1 & 1) != 0) {
LAB_003cbd96:
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0x142,"set_address");
          }
          plVar15[1] = (uVar10 - uVar18) + param_5;
          *(byte *)(plVar15 + 4) = bVar1 | 1;
          if ((bVar1 & 4) != 0) {
LAB_003cbd7e:
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");
          }
          plVar15[3] = uVar19;
          *(byte *)(plVar15 + 4) = bVar1 | 5;
          if ((bVar1 & 2) == 0) goto LAB_003cb852;
        }
        else {
          plVar15 = (long *)*plVar14;
          if ((*(byte *)(plVar15 + 4) & 2) == 0) {
            (**(code **)(*plVar15 + 0x68))();
            plVar15 = (long *)*plVar14;
          }
          lVar7 = plVar15[2];
          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);
          if (uVar10 == 0xffffffffffffffff) {
            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();
            if (lVar7 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");
            }
            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();
            pcVar16 = "out of patch space for section %s; relink with --incremental-full";
            uVar11 = *(undefined8 *)(lVar7 + 0x28);
LAB_003cbcf1:
            uVar13 = gettext(pcVar16);
                    /* WARNING: Subroutine does not return */
            FUN_0034a6b0(uVar13,uVar11);
          }
          plVar15 = (long *)*plVar14;
          bVar1 = *(byte *)(plVar15 + 4);
          if ((bVar1 & 1) != 0) goto LAB_003cbd96;
          plVar15[1] = (uVar10 - uVar18) + param_5;
          *(byte *)(plVar15 + 4) = bVar1 | 1;
          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;
          plVar15[3] = uVar10;
          *(byte *)(plVar15 + 4) = bVar1 | 5;
          if ((bVar1 & 2) == 0) {
            (**(code **)(*plVar15 + 0x70))(plVar15);
            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;
            plVar15 = (long *)*plVar14;
            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;
          }
          uVar19 = uVar10;
          if (lVar7 < plVar15[2]) {
            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);
            if (lVar7 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");
            }
            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();
            pcVar16 = "%s: section changed size; relink with --incremental-full";
            uVar11 = *(undefined8 *)(lVar7 + 0x28);
            goto LAB_003cbcf1;
          }
        }
      }
      else {
        cVar5 = FUN_00406510(PTR_DAT_0067cb08);
        if (cVar5 == '\0') {
          plVar15 = (long *)*plVar14;
          if ((*(byte *)(plVar15 + 4) & 1) == 0) {
LAB_003cbe3e:
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0xc5,"address");
          }
          uVar6 = (uVar10 - uVar18) + param_5;
          if ((ulong)plVar15[1] < uVar6) {
            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");
            }
            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);
            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;
            uVar11 = *(undefined8 *)(*plVar14 + 8);
            if (lVar7 == 0) {
              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");
              FUN_0034a750(uVar13,uVar6,uVar11);
              plVar15 = (long *)*plVar14;
            }
            else {
              uVar13 = *(undefined8 *)(lVar7 + 0x28);
              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");
              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);
              plVar15 = (long *)*plVar14;
            }
          }
          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {
            uVar11 = gettext(
                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"
                            );
            FUN_0034a800(uVar11);
            plVar15 = (long *)*plVar14;
            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;
            uVar10 = (uVar10 + plVar15[1]) - uVar6;
            uVar19 = uVar10;
          }
          else {
            uVar10 = (plVar15[1] + uVar10) - uVar6;
            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {
              uVar19 = uVar10;
            }
          }
          bVar1 = *(byte *)(plVar15 + 4);
          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;
          plVar15[3] = uVar19;
          *(byte *)(plVar15 + 4) = bVar1 | 4;
          if ((bVar1 & 2) != 0) goto LAB_003cb866;
LAB_003cb852:
          (**(code **)(*plVar15 + 0x70))(plVar15);
          if ((*(byte *)(plVar15 + 4) & 2) == 0) {
LAB_003cbdae:
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");
          }
        }
        else {
          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0xe3,"offset");
          }
          uVar10 = *(ulong *)(*plVar14 + 0x18);
          uVar19 = uVar10;
        }
      }
LAB_003cb866:
      cVar5 = FUN_00406510(PTR_DAT_0067cb08);
      if (cVar5 == '\0') {
LAB_003cb8d4:
        plVar15 = (long *)*plVar14;
      }
      else {
        plVar15 = (long *)*plVar14;
        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {
          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;
          lVar7 = (**(code **)(*plVar15 + 0x48))();
          pcVar16 = "(special)";
          if (lVar7 != 0) {
            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();
            pcVar16 = *(char **)(lVar7 + 0x28);
          }
          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;
          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,
                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);
          goto LAB_003cb8d4;
        }
      }
      if ((cVar4 == '\0') || (bVar3 == 0)) {
        if ((*(byte *)(plVar15 + 4) & 2) == 0) {
LAB_003cbd66:
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/output.h",0xcf,"data_size");
        }
        uVar10 = uVar10 + plVar15[2];
        if (bVar3 == 0) {
          uVar19 = uVar10;
        }
      }
      if ((long)uVar17 < (long)uVar10) {
        uVar17 = uVar10;
      }
      cVar4 = (**(code **)(*plVar15 + 0x30))();
      if (cVar4 != '\0') {
        plVar15 = (long *)*plVar14;
        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {
          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)
             ) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");
          }
          *(int *)((long)plVar15 + 0x7c) = *param_8;
        }
        else {
          (**(code **)(*plVar15 + 0x60))();
        }
        *param_8 = *param_8 + 1;
      }
      plVar14 = plVar14 + 1;
    } while ((long *)param_4[1] != plVar14);
    param_5 = (uVar17 - uVar18) + param_5;
    uVar18 = uVar17;
  }
  *param_6 = uVar18;
  *param_7 = uVar19;
  return param_5;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x58
MOV RAX,qword ptr [R9]
MOV RBX,qword ptr [RSP + 0x90]
MOV qword ptr [RSP + 0x28],RSI
MOV qword ptr [RSP + 0x18],RCX
MOV R14,qword ptr [RBX]
MOV qword ptr [RSP + 0x20],R8
MOV qword ptr [RSP + 0x48],R9
MOV RBX,qword ptr [RCX]
MOV byte ptr [RSP + 0x17],DL
MOV qword ptr [RSP + 0x8],RAX
CMP RBX,qword ptr [RCX + 0x8]
JZ 0x003cbd57
MOV RBP,RAX
MOV R13,RAX
LEA RAX,[RSI + 0x468]
MOV qword ptr [RSP + 0x30],RAX
JMP 0x003cb951
CMP byte ptr [RAX],0x0
JNZ 0x003cb7c6
MOV RAX,qword ptr [RSP + 0x28]
MOV RDI,qword ptr [RAX + 0x2b0]
TEST RDI,RDI
JZ 0x003cbdc6
CALL 0x003cb5b0
CMP RAX,R15
JC 0x003cbdf6
MOV RCX,qword ptr [RSP + 0xa0]
MOV R15,RAX
MOV byte ptr [RCX],0x1
MOV RDI,qword ptr [0x0067cb08]
CALL 0x00406510
TEST AL,AL
JNZ 0x003cba08
MOVZX EAX,byte ptr [RSP + 0x16]
XOR EAX,0x1
CMP RBP,R14
JZ 0x003cb7ef
TEST AL,AL
JNZ 0x003cbdde
TEST R15,R15
JZ 0x003cb7ff
LEA RBP,[RBP + R15*0x1 + -0x1]
NEG R15
AND RBP,R15
TEST AL,AL
JNZ 0x003cbb10
TEST R12B,R12B
JNZ 0x003cbb10
MOV R15,qword ptr [RBX]
MOV RDX,RBP
SUB RDX,qword ptr [RSP + 0x8]
ADD RDX,qword ptr [RSP + 0x20]
MOVZX EAX,byte ptr [R15 + 0x20]
TEST AL,0x1
JNZ 0x003cbd96
MOV qword ptr [R15 + 0x8],RDX
MOV EDX,EAX
OR EDX,0x1
MOV byte ptr [R15 + 0x20],DL
AND EDX,0x4
JNZ 0x003cbd7e
OR EAX,0x5
MOV qword ptr [R15 + 0x18],R14
MOV byte ptr [R15 + 0x20],AL
TEST AL,0x2
JNZ 0x003cb866
MOV RAX,qword ptr [R15]
MOV RDI,R15
CALL qword ptr [RAX + 0x70]
TEST byte ptr [R15 + 0x20],0x2
JZ 0x003cbdae
MOV RDI,qword ptr [0x0067cb08]
CALL 0x00406510
TEST AL,AL
JZ 0x003cb8d4
MOV RAX,qword ptr [0x0067cb08]
MOV RDI,qword ptr [RBX]
CMP qword ptr [RAX + 0x10],0x0
JZ 0x003cb8d7
TEST byte ptr [RAX + 0x24],0x10
JZ 0x003cb8d7
MOV R15,qword ptr [RAX]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x48]
LEA R8,[0x57101d]
TEST RAX,RAX
JZ 0x003cb8af
MOV RDI,qword ptr [RBX]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x48]
MOV R8,qword ptr [RAX + 0x28]
MOV RAX,qword ptr [RBX]
TEST byte ptr [RAX + 0x20],0x2
JZ 0x003cbd66
MOV RCX,qword ptr [RAX + 0x10]
MOV RDX,RBP
LEA RSI,[0x579778]
MOV RDI,R15
XOR EAX,EAX
CALL 0x0034a530
MOV RDI,qword ptr [RBX]
TEST R12B,R12B
JZ 0x003cbac0
CMP byte ptr [RSP + 0x16],0x0
JZ 0x003cbac0
MOV RAX,qword ptr [RDI]
CMP R13,RBP
CMOVL R13,RBP
CALL qword ptr [RAX + 0x30]
TEST AL,AL
JZ 0x003cb93e
MOV RAX,qword ptr [RSP + 0x98]
MOV RDI,qword ptr [RBX]
LEA RCX,[0x264ed0]
MOV ESI,dword ptr [RAX]
MOV RAX,qword ptr [RDI]
MOV RAX,qword ptr [RAX + 0x60]
CMP RAX,RCX
JNZ 0x003cbbc8
MOV EAX,dword ptr [RDI + 0x7c]
CMP ESI,EAX
JZ 0x003cb930
CMP EAX,-0x1
JNZ 0x003cbe0e
MOV dword ptr [RDI + 0x7c],ESI
MOV RAX,qword ptr [RSP + 0x98]
ADD dword ptr [RAX],0x1
MOV RAX,qword ptr [RSP + 0x18]
ADD RBX,0x8
CMP qword ptr [RAX + 0x8],RBX
JZ 0x003cbca0
MOV RDI,qword ptr [RBX]
MOV ESI,0x8
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x38]
MOV RDI,qword ptr [RBX]
MOV ESI,0x400
MOV byte ptr [RSP + 0x16],AL
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x40]
CMP byte ptr [RSP + 0x17],0x0
MOV R12D,EAX
JZ 0x003cb99b
MOV RDI,qword ptr [RBX]
MOVZX EAX,byte ptr [RDI + 0x20]
MOV EDX,EAX
AND EDX,0xfffffffa
MOV byte ptr [RDI + 0x20],DL
AND EDX,0x8
JNZ 0x003cb995
AND EAX,0xfffffff8
MOV byte ptr [RDI + 0x20],AL
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x78]
MOV RDI,qword ptr [RBX]
TEST byte ptr [RDI + 0x20],0x1
JNZ 0x003cbae0
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x18]
MOV R15,RAX
MOV RAX,qword ptr [RSP + 0xa0]
TEST R12B,R12B
JNZ 0x003cb790
CMP byte ptr [RAX],0x0
JZ 0x003cb7c6
MOV RAX,qword ptr [RSP + 0x28]
MOV RDI,qword ptr [RAX + 0x2b0]
CALL 0x003cb5b0
MOV RDI,qword ptr [0x0067cb08]
CMP R15,RAX
CMOVC R15,RAX
MOV RAX,qword ptr [RSP + 0xa0]
MOV byte ptr [RAX],0x0
CALL 0x00406510
TEST AL,AL
JZ 0x003cb7da
NOP word ptr [RAX + RAX*0x1]
MOV RDI,qword ptr [RBX]
TEST byte ptr [RDI + 0x20],0x2
JNZ 0x003cba1a
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x68]
MOV RDI,qword ptr [RBX]
MOV R14,qword ptr [RDI + 0x10]
MOV RCX,qword ptr [RSP + 0x8]
MOV RDX,R15
MOV RDI,qword ptr [RSP + 0x30]
MOV RSI,R14
CALL 0x0037aa30
MOV RBP,RAX
CMP RAX,-0x1
JZ 0x003cbccf
MOV R15,qword ptr [RBX]
MOV RDX,RAX
SUB RDX,qword ptr [RSP + 0x8]
ADD RDX,qword ptr [RSP + 0x20]
MOVZX EAX,byte ptr [R15 + 0x20]
TEST AL,0x1
JNZ 0x003cbd96
MOV qword ptr [R15 + 0x8],RDX
MOV EDX,EAX
OR EDX,0x1
MOV byte ptr [R15 + 0x20],DL
AND EDX,0x4
JNZ 0x003cbd7e
OR EAX,0x5
MOV qword ptr [R15 + 0x18],RBP
MOV byte ptr [R15 + 0x20],AL
TEST AL,0x2
JNZ 0x003cbaa4
MOV RAX,qword ptr [R15]
MOV RDI,R15
CALL qword ptr [RAX + 0x70]
TEST byte ptr [R15 + 0x20],0x2
JZ 0x003cbdae
MOV R15,qword ptr [RBX]
TEST byte ptr [R15 + 0x20],0x2
JZ 0x003cbd66
CMP R14,qword ptr [R15 + 0x10]
JL 0x003cbd03
MOV R14,RBP
JMP 0x003cb866
TEST byte ptr [RDI + 0x20],0x2
JZ 0x003cbd66
ADD RBP,qword ptr [RDI + 0x10]
CMP byte ptr [RSP + 0x16],0x0
CMOVZ R14,RBP
JMP 0x003cb8eb
MOV RDI,qword ptr [0x0067cb08]
CALL 0x00406510
TEST AL,AL
JZ 0x003cbb20
MOV RAX,qword ptr [RBX]
TEST byte ptr [RAX + 0x20],0x4
JZ 0x003cbe26
MOV RBP,qword ptr [RAX + 0x18]
MOV R14,RBP
JMP 0x003cb866
MOV R14,RBP
JMP 0x003cb810
MOV R15,qword ptr [RBX]
TEST byte ptr [R15 + 0x20],0x1
JZ 0x003cbe3e
MOV RAX,qword ptr [R15 + 0x8]
MOV R8,RBP
SUB R8,qword ptr [RSP + 0x8]
ADD R8,qword ptr [RSP + 0x20]
CMP R8,RAX
JA 0x003cbbd0
MOVZX EDX,byte ptr [RSP + 0x16]
XOR EDX,0x1
CMP RBP,R14
JLE 0x003cbc50
TEST DL,DL
JZ 0x003cbc50
LEA RDI,[0x579698]
MOV qword ptr [RSP + 0x38],R8
CALL 0x00177320
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0034a800
MOV R15,qword ptr [RBX]
MOV R8,qword ptr [RSP + 0x38]
TEST byte ptr [R15 + 0x20],0x1
JZ 0x003cbe3e
ADD RBP,qword ptr [R15 + 0x8]
SUB RBP,R8
MOV R14,RBP
NOP dword ptr [RAX]
MOVZX EAX,byte ptr [R15 + 0x20]
TEST AL,0x4
JNZ 0x003cbd7e
OR EAX,0x4
MOV qword ptr [R15 + 0x18],R14
MOV byte ptr [R15 + 0x20],AL
TEST AL,0x2
JNZ 0x003cb866
JMP 0x003cb852
CALL RAX
JMP 0x003cb933
MOV RAX,qword ptr [RSP + 0x28]
MOV RAX,qword ptr [RAX + 0x8]
CMP byte ptr [RAX + 0x148],0x0
JZ 0x003cbe56
MOV RAX,qword ptr [R15]
MOV qword ptr [RSP + 0x38],R8
MOV RDI,R15
CALL qword ptr [RAX + 0x48]
MOV RDX,qword ptr [RBX]
TEST byte ptr [RDX + 0x20],0x1
JZ 0x003cbe3e
TEST RAX,RAX
MOV R15,qword ptr [RDX + 0x8]
MOV R8,qword ptr [RSP + 0x38]
JZ 0x003cbc70
MOV RSI,qword ptr [RAX + 0x28]
LEA RDI,[0x579738]
MOV qword ptr [RSP + 0x40],R8
MOV qword ptr [RSP + 0x38],RSI
CALL 0x00177320
MOV R8,qword ptr [RSP + 0x40]
MOV RSI,qword ptr [RSP + 0x38]
MOV RCX,R15
MOV RDI,RAX
XOR EAX,EAX
MOV RDX,R8
CALL 0x0034a750
MOV R15,qword ptr [RBX]
JMP 0x003cbba0
ADD RAX,RBP
SUB RAX,R8
MOV RBP,RAX
TEST DL,DL
JNZ 0x003cbc66
TEST R12B,R12B
JZ 0x003cbba0
MOV R14,RAX
JMP 0x003cbba0
LEA RDI,[0x5796f8]
CALL 0x00177320
MOV R8,qword ptr [RSP + 0x38]
MOV RDX,R15
MOV RDI,RAX
XOR EAX,EAX
MOV RSI,R8
CALL 0x0034a750
MOV R15,qword ptr [RBX]
JMP 0x003cbba0
MOV RAX,R13
SUB RAX,qword ptr [RSP + 0x8]
ADD RAX,qword ptr [RSP + 0x20]
MOV RCX,qword ptr [RSP + 0x48]
MOV qword ptr [RCX],R13
MOV RCX,qword ptr [RSP + 0x90]
MOV qword ptr [RCX],R14
ADD RSP,0x58
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,qword ptr [RBX]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x48]
TEST RAX,RAX
JZ 0x003cbd27
MOV RDI,qword ptr [RBX]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x48]
LEA RDI,[0x571698]
MOV RBX,qword ptr [RAX + 0x28]
CALL 0x00177320
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0034a6b0
MOV RAX,qword ptr [R15]
MOV RDI,R15
CALL qword ptr [RAX + 0x48]
TEST RAX,RAX
JZ 0x003cbd3f
MOV RDI,qword ptr [RBX]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x48]
LEA RDI,[0x5716e0]
MOV RBX,qword ptr [RAX + 0x28]
JMP 0x003cbcf1
LEA RDX,[0x57afc0]
MOV ESI,0x11ee
LEA RDI,[0x579596]
CALL 0x00352af0
LEA RDX,[0x57afc0]
MOV ESI,0x11f6
LEA RDI,[0x579596]
CALL 0x00352af0
MOV RAX,qword ptr [RSP + 0x20]
MOV R13,qword ptr [RSP + 0x8]
JMP 0x003cbcad
LEA RDX,[0x57ba90]
MOV ESI,0xcf
LEA RDI,[0x533384]
CALL 0x00352af0
LEA RDX,[0x57b6a0]
MOV ESI,0x14b
LEA RDI,[0x533384]
CALL 0x00352af0
LEA RDX,[0x57b6b0]
MOV ESI,0x142
LEA RDI,[0x533384]
CALL 0x00352af0
LEA RDX,[0x57b680]
MOV ESI,0x163
LEA RDI,[0x533384]
CALL 0x00352af0
LEA RDX,[0x57afc0]
MOV ESI,0x11c4
LEA RDI,[0x579596]
CALL 0x00352af0
LEA RDX,[0x57afc0]
MOV ESI,0x11df
LEA RDI,[0x579596]
CALL 0x00352af0
LEA RDX,[0x57afc0]
MOV ESI,0x11c6
LEA RDI,[0x579596]
CALL 0x00352af0
LEA RDX,[0x57afa0]
MOV ESI,0x104b
LEA RDI,[0x533384]
CALL 0x00352af0
LEA RDX,[0x57ba0f]
MOV ESI,0xe3
LEA RDI,[0x533384]
CALL 0x00352af0
LEA RDX,[0x57ba48]
MOV ESI,0xc5
LEA RDI,[0x533384]
CALL 0x00352af0
LEA RDX,[0x57afc0]
MOV ESI,0x1215
LEA RDI,[0x579596]
CALL 0x00352af0
(translation_unit "long FUN_003cb730(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,\n                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  byte bVar3;\n  char cVar4;\n  char cVar5;\n  ulong uVar6;\n  long lVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  \n  uVar18 = *param_6;\n  uVar19 = *param_7;\n  plVar14 = (long *)*param_4;\n  if (plVar14 != (long *)param_4[1]) {\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }\n  *param_6 = uVar18;\n  *param_7 = uVar19;\n  return param_5;\n}\n\n" (function_definition "long FUN_003cb730(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,\n                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  byte bVar3;\n  char cVar4;\n  char cVar5;\n  ulong uVar6;\n  long lVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  \n  uVar18 = *param_6;\n  uVar19 = *param_7;\n  plVar14 = (long *)*param_4;\n  if (plVar14 != (long *)param_4[1]) {\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }\n  *param_6 = uVar18;\n  *param_7 = uVar19;\n  return param_5;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_003cb730(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,\n                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)" identifier (parameter_list "(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,\n                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char 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 "ulong *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "ulong *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int *param_8" primitive_type (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "char *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  byte bVar3;\n  char cVar4;\n  char cVar5;\n  ulong uVar6;\n  long lVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  \n  uVar18 = *param_6;\n  uVar19 = *param_7;\n  plVar14 = (long *)*param_4;\n  if (plVar14 != (long *)param_4[1]) {\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }\n  *param_6 = uVar18;\n  *param_7 = uVar19;\n  return param_5;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "long *plVar14;" (sized_type_specifier "long" long) (pointer_declarator "*plVar14" * identifier) ;) (declaration "long *plVar15;" (sized_type_specifier "long" long) (pointer_declarator "*plVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (expression_statement "uVar18 = *param_6;" (assignment_expression "uVar18 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "uVar19 = *param_7;" (assignment_expression "uVar19 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "plVar14 = (long *)*param_4;" (assignment_expression "plVar14 = (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 (plVar14 != (long *)param_4[1]) {\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }" if (parenthesized_expression "(plVar14 != (long *)param_4[1])" ( (binary_expression "plVar14 != (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 ]))) )) (compound_statement "{\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }" { (expression_statement "uVar10 = uVar18;" (assignment_expression "uVar10 = uVar18" identifier = identifier) ;) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" identifier = identifier) ;) (do_statement "do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);" do (compound_statement "{\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    }" { (expression_statement "bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);" (assignment_expression "bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8)" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8)" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x38))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x38)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x38)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x38)" ( (binary_expression "*(long *)*plVar14 + 0x38" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "((long *)*plVar14,8)" ( (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier)) , number_literal )))) ;) (expression_statement "cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);" (assignment_expression "cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400)" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400)" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x40))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x40)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x40)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x40)" ( (binary_expression "*(long *)*plVar14 + 0x40" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "((long *)*plVar14,0x400)" ( (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier)) , number_literal )))) ;) (if_statement "if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }" { (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" identifier = (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 & 0xfa;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 & 0xfa" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xfa" identifier & number_literal)) ;) (if_statement "if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }" if (parenthesized_expression "((bVar1 & 8) == 0)" ( (binary_expression "(bVar1 & 8) == 0" (parenthesized_expression "(bVar1 & 8)" ( (binary_expression "bVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }" { (expression_statement "*(byte *)(plVar15 + 4) = bVar1 & 0xf8;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 & 0xf8" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xf8" identifier & number_literal)) ;) })) (expression_statement "(**(code **)(*plVar15 + 0x78))();" (call_expression "(**(code **)(*plVar15 + 0x78))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x78))" ( (pointer_expression "**(code **)(*plVar15 + 0x78)" * (pointer_expression "*(code **)(*plVar15 + 0x78)" * (cast_expression "(code **)(*plVar15 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x78)" ( (binary_expression "*plVar15 + 0x78" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }" if (parenthesized_expression "((*(byte *)((long *)*plVar14 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)((long *)*plVar14 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)((long *)*plVar14 + 4) & 1)" ( (binary_expression "*(byte *)((long *)*plVar14 + 4) & 1" (pointer_expression "*(byte *)((long *)*plVar14 + 4)" * (cast_expression "(byte *)((long *)*plVar14 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long *)*plVar14 + 4)" ( (binary_expression "(long *)*plVar14 + 4" (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier)) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }" { (expression_statement "uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();" (assignment_expression "uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))()" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x18))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x18)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x18)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x18)" ( (binary_expression "*(long *)*plVar14 + 0x18" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = uVar8;" (assignment_expression "uVar6 = uVar8" identifier = identifier) ;) (if_statement "if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }" { (if_statement "if (*param_9 == '\0') goto LAB_003cb7c6;" if (parenthesized_expression "(*param_9 == '\0')" ( (binary_expression "*param_9 == '\0'" (pointer_expression "*param_9" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_003cb7c6;" goto statement_identifier ;)) (expression_statement "uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));" (assignment_expression "uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0))" identifier = (call_expression "FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0))" identifier (argument_list "(*(undefined8 *)(param_2 + 0x2b0))" ( (pointer_expression "*(undefined8 *)(param_2 + 0x2b0)" * (cast_expression "(undefined8 *)(param_2 + 0x2b0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2b0)" ( (binary_expression "param_2 + 0x2b0" identifier + number_literal) )))) )))) ;) (expression_statement "puVar2 = PTR_DAT_0067cb08;" (assignment_expression "puVar2 = PTR_DAT_0067cb08" identifier = identifier) ;) (if_statement "if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }" if (parenthesized_expression "(uVar8 < uVar9)" ( (binary_expression "uVar8 < uVar9" identifier < identifier) )) (compound_statement "{\n            uVar6 = uVar9;\n          }" { (expression_statement "uVar6 = uVar9;" (assignment_expression "uVar6 = uVar9" identifier = identifier) ;) })) (expression_statement "*param_9 = '\0';" (assignment_expression "*param_9 = '\0'" (pointer_expression "*param_9" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar5 = FUN_00406510(puVar2);" (assignment_expression "cVar5 = FUN_00406510(puVar2)" identifier = (call_expression "FUN_00406510(puVar2)" identifier (argument_list "(puVar2)" ( identifier )))) ;) }) (else_clause "else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }" else (compound_statement "{\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }" { (if_statement "if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }" if (parenthesized_expression "(*param_9 == '\0')" ( (binary_expression "*param_9 == '\0'" (pointer_expression "*param_9" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }" { (if_statement "if (*(long *)(param_2 + 0x2b0) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }" if (parenthesized_expression "(*(long *)(param_2 + 0x2b0) == 0)" ( (binary_expression "*(long *)(param_2 + 0x2b0) == 0" (pointer_expression "*(long *)(param_2 + 0x2b0)" * (cast_expression "(long *)(param_2 + 0x2b0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2b0)" ( (binary_expression "param_2 + 0x2b0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }" { comment (expression_statement "FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11c4,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "uVar6 = FUN_003cb5b0();" (assignment_expression "uVar6 = FUN_003cb5b0()" identifier = (call_expression "FUN_003cb5b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar6 < uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }" if (parenthesized_expression "(uVar6 < uVar8)" ( (binary_expression "uVar6 < uVar8" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }" { comment (expression_statement "FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11c6,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "*param_9 = '\x01';" (assignment_expression "*param_9 = '\x01'" (pointer_expression "*param_9" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (labeled_statement "LAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);" statement_identifier : (expression_statement "cVar5 = FUN_00406510(PTR_DAT_0067cb08);" (assignment_expression "cVar5 = FUN_00406510(PTR_DAT_0067cb08)" identifier = (call_expression "FUN_00406510(PTR_DAT_0067cb08)" identifier (argument_list "(PTR_DAT_0067cb08)" ( identifier )))) ;)) }))) (if_statement "if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }" { (if_statement "if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }" if (parenthesized_expression "((uVar10 != uVar19) && ((bVar3 ^ 1) != 0))" ( (binary_expression "(uVar10 != uVar19) && ((bVar3 ^ 1) != 0)" (parenthesized_expression "(uVar10 != uVar19)" ( (binary_expression "uVar10 != uVar19" identifier != identifier) )) && (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }" { comment (expression_statement "FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11df,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (if_statement "if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }" { (expression_statement "uVar10 = (uVar10 - 1) + uVar6 & -uVar6;" (assignment_expression "uVar10 = (uVar10 - 1) + uVar6 & -uVar6" identifier = (binary_expression "(uVar10 - 1) + uVar6 & -uVar6" (binary_expression "(uVar10 - 1) + uVar6" (parenthesized_expression "(uVar10 - 1)" ( (binary_expression "uVar10 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-uVar6" - identifier))) ;) })) (if_statement "if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }" if (parenthesized_expression "(((bVar3 ^ 1) != 0) || (cVar4 != '\0'))" ( (binary_expression "((bVar3 ^ 1) != 0) || (cVar4 != '\0')" (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) )) || (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            uVar19 = uVar10;\n          }" { (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) })) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" identifier = (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }" if (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }" { (labeled_statement "LAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x142,"set_address");" statement_identifier : comment (expression_statement "FUN_00352af0("../../gold/output.h",0x142,"set_address");" (call_expression "FUN_00352af0("../../gold/output.h",0x142,"set_address")" identifier (argument_list "("../../gold/output.h",0x142,"set_address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_address"" " string_content ") ))) ;)) })) (expression_statement "plVar15[1] = (uVar10 - uVar18) + param_5;" (assignment_expression "plVar15[1] = (uVar10 - uVar18) + param_5" (subscript_expression "plVar15[1]" identifier [ number_literal ]) = (binary_expression "(uVar10 - uVar18) + param_5" (parenthesized_expression "(uVar10 - uVar18)" ( (binary_expression "uVar10 - uVar18" identifier - identifier) )) + identifier)) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 1;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 1" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }" { (labeled_statement "LAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");" statement_identifier : comment (expression_statement "FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset")" identifier (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_file_offset"" " string_content ") ))) ;)) })) (expression_statement "plVar15[3] = uVar19;" (assignment_expression "plVar15[3] = uVar19" (subscript_expression "plVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 5;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 5" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 5" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) goto LAB_003cb852;" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cb852;" goto statement_identifier ;)) }) (else_clause "else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }" else (compound_statement "{\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }" { (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" ( (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }" { (expression_statement "(**(code **)(*plVar15 + 0x68))();" (call_expression "(**(code **)(*plVar15 + 0x68))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x68))" ( (pointer_expression "**(code **)(*plVar15 + 0x68)" * (pointer_expression "*(code **)(*plVar15 + 0x68)" * (cast_expression "(code **)(*plVar15 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x68)" ( (binary_expression "*plVar15 + 0x68" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) })) (expression_statement "lVar7 = plVar15[2];" (assignment_expression "lVar7 = plVar15[2]" identifier = (subscript_expression "plVar15[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);" (assignment_expression "uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18)" identifier = (call_expression "FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18)" identifier (argument_list "(param_2 + 0x468,lVar7,uVar6,uVar18)" ( (binary_expression "param_2 + 0x468" identifier + number_literal) , identifier , identifier , identifier )))) ;) (if_statement "if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }" if (parenthesized_expression "(uVar10 == 0xffffffffffffffff)" ( (binary_expression "uVar10 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    /* WARNING: Subroutine does not return */\n            FUN_0034a6b0(uVar13,uVar11);\n          }" { (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x48)" ( (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }" { comment (expression_statement "FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11ee,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x48)" ( (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = "out of patch space for section %s; relink with --incremental-full";" (assignment_expression "pcVar16 = "out of patch space for section %s; relink with --incremental-full"" identifier = (string_literal ""out of patch space for section %s; relink with --incremental-full"" " string_content ")) ;) (expression_statement "uVar11 = *(undefined8 *)(lVar7 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar7 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar7 + 0x28)" * (cast_expression "(undefined8 *)(lVar7 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) (labeled_statement "LAB_003cbcf1:\n            uVar13 = gettext(pcVar16);" statement_identifier : (expression_statement "uVar13 = gettext(pcVar16);" (assignment_expression "uVar13 = gettext(pcVar16)" identifier = (call_expression "gettext(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;)) comment (expression_statement "FUN_0034a6b0(uVar13,uVar11);" (call_expression "FUN_0034a6b0(uVar13,uVar11)" identifier (argument_list "(uVar13,uVar11)" ( identifier , identifier ))) ;) })) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" identifier = (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 1) != 0) goto LAB_003cbd96;" if (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cbd96;" goto statement_identifier ;)) (expression_statement "plVar15[1] = (uVar10 - uVar18) + param_5;" (assignment_expression "plVar15[1] = (uVar10 - uVar18) + param_5" (subscript_expression "plVar15[1]" identifier [ number_literal ]) = (binary_expression "(uVar10 - uVar18) + param_5" (parenthesized_expression "(uVar10 - uVar18)" ( (binary_expression "uVar10 - uVar18" identifier - identifier) )) + identifier)) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 1;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 1" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 4) != 0) goto LAB_003cbd7e;" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cbd7e;" goto statement_identifier ;)) (expression_statement "plVar15[3] = uVar10;" (assignment_expression "plVar15[3] = uVar10" (subscript_expression "plVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 5;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 5" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 5" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }" { (expression_statement "(**(code **)(*plVar15 + 0x70))(plVar15);" (call_expression "(**(code **)(*plVar15 + 0x70))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x70))" ( (pointer_expression "**(code **)(*plVar15 + 0x70)" * (pointer_expression "*(code **)(*plVar15 + 0x70)" * (cast_expression "(code **)(*plVar15 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x70)" ( (binary_expression "*plVar15 + 0x70" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "(plVar15)" ( identifier ))) ;) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" ( (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbdae;" goto statement_identifier ;)) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" ( (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbd66;" goto statement_identifier ;)) })) (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) (if_statement "if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }" if (parenthesized_expression "(lVar7 < plVar15[2])" ( (binary_expression "lVar7 < plVar15[2]" identifier < (subscript_expression "plVar15[2]" identifier [ number_literal ])) )) (compound_statement "{\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }" { (expression_statement "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);" (assignment_expression "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15)" identifier = (call_expression "(**(code **)(*plVar15 + 0x48))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x48))" ( (pointer_expression "**(code **)(*plVar15 + 0x48)" * (pointer_expression "*(code **)(*plVar15 + 0x48)" * (cast_expression "(code **)(*plVar15 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x48)" ( (binary_expression "*plVar15 + 0x48" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "(plVar15)" ( identifier )))) ;) (if_statement "if (lVar7 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }" { comment (expression_statement "FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11f6,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x48)" ( (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = "%s: section changed size; relink with --incremental-full";" (assignment_expression "pcVar16 = "%s: section changed size; relink with --incremental-full"" identifier = (string_literal ""%s: section changed size; relink with --incremental-full"" " string_content ")) ;) (expression_statement "uVar11 = *(undefined8 *)(lVar7 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar7 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar7 + 0x28)" * (cast_expression "(undefined8 *)(lVar7 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_003cbcf1;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }" else (compound_statement "{\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }" { (expression_statement "cVar5 = FUN_00406510(PTR_DAT_0067cb08);" (assignment_expression "cVar5 = FUN_00406510(PTR_DAT_0067cb08)" identifier = (call_expression "FUN_00406510(PTR_DAT_0067cb08)" identifier (argument_list "(PTR_DAT_0067cb08)" ( identifier )))) ;) (if_statement "if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }" { (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 1)" ( (binary_expression "*(byte *)(plVar15 + 4) & 1" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }" { (labeled_statement "LAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xc5,"address");" statement_identifier : comment (expression_statement "FUN_00352af0("../../gold/output.h",0xc5,"address");" (call_expression "FUN_00352af0("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "uVar6 = (uVar10 - uVar18) + param_5;" (assignment_expression "uVar6 = (uVar10 - uVar18) + param_5" identifier = (binary_expression "(uVar10 - uVar18) + param_5" (parenthesized_expression "(uVar10 - uVar18)" ( (binary_expression "uVar10 - uVar18" identifier - identifier) )) + identifier)) ;) (if_statement "if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" if (parenthesized_expression "((ulong)plVar15[1] < uVar6)" ( (binary_expression "(ulong)plVar15[1] < uVar6" (cast_expression "(ulong)plVar15[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "plVar15[1]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }" { (if_statement "if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }" if (parenthesized_expression "(*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0')" ( (binary_expression "*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0'" (pointer_expression "*(char *)(*(long *)(param_2 + 8) + 0x148)" * (cast_expression "(char *)(*(long *)(param_2 + 8) + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_2 + 8) + 0x148)" ( (binary_expression "*(long *)(param_2 + 8) + 0x148" (pointer_expression "*(long *)(param_2 + 8)" * (cast_expression "(long *)(param_2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }" { comment (expression_statement "FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x1215,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);" (assignment_expression "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15)" identifier = (call_expression "(**(code **)(*plVar15 + 0x48))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x48))" ( (pointer_expression "**(code **)(*plVar15 + 0x48)" * (pointer_expression "*(code **)(*plVar15 + 0x48)" * (cast_expression "(code **)(*plVar15 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x48)" ( (binary_expression "*plVar15 + 0x48" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "(plVar15)" ( identifier )))) ;) (if_statement "if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;" if (parenthesized_expression "((*(byte *)(*plVar14 + 0x20) & 1) == 0)" ( (binary_expression "(*(byte *)(*plVar14 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(*plVar14 + 0x20) & 1)" ( (binary_expression "*(byte *)(*plVar14 + 0x20) & 1" (pointer_expression "*(byte *)(*plVar14 + 0x20)" * (cast_expression "(byte *)(*plVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 0x20)" ( (binary_expression "*plVar14 + 0x20" (pointer_expression "*plVar14" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbe3e;" goto statement_identifier ;)) (expression_statement "uVar11 = *(undefined8 *)(*plVar14 + 8);" (assignment_expression "uVar11 = *(undefined8 *)(*plVar14 + 8)" identifier = (pointer_expression "*(undefined8 *)(*plVar14 + 8)" * (cast_expression "(undefined8 *)(*plVar14 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 8)" ( (binary_expression "*plVar14 + 8" (pointer_expression "*plVar14" * identifier) + number_literal) ))))) ;) (if_statement "if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" { (expression_statement "uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");" (assignment_expression "uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx")" identifier = (call_expression "gettext("dot moves backward in linker script from 0x%llx to 0x%llx")" identifier (argument_list "("dot moves backward in linker script from 0x%llx to 0x%llx")" ( (string_literal ""dot moves backward in linker script from 0x%llx to 0x%llx"" " string_content ") )))) ;) (expression_statement "FUN_0034a750(uVar13,uVar6,uVar11);" (call_expression "FUN_0034a750(uVar13,uVar6,uVar11)" identifier (argument_list "(uVar13,uVar6,uVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) }) (else_clause "else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" else (compound_statement "{\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" { (expression_statement "uVar13 = *(undefined8 *)(lVar7 + 0x28);" (assignment_expression "uVar13 = *(undefined8 *)(lVar7 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar7 + 0x28)" * (cast_expression "(undefined8 *)(lVar7 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");" (assignment_expression "uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx")" identifier = (call_expression "gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx")" identifier (argument_list "("address of section \'%s\' moves backward from 0x%llx to 0x%llx")" ( (string_literal ""address of section \'%s\' moves backward from 0x%llx to 0x%llx"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_0034a750(uVar12,uVar13,uVar6,uVar11);" (call_expression "FUN_0034a750(uVar12,uVar13,uVar6,uVar11)" identifier (argument_list "(uVar12,uVar13,uVar6,uVar11)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) }))) }) (else_clause "else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" else (if_statement "if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" if (parenthesized_expression "(((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0))" ( (binary_expression "((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)" (parenthesized_expression "((long)uVar19 < (long)uVar10)" ( (binary_expression "(long)uVar19 < (long)uVar10" (cast_expression "(long)uVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)uVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) && (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) ))) )) (compound_statement "{\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }" { (expression_statement "uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );" (assignment_expression "uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            )" identifier = (call_expression "gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            )" identifier (argument_list "(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            )" ( (string_literal ""script places BSS section in the middle of a LOAD segment; space will be allocated in the file"" " string_content ") )))) ;) (expression_statement "FUN_0034a800(uVar11);" (call_expression "FUN_0034a800(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 1)" ( (binary_expression "*(byte *)(plVar15 + 4) & 1" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbe3e;" goto statement_identifier ;)) (expression_statement "uVar10 = (uVar10 + plVar15[1]) - uVar6;" (assignment_expression "uVar10 = (uVar10 + plVar15[1]) - uVar6" identifier = (binary_expression "(uVar10 + plVar15[1]) - uVar6" (parenthesized_expression "(uVar10 + plVar15[1])" ( (binary_expression "uVar10 + plVar15[1]" identifier + (subscript_expression "plVar15[1]" identifier [ number_literal ])) )) - identifier)) ;) (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) }) (else_clause "else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" else (compound_statement "{\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" { (expression_statement "uVar10 = (plVar15[1] + uVar10) - uVar6;" (assignment_expression "uVar10 = (plVar15[1] + uVar10) - uVar6" identifier = (binary_expression "(plVar15[1] + uVar10) - uVar6" (parenthesized_expression "(plVar15[1] + uVar10)" ( (binary_expression "plVar15[1] + uVar10" (subscript_expression "plVar15[1]" identifier [ number_literal ]) + identifier) )) - identifier)) ;) (if_statement "if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }" if (parenthesized_expression "(((bVar3 ^ 1) != 0) || (cVar4 != '\0'))" ( (binary_expression "((bVar3 ^ 1) != 0) || (cVar4 != '\0')" (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) )) || (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              uVar19 = uVar10;\n            }" { (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) })) }))))) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" identifier = (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) goto LAB_003cbd7e;" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cbd7e;" goto statement_identifier ;)) (expression_statement "plVar15[3] = uVar19;" (assignment_expression "plVar15[3] = uVar19" (subscript_expression "plVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 4;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 4" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 4" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) != 0) goto LAB_003cb866;" if (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cb866;" goto statement_identifier ;)) (labeled_statement "LAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);" statement_identifier : (expression_statement "(**(code **)(*plVar15 + 0x70))(plVar15);" (call_expression "(**(code **)(*plVar15 + 0x70))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x70))" ( (pointer_expression "**(code **)(*plVar15 + 0x70)" * (pointer_expression "*(code **)(*plVar15 + 0x70)" * (cast_expression "(code **)(*plVar15 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x70)" ( (binary_expression "*plVar15 + 0x70" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "(plVar15)" ( identifier ))) ;)) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" ( (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }" { (labeled_statement "LAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");" statement_identifier : comment (expression_statement "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;)) })) }) (else_clause "else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }" else (compound_statement "{\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }" { (if_statement "if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }" if (parenthesized_expression "((*(byte *)(*plVar14 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(*plVar14 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(*plVar14 + 0x20) & 4)" ( (binary_expression "*(byte *)(*plVar14 + 0x20) & 4" (pointer_expression "*(byte *)(*plVar14 + 0x20)" * (cast_expression "(byte *)(*plVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 0x20)" ( (binary_expression "*plVar14 + 0x20" (pointer_expression "*plVar14" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }" { comment (expression_statement "FUN_00352af0("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_00352af0("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "uVar10 = *(ulong *)(*plVar14 + 0x18);" (assignment_expression "uVar10 = *(ulong *)(*plVar14 + 0x18)" identifier = (pointer_expression "*(ulong *)(*plVar14 + 0x18)" * (cast_expression "(ulong *)(*plVar14 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 0x18)" ( (binary_expression "*plVar14 + 0x18" (pointer_expression "*plVar14" * identifier) + number_literal) ))))) ;) (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);" statement_identifier : (expression_statement "cVar5 = FUN_00406510(PTR_DAT_0067cb08);" (assignment_expression "cVar5 = FUN_00406510(PTR_DAT_0067cb08)" identifier = (call_expression "FUN_00406510(PTR_DAT_0067cb08)" identifier (argument_list "(PTR_DAT_0067cb08)" ( identifier )))) ;)) (if_statement "if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }" { (labeled_statement "LAB_003cb8d4:\n        plVar15 = (long *)*plVar14;" statement_identifier : (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;)) }) (else_clause "else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }" else (compound_statement "{\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }" { (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }" if (parenthesized_expression "((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_0067cb08[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_0067cb08[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0067cb08[0x24] & 0x10)" ( (binary_expression "PTR_DAT_0067cb08[0x24] & 0x10" (subscript_expression "PTR_DAT_0067cb08[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }" { (expression_statement "uVar11 = *(undefined8 *)PTR_DAT_0067cb08;" (assignment_expression "uVar11 = *(undefined8 *)PTR_DAT_0067cb08" identifier = (pointer_expression "*(undefined8 *)PTR_DAT_0067cb08" * (cast_expression "(undefined8 *)PTR_DAT_0067cb08" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "lVar7 = (**(code **)(*plVar15 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*plVar15 + 0x48))()" identifier = (call_expression "(**(code **)(*plVar15 + 0x48))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x48))" ( (pointer_expression "**(code **)(*plVar15 + 0x48)" * (pointer_expression "*(code **)(*plVar15 + 0x48)" * (cast_expression "(code **)(*plVar15 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x48)" ( (binary_expression "*plVar15 + 0x48" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = "(special)";" (assignment_expression "pcVar16 = "(special)"" identifier = (string_literal ""(special)"" " string_content ")) ;) (if_statement "if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }" { (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x48)" ( (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = *(char **)(lVar7 + 0x28);" (assignment_expression "pcVar16 = *(char **)(lVar7 + 0x28)" identifier = (pointer_expression "*(char **)(lVar7 + 0x28)" * (cast_expression "(char **)(lVar7 + 0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) })) (if_statement "if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;" if (parenthesized_expression "((*(byte *)(*plVar14 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(*plVar14 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(*plVar14 + 0x20) & 2)" ( (binary_expression "*(byte *)(*plVar14 + 0x20) & 2" (pointer_expression "*(byte *)(*plVar14 + 0x20)" * (cast_expression "(byte *)(*plVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 0x20)" ( (binary_expression "*plVar14 + 0x20" (pointer_expression "*plVar14" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbd66;" goto statement_identifier ;)) (expression_statement "FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);" (call_expression "FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16)" identifier (argument_list "(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16)" ( identifier , (string_literal ""set_section_list_addresses: %08lx %08lx %s"" " string_content ") , identifier , (pointer_expression "*(undefined8 *)(*plVar14 + 0x10)" * (cast_expression "(undefined8 *)(*plVar14 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 0x10)" ( (binary_expression "*plVar14 + 0x10" (pointer_expression "*plVar14" * identifier) + number_literal) )))) , identifier ))) ;) (goto_statement "goto LAB_003cb8d4;" goto statement_identifier ;) })) }))) (if_statement "if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }" if (parenthesized_expression "((cVar4 == '\0') || (bVar3 == 0))" ( (binary_expression "(cVar4 == '\0') || (bVar3 == 0)" (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }" { (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" ( (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }" { (labeled_statement "LAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");" statement_identifier : comment (expression_statement "FUN_00352af0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00352af0("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;)) })) (expression_statement "uVar10 = uVar10 + plVar15[2];" (assignment_expression "uVar10 = uVar10 + plVar15[2]" identifier = (binary_expression "uVar10 + plVar15[2]" identifier + (subscript_expression "plVar15[2]" identifier [ number_literal ]))) ;) (if_statement "if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar19 = uVar10;\n        }" { (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) })) })) (if_statement "if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }" if (parenthesized_expression "((long)uVar17 < (long)uVar10)" ( (binary_expression "(long)uVar17 < (long)uVar10" (cast_expression "(long)uVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)uVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        uVar17 = uVar10;\n      }" { (expression_statement "uVar17 = uVar10;" (assignment_expression "uVar17 = uVar10" identifier = identifier) ;) })) (expression_statement "cVar4 = (**(code **)(*plVar15 + 0x30))();" (assignment_expression "cVar4 = (**(code **)(*plVar15 + 0x30))()" identifier = (call_expression "(**(code **)(*plVar15 + 0x30))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x30))" ( (pointer_expression "**(code **)(*plVar15 + 0x30)" * (pointer_expression "*(code **)(*plVar15 + 0x30)" * (cast_expression "(code **)(*plVar15 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x30)" ( (binary_expression "*plVar15 + 0x30" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }" { (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }" if (parenthesized_expression "(*(code **)(*plVar15 + 0x60) == FUN_00264ed0)" ( (binary_expression "*(code **)(*plVar15 + 0x60) == FUN_00264ed0" (pointer_expression "*(code **)(*plVar15 + 0x60)" * (cast_expression "(code **)(*plVar15 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x60)" ( (binary_expression "*plVar15 + 0x60" (pointer_expression "*plVar15" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }" { (if_statement "if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }" if (parenthesized_expression "((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             )" ( (binary_expression "(*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)" (parenthesized_expression "(*param_8 != *(int *)((long)plVar15 + 0x7c))" ( (binary_expression "*param_8 != *(int *)((long)plVar15 + 0x7c)" (pointer_expression "*param_8" * identifier) != (pointer_expression "*(int *)((long)plVar15 + 0x7c)" * (cast_expression "(int *)((long)plVar15 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + 0x7c)" ( (binary_expression "(long)plVar15 + 0x7c" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )) && (parenthesized_expression "(*(int *)((long)plVar15 + 0x7c) != -1)" ( (binary_expression "*(int *)((long)plVar15 + 0x7c) != -1" (pointer_expression "*(int *)((long)plVar15 + 0x7c)" * (cast_expression "(int *)((long)plVar15 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + 0x7c)" ( (binary_expression "(long)plVar15 + 0x7c" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }" { comment (expression_statement "FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");" (call_expression "FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx")" identifier (argument_list "("../../gold/output.h",0x104b,"do_set_out_shndx")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_set_out_shndx"" " string_content ") ))) ;) })) (expression_statement "*(int *)((long)plVar15 + 0x7c) = *param_8;" (assignment_expression "*(int *)((long)plVar15 + 0x7c) = *param_8" (pointer_expression "*(int *)((long)plVar15 + 0x7c)" * (cast_expression "(int *)((long)plVar15 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + 0x7c)" ( (binary_expression "(long)plVar15 + 0x7c" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*param_8" * identifier)) ;) }) (else_clause "else {\n          (**(code **)(*plVar15 + 0x60))();\n        }" else (compound_statement "{\n          (**(code **)(*plVar15 + 0x60))();\n        }" { (expression_statement "(**(code **)(*plVar15 + 0x60))();" (call_expression "(**(code **)(*plVar15 + 0x60))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x60))" ( (pointer_expression "**(code **)(*plVar15 + 0x60)" * (pointer_expression "*(code **)(*plVar15 + 0x60)" * (cast_expression "(code **)(*plVar15 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x60)" ( (binary_expression "*plVar15 + 0x60" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "*param_8 = *param_8 + 1;" (assignment_expression "*param_8 = *param_8 + 1" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 + 1" (pointer_expression "*param_8" * identifier) + number_literal)) ;) })) (expression_statement "plVar14 = plVar14 + 1;" (assignment_expression "plVar14 = plVar14 + 1" identifier = (binary_expression "plVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)param_4[1] != plVar14)" ( (binary_expression "(long *)param_4[1] != plVar14" (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 ])) != identifier) )) ;) (expression_statement "param_5 = (uVar17 - uVar18) + param_5;" (assignment_expression "param_5 = (uVar17 - uVar18) + param_5" identifier = (binary_expression "(uVar17 - uVar18) + param_5" (parenthesized_expression "(uVar17 - uVar18)" ( (binary_expression "uVar17 - uVar18" identifier - identifier) )) + identifier)) ;) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) })) (expression_statement "*param_6 = uVar18;" (assignment_expression "*param_6 = uVar18" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "*param_7 = uVar19;" (assignment_expression "*param_7 = uVar19" (pointer_expression "*param_7" * identifier) = identifier) ;) (return_statement "return param_5;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: uint64_t set_section_list_addresses(Output_segment * this, Layout *\n   layout, bool reset, Output_data_list * pdl, uint64_t addr, off_t * poff, off_t * pfoff, uint *\n   pshndx, bool * in_tls) */\n\nuint64_t __thiscall\ngold::Output_segment::set_section_list_addresses\n          (Output_segment *this,Layout *layout,bool reset,Output_data_list *pdl,uint64_t addr,\n          off_t *poff,off_t *pfoff,uint *pshndx,bool *in_tls)\n\n{\n  byte bVar1;\n  uint uVar2;\n  Errors *this_00;\n  off_t len;\n  Parameters *this_01;\n  byte bVar3;\n  bool bVar4;\n  int iVar5;\n  uint64_t uVar6;\n  undefined4 extraout_var;\n  undefined4 extraout_var_00;\n  undefined4 extraout_var_01;\n  uint64_t uVar7;\n  ulong uVar8;\n  undefined4 extraout_var_02;\n  undefined4 extraout_var_03;\n  undefined4 extraout_var_04;\n  undefined4 extraout_var_05;\n  undefined4 extraout_var_06;\n  pointer ppOVar9;\n  undefined8 uVar10;\n  Output_data *pOVar11;\n  char *pcVar12;\n  ulong uVar13;\n  char cVar14;\n  ulong uVar15;\n  ulong minoff;\n  ulong uVar16;\n  \n  minoff = *poff;\n  uVar16 = *pfoff;\n  ppOVar9 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start;\n  if (ppOVar9 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish) {\n    uVar8 = minoff;\n    uVar15 = minoff;\n    do {\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[7])(*ppOVar9,8);\n      bVar3 = (byte)iVar5;\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[8])(*ppOVar9,0x400);\n      if (reset) {\n        pOVar11 = *ppOVar9;\n        bVar1 = pOVar11->field_0x20;\n        pOVar11->field_0x20 = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          pOVar11->field_0x20 = bVar1 & 0xf8;\n        }\n        (*pOVar11->_vptr_Output_data[0xf])();\n      }\n      cVar14 = (char)iVar5;\n      if (((*ppOVar9)->field_0x20 & 1) == 0) {\n        iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])();\n        uVar13 = CONCAT44(extraout_var_01,iVar5);\n        uVar6 = uVar13;\n        if (cVar14 == '\0') {\n          if (*in_tls == false) goto LAB_003cb7c6;\n          uVar7 = maximum_alignment(layout->tls_segment_);\n          this_01 = parameters;\n          if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }\n          *in_tls = false;\n          bVar4 = Parameters::incremental_update(this_01);\n        }\n        else {\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }\n        if (bVar4) {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }\n          len = pOVar11->data_size_;\n          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);\n          if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar8;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar16 = uVar8;\n          if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n        else {\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n      }\n      else {\n        bVar4 = Parameters::incremental_update(parameters);\n        if (bVar4) {\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }\n        else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n      }\nLAB_003cb866:\n      bVar4 = Parameters::incremental_update(parameters);\n      if (bVar4) {\n        pOVar11 = *ppOVar9;\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          this_00 = parameters->errors_;\n          iVar5 = (*pOVar11->_vptr_Output_data[9])();\n          pcVar12 = "(special)";\n          if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }\n          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);\n          goto LAB_003cb8d4;\n        }\n      }\n      else {\nLAB_003cb8d4:\n        pOVar11 = *ppOVar9;\n      }\n      if ((cVar14 == '\0') || (bVar3 == 0)) {\n        if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar8 = uVar8 + pOVar11->data_size_;\n        if (bVar3 == 0) {\n          uVar16 = uVar8;\n        }\n      }\n      if ((long)uVar15 < (long)uVar8) {\n        uVar15 = uVar8;\n      }\n      iVar5 = (*pOVar11->_vptr_Output_data[6])();\n      if ((char)iVar5 != '\0') {\n        pOVar11 = *ppOVar9;\n        if (pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx) {\n          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);\n          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;\n        }\n        else {\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }\n        *pshndx = *pshndx + 1;\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar9);\n    addr = (uVar15 - minoff) + addr;\n    minoff = uVar15;\n  }\n  *poff = minoff;\n  *pfoff = uVar16;\n  return addr;\n}\n\n" comment comment comment (function_definition "uint64_t __thiscall\ngold::Output_segment::set_section_list_addresses\n          (Output_segment *this,Layout *layout,bool reset,Output_data_list *pdl,uint64_t addr,\n          off_t *poff,off_t *pfoff,uint *pshndx,bool *in_tls)\n\n{\n  byte bVar1;\n  uint uVar2;\n  Errors *this_00;\n  off_t len;\n  Parameters *this_01;\n  byte bVar3;\n  bool bVar4;\n  int iVar5;\n  uint64_t uVar6;\n  undefined4 extraout_var;\n  undefined4 extraout_var_00;\n  undefined4 extraout_var_01;\n  uint64_t uVar7;\n  ulong uVar8;\n  undefined4 extraout_var_02;\n  undefined4 extraout_var_03;\n  undefined4 extraout_var_04;\n  undefined4 extraout_var_05;\n  undefined4 extraout_var_06;\n  pointer ppOVar9;\n  undefined8 uVar10;\n  Output_data *pOVar11;\n  char *pcVar12;\n  ulong uVar13;\n  char cVar14;\n  ulong uVar15;\n  ulong minoff;\n  ulong uVar16;\n  \n  minoff = *poff;\n  uVar16 = *pfoff;\n  ppOVar9 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start;\n  if (ppOVar9 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish) {\n    uVar8 = minoff;\n    uVar15 = minoff;\n    do {\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[7])(*ppOVar9,8);\n      bVar3 = (byte)iVar5;\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[8])(*ppOVar9,0x400);\n      if (reset) {\n        pOVar11 = *ppOVar9;\n        bVar1 = pOVar11->field_0x20;\n        pOVar11->field_0x20 = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          pOVar11->field_0x20 = bVar1 & 0xf8;\n        }\n        (*pOVar11->_vptr_Output_data[0xf])();\n      }\n      cVar14 = (char)iVar5;\n      if (((*ppOVar9)->field_0x20 & 1) == 0) {\n        iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])();\n        uVar13 = CONCAT44(extraout_var_01,iVar5);\n        uVar6 = uVar13;\n        if (cVar14 == '\0') {\n          if (*in_tls == false) goto LAB_003cb7c6;\n          uVar7 = maximum_alignment(layout->tls_segment_);\n          this_01 = parameters;\n          if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }\n          *in_tls = false;\n          bVar4 = Parameters::incremental_update(this_01);\n        }\n        else {\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }\n        if (bVar4) {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }\n          len = pOVar11->data_size_;\n          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);\n          if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar8;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar16 = uVar8;\n          if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n        else {\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n      }\n      else {\n        bVar4 = Parameters::incremental_update(parameters);\n        if (bVar4) {\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }\n        else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n      }\nLAB_003cb866:\n      bVar4 = Parameters::incremental_update(parameters);\n      if (bVar4) {\n        pOVar11 = *ppOVar9;\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          this_00 = parameters->errors_;\n          iVar5 = (*pOVar11->_vptr_Output_data[9])();\n          pcVar12 = "(special)";\n          if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }\n          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);\n          goto LAB_003cb8d4;\n        }\n      }\n      else {\nLAB_003cb8d4:\n        pOVar11 = *ppOVar9;\n      }\n      if ((cVar14 == '\0') || (bVar3 == 0)) {\n        if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar8 = uVar8 + pOVar11->data_size_;\n        if (bVar3 == 0) {\n          uVar16 = uVar8;\n        }\n      }\n      if ((long)uVar15 < (long)uVar8) {\n        uVar15 = uVar8;\n      }\n      iVar5 = (*pOVar11->_vptr_Output_data[6])();\n      if ((char)iVar5 != '\0') {\n        pOVar11 = *ppOVar9;\n        if (pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx) {\n          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);\n          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;\n        }\n        else {\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }\n        *pshndx = *pshndx + 1;\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar9);\n    addr = (uVar15 - minoff) + addr;\n    minoff = uVar15;\n  }\n  *poff = minoff;\n  *pfoff = uVar16;\n  return addr;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_segment::" identifier : : identifier : :) (function_declarator "set_section_list_addresses\n          (Output_segment *this,Layout *layout,bool reset,Output_data_list *pdl,uint64_t addr,\n          off_t *poff,off_t *pfoff,uint *pshndx,bool *in_tls)" identifier (parameter_list "(Output_segment *this,Layout *layout,bool reset,Output_data_list *pdl,uint64_t addr,\n          off_t *poff,off_t *pfoff,uint *pshndx,bool *in_tls)" ( (parameter_declaration "Output_segment *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "bool reset" primitive_type identifier) , (parameter_declaration "Output_data_list *pdl" type_identifier (pointer_declarator "*pdl" * identifier)) , (parameter_declaration "uint64_t addr" primitive_type identifier) , (parameter_declaration "off_t *poff" type_identifier (pointer_declarator "*poff" * identifier)) , (parameter_declaration "off_t *pfoff" type_identifier (pointer_declarator "*pfoff" * identifier)) , (parameter_declaration "uint *pshndx" type_identifier (pointer_declarator "*pshndx" * identifier)) , (parameter_declaration "bool *in_tls" primitive_type (pointer_declarator "*in_tls" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  Errors *this_00;\n  off_t len;\n  Parameters *this_01;\n  byte bVar3;\n  bool bVar4;\n  int iVar5;\n  uint64_t uVar6;\n  undefined4 extraout_var;\n  undefined4 extraout_var_00;\n  undefined4 extraout_var_01;\n  uint64_t uVar7;\n  ulong uVar8;\n  undefined4 extraout_var_02;\n  undefined4 extraout_var_03;\n  undefined4 extraout_var_04;\n  undefined4 extraout_var_05;\n  undefined4 extraout_var_06;\n  pointer ppOVar9;\n  undefined8 uVar10;\n  Output_data *pOVar11;\n  char *pcVar12;\n  ulong uVar13;\n  char cVar14;\n  ulong uVar15;\n  ulong minoff;\n  ulong uVar16;\n  \n  minoff = *poff;\n  uVar16 = *pfoff;\n  ppOVar9 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start;\n  if (ppOVar9 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish) {\n    uVar8 = minoff;\n    uVar15 = minoff;\n    do {\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[7])(*ppOVar9,8);\n      bVar3 = (byte)iVar5;\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[8])(*ppOVar9,0x400);\n      if (reset) {\n        pOVar11 = *ppOVar9;\n        bVar1 = pOVar11->field_0x20;\n        pOVar11->field_0x20 = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          pOVar11->field_0x20 = bVar1 & 0xf8;\n        }\n        (*pOVar11->_vptr_Output_data[0xf])();\n      }\n      cVar14 = (char)iVar5;\n      if (((*ppOVar9)->field_0x20 & 1) == 0) {\n        iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])();\n        uVar13 = CONCAT44(extraout_var_01,iVar5);\n        uVar6 = uVar13;\n        if (cVar14 == '\0') {\n          if (*in_tls == false) goto LAB_003cb7c6;\n          uVar7 = maximum_alignment(layout->tls_segment_);\n          this_01 = parameters;\n          if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }\n          *in_tls = false;\n          bVar4 = Parameters::incremental_update(this_01);\n        }\n        else {\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }\n        if (bVar4) {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }\n          len = pOVar11->data_size_;\n          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);\n          if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar8;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar16 = uVar8;\n          if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n        else {\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n      }\n      else {\n        bVar4 = Parameters::incremental_update(parameters);\n        if (bVar4) {\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }\n        else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n      }\nLAB_003cb866:\n      bVar4 = Parameters::incremental_update(parameters);\n      if (bVar4) {\n        pOVar11 = *ppOVar9;\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          this_00 = parameters->errors_;\n          iVar5 = (*pOVar11->_vptr_Output_data[9])();\n          pcVar12 = "(special)";\n          if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }\n          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);\n          goto LAB_003cb8d4;\n        }\n      }\n      else {\nLAB_003cb8d4:\n        pOVar11 = *ppOVar9;\n      }\n      if ((cVar14 == '\0') || (bVar3 == 0)) {\n        if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar8 = uVar8 + pOVar11->data_size_;\n        if (bVar3 == 0) {\n          uVar16 = uVar8;\n        }\n      }\n      if ((long)uVar15 < (long)uVar8) {\n        uVar15 = uVar8;\n      }\n      iVar5 = (*pOVar11->_vptr_Output_data[6])();\n      if ((char)iVar5 != '\0') {\n        pOVar11 = *ppOVar9;\n        if (pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx) {\n          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);\n          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;\n        }\n        else {\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }\n        *pshndx = *pshndx + 1;\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar9);\n    addr = (uVar15 - minoff) + addr;\n    minoff = uVar15;\n  }\n  *poff = minoff;\n  *pfoff = uVar16;\n  return addr;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "Errors *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "off_t len;" type_identifier identifier ;) (declaration "Parameters *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint64_t uVar6;" primitive_type identifier ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (declaration "undefined4 extraout_var_00;" type_identifier identifier ;) (declaration "undefined4 extraout_var_01;" type_identifier identifier ;) (declaration "uint64_t uVar7;" primitive_type identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "undefined4 extraout_var_02;" type_identifier identifier ;) (declaration "undefined4 extraout_var_03;" type_identifier identifier ;) (declaration "undefined4 extraout_var_04;" type_identifier identifier ;) (declaration "undefined4 extraout_var_05;" type_identifier identifier ;) (declaration "undefined4 extraout_var_06;" type_identifier identifier ;) (declaration "pointer ppOVar9;" type_identifier identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "Output_data *pOVar11;" type_identifier (pointer_declarator "*pOVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "ulong minoff;" type_identifier identifier ;) (declaration "ulong uVar16;" type_identifier identifier ;) (expression_statement "minoff = *poff;" (assignment_expression "minoff = *poff" identifier = (pointer_expression "*poff" * identifier)) ;) (expression_statement "uVar16 = *pfoff;" (assignment_expression "uVar16 = *pfoff" identifier = (pointer_expression "*pfoff" * identifier)) ;) (expression_statement "ppOVar9 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start;" (assignment_expression "ppOVar9 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start" identifier = (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start" (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl" (parenthesized_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)" ( (ERROR "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "pdl->super__Vector_base<gold::Output_data*,_std" (binary_expression "pdl->super__Vector_base<gold::Output_data*" (binary_expression "pdl->super__Vector_base<gold" (field_expression "pdl->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_data*>_>" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (ppOVar9 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish) {\n    uVar8 = minoff;\n    uVar15 = minoff;\n    do {\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[7])(*ppOVar9,8);\n      bVar3 = (byte)iVar5;\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[8])(*ppOVar9,0x400);\n      if (reset) {\n        pOVar11 = *ppOVar9;\n        bVar1 = pOVar11->field_0x20;\n        pOVar11->field_0x20 = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          pOVar11->field_0x20 = bVar1 & 0xf8;\n        }\n        (*pOVar11->_vptr_Output_data[0xf])();\n      }\n      cVar14 = (char)iVar5;\n      if (((*ppOVar9)->field_0x20 & 1) == 0) {\n        iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])();\n        uVar13 = CONCAT44(extraout_var_01,iVar5);\n        uVar6 = uVar13;\n        if (cVar14 == '\0') {\n          if (*in_tls == false) goto LAB_003cb7c6;\n          uVar7 = maximum_alignment(layout->tls_segment_);\n          this_01 = parameters;\n          if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }\n          *in_tls = false;\n          bVar4 = Parameters::incremental_update(this_01);\n        }\n        else {\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }\n        if (bVar4) {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }\n          len = pOVar11->data_size_;\n          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);\n          if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar8;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar16 = uVar8;\n          if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n        else {\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n      }\n      else {\n        bVar4 = Parameters::incremental_update(parameters);\n        if (bVar4) {\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }\n        else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n      }\nLAB_003cb866:\n      bVar4 = Parameters::incremental_update(parameters);\n      if (bVar4) {\n        pOVar11 = *ppOVar9;\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          this_00 = parameters->errors_;\n          iVar5 = (*pOVar11->_vptr_Output_data[9])();\n          pcVar12 = "(special)";\n          if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }\n          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);\n          goto LAB_003cb8d4;\n        }\n      }\n      else {\nLAB_003cb8d4:\n        pOVar11 = *ppOVar9;\n      }\n      if ((cVar14 == '\0') || (bVar3 == 0)) {\n        if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar8 = uVar8 + pOVar11->data_size_;\n        if (bVar3 == 0) {\n          uVar16 = uVar8;\n        }\n      }\n      if ((long)uVar15 < (long)uVar8) {\n        uVar15 = uVar8;\n      }\n      iVar5 = (*pOVar11->_vptr_Output_data[6])();\n      if ((char)iVar5 != '\0') {\n        pOVar11 = *ppOVar9;\n        if (pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx) {\n          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);\n          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;\n        }\n        else {\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }\n        *pshndx = *pshndx + 1;\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar9);\n    addr = (uVar15 - minoff) + addr;\n    minoff = uVar15;\n  }" if (parenthesized_expression "(ppOVar9 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish)" ( (binary_expression "ppOVar9 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish" identifier != (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish" (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl" (parenthesized_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)" ( (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std" (binary_expression "pdl->super__Vector_base<gold" (field_expression "pdl->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n    uVar8 = minoff;\n    uVar15 = minoff;\n    do {\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[7])(*ppOVar9,8);\n      bVar3 = (byte)iVar5;\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[8])(*ppOVar9,0x400);\n      if (reset) {\n        pOVar11 = *ppOVar9;\n        bVar1 = pOVar11->field_0x20;\n        pOVar11->field_0x20 = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          pOVar11->field_0x20 = bVar1 & 0xf8;\n        }\n        (*pOVar11->_vptr_Output_data[0xf])();\n      }\n      cVar14 = (char)iVar5;\n      if (((*ppOVar9)->field_0x20 & 1) == 0) {\n        iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])();\n        uVar13 = CONCAT44(extraout_var_01,iVar5);\n        uVar6 = uVar13;\n        if (cVar14 == '\0') {\n          if (*in_tls == false) goto LAB_003cb7c6;\n          uVar7 = maximum_alignment(layout->tls_segment_);\n          this_01 = parameters;\n          if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }\n          *in_tls = false;\n          bVar4 = Parameters::incremental_update(this_01);\n        }\n        else {\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }\n        if (bVar4) {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }\n          len = pOVar11->data_size_;\n          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);\n          if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar8;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar16 = uVar8;\n          if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n        else {\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n      }\n      else {\n        bVar4 = Parameters::incremental_update(parameters);\n        if (bVar4) {\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }\n        else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n      }\nLAB_003cb866:\n      bVar4 = Parameters::incremental_update(parameters);\n      if (bVar4) {\n        pOVar11 = *ppOVar9;\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          this_00 = parameters->errors_;\n          iVar5 = (*pOVar11->_vptr_Output_data[9])();\n          pcVar12 = "(special)";\n          if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }\n          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);\n          goto LAB_003cb8d4;\n        }\n      }\n      else {\nLAB_003cb8d4:\n        pOVar11 = *ppOVar9;\n      }\n      if ((cVar14 == '\0') || (bVar3 == 0)) {\n        if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar8 = uVar8 + pOVar11->data_size_;\n        if (bVar3 == 0) {\n          uVar16 = uVar8;\n        }\n      }\n      if ((long)uVar15 < (long)uVar8) {\n        uVar15 = uVar8;\n      }\n      iVar5 = (*pOVar11->_vptr_Output_data[6])();\n      if ((char)iVar5 != '\0') {\n        pOVar11 = *ppOVar9;\n        if (pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx) {\n          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);\n          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;\n        }\n        else {\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }\n        *pshndx = *pshndx + 1;\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar9);\n    addr = (uVar15 - minoff) + addr;\n    minoff = uVar15;\n  }" { (expression_statement "uVar8 = minoff;" (assignment_expression "uVar8 = minoff" identifier = identifier) ;) (expression_statement "uVar15 = minoff;" (assignment_expression "uVar15 = minoff" identifier = identifier) ;) (do_statement "do {\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[7])(*ppOVar9,8);\n      bVar3 = (byte)iVar5;\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[8])(*ppOVar9,0x400);\n      if (reset) {\n        pOVar11 = *ppOVar9;\n        bVar1 = pOVar11->field_0x20;\n        pOVar11->field_0x20 = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          pOVar11->field_0x20 = bVar1 & 0xf8;\n        }\n        (*pOVar11->_vptr_Output_data[0xf])();\n      }\n      cVar14 = (char)iVar5;\n      if (((*ppOVar9)->field_0x20 & 1) == 0) {\n        iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])();\n        uVar13 = CONCAT44(extraout_var_01,iVar5);\n        uVar6 = uVar13;\n        if (cVar14 == '\0') {\n          if (*in_tls == false) goto LAB_003cb7c6;\n          uVar7 = maximum_alignment(layout->tls_segment_);\n          this_01 = parameters;\n          if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }\n          *in_tls = false;\n          bVar4 = Parameters::incremental_update(this_01);\n        }\n        else {\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }\n        if (bVar4) {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }\n          len = pOVar11->data_size_;\n          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);\n          if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar8;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar16 = uVar8;\n          if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n        else {\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n      }\n      else {\n        bVar4 = Parameters::incremental_update(parameters);\n        if (bVar4) {\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }\n        else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n      }\nLAB_003cb866:\n      bVar4 = Parameters::incremental_update(parameters);\n      if (bVar4) {\n        pOVar11 = *ppOVar9;\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          this_00 = parameters->errors_;\n          iVar5 = (*pOVar11->_vptr_Output_data[9])();\n          pcVar12 = "(special)";\n          if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }\n          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);\n          goto LAB_003cb8d4;\n        }\n      }\n      else {\nLAB_003cb8d4:\n        pOVar11 = *ppOVar9;\n      }\n      if ((cVar14 == '\0') || (bVar3 == 0)) {\n        if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar8 = uVar8 + pOVar11->data_size_;\n        if (bVar3 == 0) {\n          uVar16 = uVar8;\n        }\n      }\n      if ((long)uVar15 < (long)uVar8) {\n        uVar15 = uVar8;\n      }\n      iVar5 = (*pOVar11->_vptr_Output_data[6])();\n      if ((char)iVar5 != '\0') {\n        pOVar11 = *ppOVar9;\n        if (pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx) {\n          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);\n          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;\n        }\n        else {\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }\n        *pshndx = *pshndx + 1;\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar9);" do (compound_statement "{\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[7])(*ppOVar9,8);\n      bVar3 = (byte)iVar5;\n      iVar5 = (*(*ppOVar9)->_vptr_Output_data[8])(*ppOVar9,0x400);\n      if (reset) {\n        pOVar11 = *ppOVar9;\n        bVar1 = pOVar11->field_0x20;\n        pOVar11->field_0x20 = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          pOVar11->field_0x20 = bVar1 & 0xf8;\n        }\n        (*pOVar11->_vptr_Output_data[0xf])();\n      }\n      cVar14 = (char)iVar5;\n      if (((*ppOVar9)->field_0x20 & 1) == 0) {\n        iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])();\n        uVar13 = CONCAT44(extraout_var_01,iVar5);\n        uVar6 = uVar13;\n        if (cVar14 == '\0') {\n          if (*in_tls == false) goto LAB_003cb7c6;\n          uVar7 = maximum_alignment(layout->tls_segment_);\n          this_01 = parameters;\n          if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }\n          *in_tls = false;\n          bVar4 = Parameters::incremental_update(this_01);\n        }\n        else {\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }\n        if (bVar4) {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }\n          len = pOVar11->data_size_;\n          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);\n          if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar8;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar16 = uVar8;\n          if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n        else {\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n      }\n      else {\n        bVar4 = Parameters::incremental_update(parameters);\n        if (bVar4) {\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }\n        else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n      }\nLAB_003cb866:\n      bVar4 = Parameters::incremental_update(parameters);\n      if (bVar4) {\n        pOVar11 = *ppOVar9;\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          this_00 = parameters->errors_;\n          iVar5 = (*pOVar11->_vptr_Output_data[9])();\n          pcVar12 = "(special)";\n          if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }\n          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);\n          goto LAB_003cb8d4;\n        }\n      }\n      else {\nLAB_003cb8d4:\n        pOVar11 = *ppOVar9;\n      }\n      if ((cVar14 == '\0') || (bVar3 == 0)) {\n        if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar8 = uVar8 + pOVar11->data_size_;\n        if (bVar3 == 0) {\n          uVar16 = uVar8;\n        }\n      }\n      if ((long)uVar15 < (long)uVar8) {\n        uVar15 = uVar8;\n      }\n      iVar5 = (*pOVar11->_vptr_Output_data[6])();\n      if ((char)iVar5 != '\0') {\n        pOVar11 = *ppOVar9;\n        if (pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx) {\n          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);\n          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;\n        }\n        else {\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }\n        *pshndx = *pshndx + 1;\n      }\n      ppOVar9 = ppOVar9 + 1;\n    }" { (expression_statement "iVar5 = (*(*ppOVar9)->_vptr_Output_data[7])(*ppOVar9,8);" (assignment_expression "iVar5 = (*(*ppOVar9)->_vptr_Output_data[7])(*ppOVar9,8)" identifier = (call_expression "(*(*ppOVar9)->_vptr_Output_data[7])(*ppOVar9,8)" (parenthesized_expression "(*(*ppOVar9)->_vptr_Output_data[7])" ( (pointer_expression "*(*ppOVar9)->_vptr_Output_data[7]" * (subscript_expression "(*ppOVar9)->_vptr_Output_data[7]" (field_expression "(*ppOVar9)->_vptr_Output_data" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "(*ppOVar9,8)" ( (pointer_expression "*ppOVar9" * identifier) , number_literal )))) ;) (expression_statement "bVar3 = (byte)iVar5;" (assignment_expression "bVar3 = (byte)iVar5" identifier = (cast_expression "(byte)iVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "iVar5 = (*(*ppOVar9)->_vptr_Output_data[8])(*ppOVar9,0x400);" (assignment_expression "iVar5 = (*(*ppOVar9)->_vptr_Output_data[8])(*ppOVar9,0x400)" identifier = (call_expression "(*(*ppOVar9)->_vptr_Output_data[8])(*ppOVar9,0x400)" (parenthesized_expression "(*(*ppOVar9)->_vptr_Output_data[8])" ( (pointer_expression "*(*ppOVar9)->_vptr_Output_data[8]" * (subscript_expression "(*ppOVar9)->_vptr_Output_data[8]" (field_expression "(*ppOVar9)->_vptr_Output_data" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "(*ppOVar9,0x400)" ( (pointer_expression "*ppOVar9" * identifier) , number_literal )))) ;) (if_statement "if (reset) {\n        pOVar11 = *ppOVar9;\n        bVar1 = pOVar11->field_0x20;\n        pOVar11->field_0x20 = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          pOVar11->field_0x20 = bVar1 & 0xf8;\n        }\n        (*pOVar11->_vptr_Output_data[0xf])();\n      }" if (parenthesized_expression "(reset)" ( identifier )) (compound_statement "{\n        pOVar11 = *ppOVar9;\n        bVar1 = pOVar11->field_0x20;\n        pOVar11->field_0x20 = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          pOVar11->field_0x20 = bVar1 & 0xf8;\n        }\n        (*pOVar11->_vptr_Output_data[0xf])();\n      }" { (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (expression_statement "bVar1 = pOVar11->field_0x20;" (assignment_expression "bVar1 = pOVar11->field_0x20" identifier = (field_expression "pOVar11->field_0x20" identifier -> field_identifier)) ;) (expression_statement "pOVar11->field_0x20 = bVar1 & 0xfa;" (assignment_expression "pOVar11->field_0x20 = bVar1 & 0xfa" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 & 0xfa" identifier & number_literal)) ;) (if_statement "if ((bVar1 & 8) == 0) {\n          pOVar11->field_0x20 = bVar1 & 0xf8;\n        }" if (parenthesized_expression "((bVar1 & 8) == 0)" ( (binary_expression "(bVar1 & 8) == 0" (parenthesized_expression "(bVar1 & 8)" ( (binary_expression "bVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pOVar11->field_0x20 = bVar1 & 0xf8;\n        }" { (expression_statement "pOVar11->field_0x20 = bVar1 & 0xf8;" (assignment_expression "pOVar11->field_0x20 = bVar1 & 0xf8" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 & 0xf8" identifier & number_literal)) ;) })) (expression_statement "(*pOVar11->_vptr_Output_data[0xf])();" (call_expression "(*pOVar11->_vptr_Output_data[0xf])()" (parenthesized_expression "(*pOVar11->_vptr_Output_data[0xf])" ( (pointer_expression "*pOVar11->_vptr_Output_data[0xf]" * (subscript_expression "pOVar11->_vptr_Output_data[0xf]" (field_expression "pOVar11->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "()" ( ))) ;) })) (expression_statement "cVar14 = (char)iVar5;" (assignment_expression "cVar14 = (char)iVar5" identifier = (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (((*ppOVar9)->field_0x20 & 1) == 0) {\n        iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])();\n        uVar13 = CONCAT44(extraout_var_01,iVar5);\n        uVar6 = uVar13;\n        if (cVar14 == '\0') {\n          if (*in_tls == false) goto LAB_003cb7c6;\n          uVar7 = maximum_alignment(layout->tls_segment_);\n          this_01 = parameters;\n          if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }\n          *in_tls = false;\n          bVar4 = Parameters::incremental_update(this_01);\n        }\n        else {\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }\n        if (bVar4) {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }\n          len = pOVar11->data_size_;\n          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);\n          if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar8;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar16 = uVar8;\n          if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n        else {\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n      }\n      else {\n        bVar4 = Parameters::incremental_update(parameters);\n        if (bVar4) {\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }\n        else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n      }" if (parenthesized_expression "(((*ppOVar9)->field_0x20 & 1) == 0)" ( (binary_expression "((*ppOVar9)->field_0x20 & 1) == 0" (parenthesized_expression "((*ppOVar9)->field_0x20 & 1)" ( (binary_expression "(*ppOVar9)->field_0x20 & 1" (field_expression "(*ppOVar9)->field_0x20" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])();\n        uVar13 = CONCAT44(extraout_var_01,iVar5);\n        uVar6 = uVar13;\n        if (cVar14 == '\0') {\n          if (*in_tls == false) goto LAB_003cb7c6;\n          uVar7 = maximum_alignment(layout->tls_segment_);\n          this_01 = parameters;\n          if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }\n          *in_tls = false;\n          bVar4 = Parameters::incremental_update(this_01);\n        }\n        else {\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }\n        if (bVar4) {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }\n          len = pOVar11->data_size_;\n          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);\n          if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar8;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar16 = uVar8;\n          if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n        else {\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n      }" { (expression_statement "iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])();" (assignment_expression "iVar5 = (*(*ppOVar9)->_vptr_Output_data[3])()" identifier = (call_expression "(*(*ppOVar9)->_vptr_Output_data[3])()" (parenthesized_expression "(*(*ppOVar9)->_vptr_Output_data[3])" ( (pointer_expression "*(*ppOVar9)->_vptr_Output_data[3]" * (subscript_expression "(*ppOVar9)->_vptr_Output_data[3]" (field_expression "(*ppOVar9)->_vptr_Output_data" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "uVar13 = CONCAT44(extraout_var_01,iVar5);" (assignment_expression "uVar13 = CONCAT44(extraout_var_01,iVar5)" identifier = (call_expression "CONCAT44(extraout_var_01,iVar5)" identifier (argument_list "(extraout_var_01,iVar5)" ( identifier , identifier )))) ;) (expression_statement "uVar6 = uVar13;" (assignment_expression "uVar6 = uVar13" identifier = identifier) ;) (if_statement "if (cVar14 == '\0') {\n          if (*in_tls == false) goto LAB_003cb7c6;\n          uVar7 = maximum_alignment(layout->tls_segment_);\n          this_01 = parameters;\n          if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }\n          *in_tls = false;\n          bVar4 = Parameters::incremental_update(this_01);\n        }\n        else {\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }" if (parenthesized_expression "(cVar14 == '\0')" ( (binary_expression "cVar14 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (*in_tls == false) goto LAB_003cb7c6;\n          uVar7 = maximum_alignment(layout->tls_segment_);\n          this_01 = parameters;\n          if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }\n          *in_tls = false;\n          bVar4 = Parameters::incremental_update(this_01);\n        }" { (if_statement "if (*in_tls == false) goto LAB_003cb7c6;" if (parenthesized_expression "(*in_tls == false)" ( (binary_expression "*in_tls == false" (pointer_expression "*in_tls" * identifier) == false) )) (goto_statement "goto LAB_003cb7c6;" goto statement_identifier ;)) (expression_statement "uVar7 = maximum_alignment(layout->tls_segment_);" (assignment_expression "uVar7 = maximum_alignment(layout->tls_segment_)" identifier = (call_expression "maximum_alignment(layout->tls_segment_)" identifier (argument_list "(layout->tls_segment_)" ( (field_expression "layout->tls_segment_" identifier -> field_identifier) )))) ;) (expression_statement "this_01 = parameters;" (assignment_expression "this_01 = parameters" identifier = identifier) ;) (if_statement "if (uVar13 < uVar7) {\n            uVar6 = uVar7;\n          }" if (parenthesized_expression "(uVar13 < uVar7)" ( (binary_expression "uVar13 < uVar7" identifier < identifier) )) (compound_statement "{\n            uVar6 = uVar7;\n          }" { (expression_statement "uVar6 = uVar7;" (assignment_expression "uVar6 = uVar7" identifier = identifier) ;) })) (expression_statement "*in_tls = false;" (assignment_expression "*in_tls = false" (pointer_expression "*in_tls" * identifier) = false) ;) (ERROR "bVar4 = Parameters::" (assignment_expression "bVar4 = Parameters" identifier = identifier) : :) (expression_statement "incremental_update(this_01);" (call_expression "incremental_update(this_01)" identifier (argument_list "(this_01)" ( identifier ))) ;) }) (else_clause "else {\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }" else (compound_statement "{\n          if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }\nLAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);\n        }" { (if_statement "if (*in_tls == false) {\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }" if (parenthesized_expression "(*in_tls == false)" ( (binary_expression "*in_tls == false" (pointer_expression "*in_tls" * identifier) == false) )) (compound_statement "{\n            if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = maximum_alignment(layout->tls_segment_);\n            if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *in_tls = true;\n          }" { (if_statement "if (layout->tls_segment_ == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }" if (parenthesized_expression "(layout->tls_segment_ == (Output_segment *)0x0)" ( (binary_expression "layout->tls_segment_ == (Output_segment *)0x0" (field_expression "layout->tls_segment_" identifier -> field_identifier) == (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses");" (call_expression "do_gold_unreachable("../../gold/output.cc",0x11c4,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11c4,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "uVar6 = maximum_alignment(layout->tls_segment_);" (assignment_expression "uVar6 = maximum_alignment(layout->tls_segment_)" identifier = (call_expression "maximum_alignment(layout->tls_segment_)" identifier (argument_list "(layout->tls_segment_)" ( (field_expression "layout->tls_segment_" identifier -> field_identifier) )))) ;) (if_statement "if (uVar6 < uVar13) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }" if (parenthesized_expression "(uVar6 < uVar13)" ( (binary_expression "uVar6 < uVar13" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses");" (call_expression "do_gold_unreachable("../../gold/output.cc",0x11c6,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11c6,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "*in_tls = true;" (assignment_expression "*in_tls = true" (pointer_expression "*in_tls" * identifier) = true) ;) })) (labeled_statement "LAB_003cb7c6:\n          bVar4 = Parameters::incremental_update(parameters);" statement_identifier : (ERROR "bVar4 = Parameters::" (assignment_expression "bVar4 = Parameters" identifier = identifier) : :) (expression_statement "incremental_update(parameters);" (call_expression "incremental_update(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;)) }))) (if_statement "if (bVar4) {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }\n          len = pOVar11->data_size_;\n          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);\n          if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar8;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar16 = uVar8;\n          if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n        else {\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }\n          len = pOVar11->data_size_;\n          uVar8 = Free_list::allocate(&layout->free_list_,len,uVar6,minoff);\n          if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar8;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar16 = uVar8;\n          if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }" { (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (if_statement "if ((pOVar11->field_0x20 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }" if (parenthesized_expression "((pOVar11->field_0x20 & 2) == 0)" ( (binary_expression "(pOVar11->field_0x20 & 2) == 0" (parenthesized_expression "(pOVar11->field_0x20 & 2)" ( (binary_expression "pOVar11->field_0x20 & 2" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            (*pOVar11->_vptr_Output_data[0xd])();\n            pOVar11 = *ppOVar9;\n          }" { (expression_statement "(*pOVar11->_vptr_Output_data[0xd])();" (call_expression "(*pOVar11->_vptr_Output_data[0xd])()" (parenthesized_expression "(*pOVar11->_vptr_Output_data[0xd])" ( (pointer_expression "*pOVar11->_vptr_Output_data[0xd]" * (subscript_expression "pOVar11->_vptr_Output_data[0xd]" (field_expression "pOVar11->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "()" ( ))) ;) (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) })) (expression_statement "len = pOVar11->data_size_;" (assignment_expression "len = pOVar11->data_size_" identifier = (field_expression "pOVar11->data_size_" identifier -> field_identifier)) ;) (ERROR "uVar8 = Free_list::" (assignment_expression "uVar8 = Free_list" identifier = identifier) : :) (expression_statement "allocate(&layout->free_list_,len,uVar6,minoff);" (call_expression "allocate(&layout->free_list_,len,uVar6,minoff)" identifier (argument_list "(&layout->free_list_,len,uVar6,minoff)" ( (pointer_expression "&layout->free_list_" & (field_expression "layout->free_list_" identifier -> field_identifier)) , identifier , identifier , identifier ))) ;) (if_statement "if (uVar8 == 0xffffffffffffffff) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }" if (parenthesized_expression "(uVar8 == 0xffffffffffffffff)" ( (binary_expression "uVar8 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "out of patch space for section %s; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);\nLAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);\n                    /* WARNING: Subroutine does not return */\n            gold_fallback(pcVar12,uVar10);\n          }" { (expression_statement "iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();" (assignment_expression "iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])()" identifier = (call_expression "(*(*ppOVar9)->_vptr_Output_data[9])()" (parenthesized_expression "(*(*ppOVar9)->_vptr_Output_data[9])" ( (pointer_expression "*(*ppOVar9)->_vptr_Output_data[9]" * (subscript_expression "(*ppOVar9)->_vptr_Output_data[9]" (field_expression "(*ppOVar9)->_vptr_Output_data" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (if_statement "if (CONCAT44(extraout_var_03,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }" if (parenthesized_expression "(CONCAT44(extraout_var_03,iVar5) == 0)" ( (binary_expression "CONCAT44(extraout_var_03,iVar5) == 0" (call_expression "CONCAT44(extraout_var_03,iVar5)" identifier (argument_list "(extraout_var_03,iVar5)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses");" (call_expression "do_gold_unreachable("../../gold/output.cc",0x11ee,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11ee,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();" (assignment_expression "iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])()" identifier = (call_expression "(*(*ppOVar9)->_vptr_Output_data[9])()" (parenthesized_expression "(*(*ppOVar9)->_vptr_Output_data[9])" ( (pointer_expression "*(*ppOVar9)->_vptr_Output_data[9]" * (subscript_expression "(*ppOVar9)->_vptr_Output_data[9]" (field_expression "(*ppOVar9)->_vptr_Output_data" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar12 = "out of patch space for section %s; relink with --incremental-full";" (assignment_expression "pcVar12 = "out of patch space for section %s; relink with --incremental-full"" identifier = (string_literal ""out of patch space for section %s; relink with --incremental-full"" " string_content ")) ;) (expression_statement "uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28);" (assignment_expression "uVar10 = *(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28)" identifier = (pointer_expression "*(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28)" * (cast_expression "(undefined8 *)(CONCAT44(extraout_var_04,iVar5) + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CONCAT44(extraout_var_04,iVar5) + 0x28)" ( (binary_expression "CONCAT44(extraout_var_04,iVar5) + 0x28" (call_expression "CONCAT44(extraout_var_04,iVar5)" identifier (argument_list "(extraout_var_04,iVar5)" ( identifier , identifier ))) + number_literal) ))))) ;) (labeled_statement "LAB_003cbcf1:\n            pcVar12 = (char *)gettext(pcVar12);" statement_identifier : (expression_statement "pcVar12 = (char *)gettext(pcVar12);" (assignment_expression "pcVar12 = (char *)gettext(pcVar12)" identifier = (cast_expression "(char *)gettext(pcVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))))) ;)) comment (expression_statement "gold_fallback(pcVar12,uVar10);" (call_expression "gold_fallback(pcVar12,uVar10)" identifier (argument_list "(pcVar12,uVar10)" ( identifier , identifier ))) ;) })) (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (expression_statement "bVar1 = pOVar11->field_0x20;" (assignment_expression "bVar1 = pOVar11->field_0x20" identifier = (field_expression "pOVar11->field_0x20" identifier -> field_identifier)) ;) (if_statement "if ((bVar1 & 1) != 0) goto LAB_003cbd96;" if (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cbd96;" goto statement_identifier ;)) (expression_statement "pOVar11->address_ = (uVar8 - minoff) + addr;" (assignment_expression "pOVar11->address_ = (uVar8 - minoff) + addr" (field_expression "pOVar11->address_" identifier -> field_identifier) = (binary_expression "(uVar8 - minoff) + addr" (parenthesized_expression "(uVar8 - minoff)" ( (binary_expression "uVar8 - minoff" identifier - identifier) )) + identifier)) ;) (expression_statement "pOVar11->field_0x20 = bVar1 | 1;" (assignment_expression "pOVar11->field_0x20 = bVar1 | 1" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 4) != 0) goto LAB_003cbd7e;" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cbd7e;" goto statement_identifier ;)) (expression_statement "pOVar11->offset_ = uVar8;" (assignment_expression "pOVar11->offset_ = uVar8" (field_expression "pOVar11->offset_" identifier -> field_identifier) = identifier) ;) (expression_statement "pOVar11->field_0x20 = bVar1 | 5;" (assignment_expression "pOVar11->field_0x20 = bVar1 | 5" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 | 5" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          }" { (expression_statement "(*pOVar11->_vptr_Output_data[0xe])(pOVar11);" (call_expression "(*pOVar11->_vptr_Output_data[0xe])(pOVar11)" (parenthesized_expression "(*pOVar11->_vptr_Output_data[0xe])" ( (pointer_expression "*pOVar11->_vptr_Output_data[0xe]" * (subscript_expression "pOVar11->_vptr_Output_data[0xe]" (field_expression "pOVar11->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar11)" ( identifier ))) ;) (if_statement "if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;" if (parenthesized_expression "((pOVar11->field_0x20 & 2) == 0)" ( (binary_expression "(pOVar11->field_0x20 & 2) == 0" (parenthesized_expression "(pOVar11->field_0x20 & 2)" ( (binary_expression "pOVar11->field_0x20 & 2" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbdae;" goto statement_identifier ;)) (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (if_statement "if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;" if (parenthesized_expression "((pOVar11->field_0x20 & 2) == 0)" ( (binary_expression "(pOVar11->field_0x20 & 2) == 0" (parenthesized_expression "(pOVar11->field_0x20 & 2)" ( (binary_expression "pOVar11->field_0x20 & 2" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbd66;" goto statement_identifier ;)) })) (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) (if_statement "if (len < pOVar11->data_size_) {\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }" if (parenthesized_expression "(len < pOVar11->data_size_)" ( (binary_expression "len < pOVar11->data_size_" identifier < (field_expression "pOVar11->data_size_" identifier -> field_identifier)) )) (compound_statement "{\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = "%s: section changed size; relink with --incremental-full";\n            uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);\n            goto LAB_003cbcf1;\n          }" { (expression_statement "iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);" (assignment_expression "iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11)" identifier = (call_expression "(*pOVar11->_vptr_Output_data[9])(pOVar11)" (parenthesized_expression "(*pOVar11->_vptr_Output_data[9])" ( (pointer_expression "*pOVar11->_vptr_Output_data[9]" * (subscript_expression "pOVar11->_vptr_Output_data[9]" (field_expression "pOVar11->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar11)" ( identifier )))) ;) (if_statement "if (CONCAT44(extraout_var_05,iVar5) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }" if (parenthesized_expression "(CONCAT44(extraout_var_05,iVar5) == 0)" ( (binary_expression "CONCAT44(extraout_var_05,iVar5) == 0" (call_expression "CONCAT44(extraout_var_05,iVar5)" identifier (argument_list "(extraout_var_05,iVar5)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses");" (call_expression "do_gold_unreachable("../../gold/output.cc",0x11f6,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11f6,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();" (assignment_expression "iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])()" identifier = (call_expression "(*(*ppOVar9)->_vptr_Output_data[9])()" (parenthesized_expression "(*(*ppOVar9)->_vptr_Output_data[9])" ( (pointer_expression "*(*ppOVar9)->_vptr_Output_data[9]" * (subscript_expression "(*ppOVar9)->_vptr_Output_data[9]" (field_expression "(*ppOVar9)->_vptr_Output_data" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar12 = "%s: section changed size; relink with --incremental-full";" (assignment_expression "pcVar12 = "%s: section changed size; relink with --incremental-full"" identifier = (string_literal ""%s: section changed size; relink with --incremental-full"" " string_content ")) ;) (expression_statement "uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28);" (assignment_expression "uVar10 = *(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28)" identifier = (pointer_expression "*(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28)" * (cast_expression "(undefined8 *)(CONCAT44(extraout_var_06,iVar5) + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CONCAT44(extraout_var_06,iVar5) + 0x28)" ( (binary_expression "CONCAT44(extraout_var_06,iVar5) + 0x28" (call_expression "CONCAT44(extraout_var_06,iVar5)" identifier (argument_list "(extraout_var_06,iVar5)" ( identifier , identifier ))) + number_literal) ))))) ;) (goto_statement "goto LAB_003cbcf1;" goto statement_identifier ;) })) }) (else_clause "else {\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }" else (compound_statement "{\n          if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }\n          pOVar11 = *ppOVar9;\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }\n          pOVar11->address_ = (uVar8 - minoff) + addr;\n          pOVar11->field_0x20 = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }" { (if_statement "if ((uVar8 != uVar16) && ((bVar3 ^ 1) != 0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }" if (parenthesized_expression "((uVar8 != uVar16) && ((bVar3 ^ 1) != 0))" ( (binary_expression "(uVar8 != uVar16) && ((bVar3 ^ 1) != 0)" (parenthesized_expression "(uVar8 != uVar16)" ( (binary_expression "uVar8 != uVar16" identifier != identifier) )) && (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses");" (call_expression "do_gold_unreachable("../../gold/output.cc",0x11df,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11df,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (if_statement "if (uVar6 != 0) {\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar8 = (uVar8 - 1) + uVar6 & -uVar6;\n          }" { (expression_statement "uVar8 = (uVar8 - 1) + uVar6 & -uVar6;" (assignment_expression "uVar8 = (uVar8 - 1) + uVar6 & -uVar6" identifier = (binary_expression "(uVar8 - 1) + uVar6 & -uVar6" (binary_expression "(uVar8 - 1) + uVar6" (parenthesized_expression "(uVar8 - 1)" ( (binary_expression "uVar8 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-uVar6" - identifier))) ;) })) (if_statement "if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n            uVar16 = uVar8;\n          }" if (parenthesized_expression "(((bVar3 ^ 1) != 0) || (cVar14 != '\0'))" ( (binary_expression "((bVar3 ^ 1) != 0) || (cVar14 != '\0')" (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) )) || (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            uVar16 = uVar8;\n          }" { (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) })) (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (expression_statement "bVar1 = pOVar11->field_0x20;" (assignment_expression "bVar1 = pOVar11->field_0x20" identifier = (field_expression "pOVar11->field_0x20" identifier -> field_identifier)) ;) (if_statement "if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }" if (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n          }" { (labeled_statement "LAB_003cbd96:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x142,"set_address");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x142,"set_address");" (call_expression "do_gold_unreachable("../../gold/output.h",0x142,"set_address")" identifier (argument_list "("../../gold/output.h",0x142,"set_address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_address"" " string_content ") ))) ;)) })) (expression_statement "pOVar11->address_ = (uVar8 - minoff) + addr;" (assignment_expression "pOVar11->address_ = (uVar8 - minoff) + addr" (field_expression "pOVar11->address_" identifier -> field_identifier) = (binary_expression "(uVar8 - minoff) + addr" (parenthesized_expression "(uVar8 - minoff)" ( (binary_expression "uVar8 - minoff" identifier - identifier) )) + identifier)) ;) (expression_statement "pOVar11->field_0x20 = bVar1 | 1;" (assignment_expression "pOVar11->field_0x20 = bVar1 | 1" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n          }" { (labeled_statement "LAB_003cbd7e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset")" identifier (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_file_offset"" " string_content ") ))) ;)) })) (expression_statement "pOVar11->offset_ = uVar16;" (assignment_expression "pOVar11->offset_ = uVar16" (field_expression "pOVar11->offset_" identifier -> field_identifier) = identifier) ;) (expression_statement "pOVar11->field_0x20 = bVar1 | 5;" (assignment_expression "pOVar11->field_0x20 = bVar1 | 5" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 | 5" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) goto LAB_003cb852;" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cb852;" goto statement_identifier ;)) }))) }) (else_clause "else {\n        bVar4 = Parameters::incremental_update(parameters);\n        if (bVar4) {\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }\n        else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n      }" else (compound_statement "{\n        bVar4 = Parameters::incremental_update(parameters);\n        if (bVar4) {\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }\n        else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n      }" { (ERROR "bVar4 = Parameters::" (assignment_expression "bVar4 = Parameters" identifier = identifier) : :) (expression_statement "incremental_update(parameters);" (call_expression "incremental_update(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;) (if_statement "if (bVar4) {\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }\n        else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n          if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }\n          uVar8 = (*ppOVar9)->offset_;\n          uVar16 = uVar8;\n        }" { (if_statement "if (((*ppOVar9)->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }" if (parenthesized_expression "(((*ppOVar9)->field_0x20 & 4) == 0)" ( (binary_expression "((*ppOVar9)->field_0x20 & 4) == 0" (parenthesized_expression "((*ppOVar9)->field_0x20 & 4)" ( (binary_expression "(*ppOVar9)->field_0x20 & 4" (field_expression "(*ppOVar9)->field_0x20" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xe3,"offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "uVar8 = (*ppOVar9)->offset_;" (assignment_expression "uVar8 = (*ppOVar9)->offset_" identifier = (field_expression "(*ppOVar9)->offset_" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier)) ;) (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) }) (else_clause "else {\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }" else (compound_statement "{\n          pOVar11 = *ppOVar9;\n          if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }\n          uVar13 = (uVar8 - minoff) + addr;\n          if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }\n          bVar1 = pOVar11->field_0x20;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          pOVar11->offset_ = uVar16;\n          pOVar11->field_0x20 = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);\n          if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }" { (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (if_statement "if ((pOVar11->field_0x20 & 1) == 0) {\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }" if (parenthesized_expression "((pOVar11->field_0x20 & 1) == 0)" ( (binary_expression "(pOVar11->field_0x20 & 1) == 0" (parenthesized_expression "(pOVar11->field_0x20 & 1)" ( (binary_expression "pOVar11->field_0x20 & 1" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");\n          }" { (labeled_statement "LAB_003cbe3e:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0xc5,"address");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xc5,"address");" (call_expression "do_gold_unreachable("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "uVar13 = (uVar8 - minoff) + addr;" (assignment_expression "uVar13 = (uVar8 - minoff) + addr" identifier = (binary_expression "(uVar8 - minoff) + addr" (parenthesized_expression "(uVar8 - minoff)" ( (binary_expression "uVar8 - minoff" identifier - identifier) )) + identifier)) ;) (if_statement "if (pOVar11->address_ < uVar13) {\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }\n          else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }" if (parenthesized_expression "(pOVar11->address_ < uVar13)" ( (binary_expression "pOVar11->address_ < uVar13" (field_expression "pOVar11->address_" identifier -> field_identifier) < identifier) )) (compound_statement "{\n            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);\n            if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar6 = (*ppOVar9)->address_;\n            if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n          }" { (if_statement "if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }" if (parenthesized_expression "((layout->script_options_->script_sections_).saw_sections_clause_ == false)" ( (binary_expression "(layout->script_options_->script_sections_).saw_sections_clause_ == false" (field_expression "(layout->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(layout->script_options_->script_sections_)" ( (field_expression "layout->script_options_->script_sections_" (field_expression "layout->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses");" (call_expression "do_gold_unreachable("../../gold/output.cc",0x1215,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x1215,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);" (assignment_expression "iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11)" identifier = (call_expression "(*pOVar11->_vptr_Output_data[9])(pOVar11)" (parenthesized_expression "(*pOVar11->_vptr_Output_data[9])" ( (pointer_expression "*pOVar11->_vptr_Output_data[9]" * (subscript_expression "pOVar11->_vptr_Output_data[9]" (field_expression "pOVar11->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar11)" ( identifier )))) ;) (if_statement "if (((*ppOVar9)->field_0x20 & 1) == 0) goto LAB_003cbe3e;" if (parenthesized_expression "(((*ppOVar9)->field_0x20 & 1) == 0)" ( (binary_expression "((*ppOVar9)->field_0x20 & 1) == 0" (parenthesized_expression "((*ppOVar9)->field_0x20 & 1)" ( (binary_expression "(*ppOVar9)->field_0x20 & 1" (field_expression "(*ppOVar9)->field_0x20" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbe3e;" goto statement_identifier ;)) (expression_statement "uVar6 = (*ppOVar9)->address_;" (assignment_expression "uVar6 = (*ppOVar9)->address_" identifier = (field_expression "(*ppOVar9)->address_" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier)) ;) (if_statement "if (CONCAT44(extraout_var_02,iVar5) == 0) {\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }\n            else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }" if (parenthesized_expression "(CONCAT44(extraout_var_02,iVar5) == 0)" ( (binary_expression "CONCAT44(extraout_var_02,iVar5) == 0" (call_expression "CONCAT44(extraout_var_02,iVar5)" identifier (argument_list "(extraout_var_02,iVar5)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n              pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;\n              gold_error(pcVar12,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }" { (expression_statement "pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")\n              ;" (assignment_expression "pcVar12 = (char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")" identifier = (cast_expression "(char *)gettext("dot moves backward in linker script from 0x%llx to 0x%llx")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("dot moves backward in linker script from 0x%llx to 0x%llx")" identifier (argument_list "("dot moves backward in linker script from 0x%llx to 0x%llx")" ( (string_literal ""dot moves backward in linker script from 0x%llx to 0x%llx"" " string_content ") ))))) ;) (expression_statement "gold_error(pcVar12,uVar13,uVar6);" (call_expression "gold_error(pcVar12,uVar13,uVar6)" identifier (argument_list "(pcVar12,uVar13,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) }) (else_clause "else {\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }" else (compound_statement "{\n              uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);\n              pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );\n              gold_error(pcVar12,uVar10,uVar13,uVar6);\n              pOVar11 = *ppOVar9;\n            }" { (expression_statement "uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28);" (assignment_expression "uVar10 = *(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28)" identifier = (pointer_expression "*(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28)" * (cast_expression "(undefined8 *)(CONCAT44(extraout_var_02,iVar5) + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CONCAT44(extraout_var_02,iVar5) + 0x28)" ( (binary_expression "CONCAT44(extraout_var_02,iVar5) + 0x28" (call_expression "CONCAT44(extraout_var_02,iVar5)" identifier (argument_list "(extraout_var_02,iVar5)" ( identifier , identifier ))) + number_literal) ))))) ;) (expression_statement "pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       );" (assignment_expression "pcVar12 = (char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       )" identifier = (cast_expression "(char *)gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       )" identifier (argument_list "(\n                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"\n                                       )" ( (string_literal ""address of section \'%s\' moves backward from 0x%llx to 0x%llx"" " string_content escape_sequence string_content escape_sequence string_content ") ))))) ;) (expression_statement "gold_error(pcVar12,uVar10,uVar13,uVar6);" (call_expression "gold_error(pcVar12,uVar10,uVar13,uVar6)" identifier (argument_list "(pcVar12,uVar10,uVar13,uVar6)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) }))) }) (else_clause "else if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }" else (if_statement "if (((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)) {\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }\n          else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }" if (parenthesized_expression "(((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0))" ( (binary_expression "((long)uVar16 < (long)uVar8) && ((bVar3 ^ 1) != 0)" (parenthesized_expression "((long)uVar16 < (long)uVar8)" ( (binary_expression "(long)uVar16 < (long)uVar8" (cast_expression "(long)uVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)uVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) && (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) ))) )) (compound_statement "{\n            pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );\n            gold_warning(pcVar12);\n            pOVar11 = *ppOVar9;\n            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;\n            uVar8 = (uVar8 + pOVar11->address_) - uVar13;\n            uVar16 = uVar8;\n          }" { (expression_statement "pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     );" (assignment_expression "pcVar12 = (char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     )" identifier = (cast_expression "(char *)gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     )" identifier (argument_list "(\n                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                                     )" ( (string_literal ""script places BSS section in the middle of a LOAD segment; space will be allocated in the file"" " string_content ") ))))) ;) (expression_statement "gold_warning(pcVar12);" (call_expression "gold_warning(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))) ;) (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (if_statement "if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;" if (parenthesized_expression "((pOVar11->field_0x20 & 1) == 0)" ( (binary_expression "(pOVar11->field_0x20 & 1) == 0" (parenthesized_expression "(pOVar11->field_0x20 & 1)" ( (binary_expression "pOVar11->field_0x20 & 1" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbe3e;" goto statement_identifier ;)) (expression_statement "uVar8 = (uVar8 + pOVar11->address_) - uVar13;" (assignment_expression "uVar8 = (uVar8 + pOVar11->address_) - uVar13" identifier = (binary_expression "(uVar8 + pOVar11->address_) - uVar13" (parenthesized_expression "(uVar8 + pOVar11->address_)" ( (binary_expression "uVar8 + pOVar11->address_" identifier + (field_expression "pOVar11->address_" identifier -> field_identifier)) )) - identifier)) ;) (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) }) (else_clause "else {\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }" else (compound_statement "{\n            uVar8 = (pOVar11->address_ + uVar8) - uVar13;\n            if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }\n          }" { (expression_statement "uVar8 = (pOVar11->address_ + uVar8) - uVar13;" (assignment_expression "uVar8 = (pOVar11->address_ + uVar8) - uVar13" identifier = (binary_expression "(pOVar11->address_ + uVar8) - uVar13" (parenthesized_expression "(pOVar11->address_ + uVar8)" ( (binary_expression "pOVar11->address_ + uVar8" (field_expression "pOVar11->address_" identifier -> field_identifier) + identifier) )) - identifier)) ;) (if_statement "if (((bVar3 ^ 1) != 0) || (cVar14 != '\0')) {\n              uVar16 = uVar8;\n            }" if (parenthesized_expression "(((bVar3 ^ 1) != 0) || (cVar14 != '\0'))" ( (binary_expression "((bVar3 ^ 1) != 0) || (cVar14 != '\0')" (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) )) || (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              uVar16 = uVar8;\n            }" { (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) })) }))))) (expression_statement "bVar1 = pOVar11->field_0x20;" (assignment_expression "bVar1 = pOVar11->field_0x20" identifier = (field_expression "pOVar11->field_0x20" identifier -> field_identifier)) ;) (if_statement "if ((bVar1 & 4) != 0) goto LAB_003cbd7e;" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cbd7e;" goto statement_identifier ;)) (expression_statement "pOVar11->offset_ = uVar16;" (assignment_expression "pOVar11->offset_ = uVar16" (field_expression "pOVar11->offset_" identifier -> field_identifier) = identifier) ;) (expression_statement "pOVar11->field_0x20 = bVar1 | 4;" (assignment_expression "pOVar11->field_0x20 = bVar1 | 4" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 | 4" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) != 0) goto LAB_003cb866;" if (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cb866;" goto statement_identifier ;)) (labeled_statement "LAB_003cb852:\n          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);" statement_identifier : (expression_statement "(*pOVar11->_vptr_Output_data[0xe])(pOVar11);" (call_expression "(*pOVar11->_vptr_Output_data[0xe])(pOVar11)" (parenthesized_expression "(*pOVar11->_vptr_Output_data[0xe])" ( (pointer_expression "*pOVar11->_vptr_Output_data[0xe]" * (subscript_expression "pOVar11->_vptr_Output_data[0xe]" (field_expression "pOVar11->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar11)" ( identifier ))) ;)) (if_statement "if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }" if (parenthesized_expression "((pOVar11->field_0x20 & 2) == 0)" ( (binary_expression "(pOVar11->field_0x20 & 2) == 0" (parenthesized_expression "(pOVar11->field_0x20 & 2)" ( (binary_expression "pOVar11->field_0x20 & 2" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n          }" { (labeled_statement "LAB_003cbdae:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;)) })) }))) }))) (labeled_statement "LAB_003cb866:\n      bVar4 = Parameters::incremental_update(parameters);" statement_identifier : (ERROR "bVar4 = Parameters::" (assignment_expression "bVar4 = Parameters" identifier = identifier) : :) (expression_statement "incremental_update(parameters);" (call_expression "incremental_update(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;)) (if_statement "if (bVar4) {\n        pOVar11 = *ppOVar9;\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          this_00 = parameters->errors_;\n          iVar5 = (*pOVar11->_vptr_Output_data[9])();\n          pcVar12 = "(special)";\n          if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }\n          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);\n          goto LAB_003cb8d4;\n        }\n      }\n      else {\nLAB_003cb8d4:\n        pOVar11 = *ppOVar9;\n      }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n        pOVar11 = *ppOVar9;\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          this_00 = parameters->errors_;\n          iVar5 = (*pOVar11->_vptr_Output_data[9])();\n          pcVar12 = "(special)";\n          if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }\n          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);\n          goto LAB_003cb8d4;\n        }\n      }" { (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (if_statement "if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          this_00 = parameters->errors_;\n          iVar5 = (*pOVar11->_vptr_Output_data[9])();\n          pcVar12 = "(special)";\n          if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }\n          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);\n          goto LAB_003cb8d4;\n        }" if (parenthesized_expression "((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))" ( (binary_expression "(parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)" (parenthesized_expression "(parameters->options_ != (General_options *)0x0)" ( (binary_expression "parameters->options_ != (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((parameters->debug_ & 0x10) != 0)" ( (binary_expression "(parameters->debug_ & 0x10) != 0" (parenthesized_expression "(parameters->debug_ & 0x10)" ( (binary_expression "parameters->debug_ & 0x10" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          this_00 = parameters->errors_;\n          iVar5 = (*pOVar11->_vptr_Output_data[9])();\n          pcVar12 = "(special)";\n          if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }\n          if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;\n          Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);\n          goto LAB_003cb8d4;\n        }" { (expression_statement "this_00 = parameters->errors_;" (assignment_expression "this_00 = parameters->errors_" identifier = (field_expression "parameters->errors_" identifier -> field_identifier)) ;) (expression_statement "iVar5 = (*pOVar11->_vptr_Output_data[9])();" (assignment_expression "iVar5 = (*pOVar11->_vptr_Output_data[9])()" identifier = (call_expression "(*pOVar11->_vptr_Output_data[9])()" (parenthesized_expression "(*pOVar11->_vptr_Output_data[9])" ( (pointer_expression "*pOVar11->_vptr_Output_data[9]" * (subscript_expression "pOVar11->_vptr_Output_data[9]" (field_expression "pOVar11->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar12 = "(special)";" (assignment_expression "pcVar12 = "(special)"" identifier = (string_literal ""(special)"" " string_content ")) ;) (if_statement "if (CONCAT44(extraout_var,iVar5) != 0) {\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }" if (parenthesized_expression "(CONCAT44(extraout_var,iVar5) != 0)" ( (binary_expression "CONCAT44(extraout_var,iVar5) != 0" (call_expression "CONCAT44(extraout_var,iVar5)" identifier (argument_list "(extraout_var,iVar5)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n            iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();\n            pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);\n          }" { (expression_statement "iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])();" (assignment_expression "iVar5 = (*(*ppOVar9)->_vptr_Output_data[9])()" identifier = (call_expression "(*(*ppOVar9)->_vptr_Output_data[9])()" (parenthesized_expression "(*(*ppOVar9)->_vptr_Output_data[9])" ( (pointer_expression "*(*ppOVar9)->_vptr_Output_data[9]" * (subscript_expression "(*ppOVar9)->_vptr_Output_data[9]" (field_expression "(*ppOVar9)->_vptr_Output_data" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28);" (assignment_expression "pcVar12 = *(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28)" identifier = (pointer_expression "*(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28)" * (cast_expression "(char **)(CONCAT44(extraout_var_00,iVar5) + 0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(CONCAT44(extraout_var_00,iVar5) + 0x28)" ( (binary_expression "CONCAT44(extraout_var_00,iVar5) + 0x28" (call_expression "CONCAT44(extraout_var_00,iVar5)" identifier (argument_list "(extraout_var_00,iVar5)" ( identifier , identifier ))) + number_literal) ))))) ;) })) (if_statement "if (((*ppOVar9)->field_0x20 & 2) == 0) goto LAB_003cbd66;" if (parenthesized_expression "(((*ppOVar9)->field_0x20 & 2) == 0)" ( (binary_expression "((*ppOVar9)->field_0x20 & 2) == 0" (parenthesized_expression "((*ppOVar9)->field_0x20 & 2)" ( (binary_expression "(*ppOVar9)->field_0x20 & 2" (field_expression "(*ppOVar9)->field_0x20" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbd66;" goto statement_identifier ;)) (labeled_statement "Errors::debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);" statement_identifier : (ERROR ":" :) (expression_statement "debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12);" (call_expression "debug(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12)" identifier (argument_list "(this_00,"set_section_list_addresses: %08lx %08lx %s",uVar8,\n                        (*ppOVar9)->data_size_,pcVar12)" ( identifier , (string_literal ""set_section_list_addresses: %08lx %08lx %s"" " string_content ") , identifier , (field_expression "(*ppOVar9)->data_size_" (parenthesized_expression "(*ppOVar9)" ( (pointer_expression "*ppOVar9" * identifier) )) -> field_identifier) , identifier ))) ;)) (goto_statement "goto LAB_003cb8d4;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_003cb8d4:\n        pOVar11 = *ppOVar9;\n      }" else (compound_statement "{\nLAB_003cb8d4:\n        pOVar11 = *ppOVar9;\n      }" { (labeled_statement "LAB_003cb8d4:\n        pOVar11 = *ppOVar9;" statement_identifier : (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;)) }))) (if_statement "if ((cVar14 == '\0') || (bVar3 == 0)) {\n        if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar8 = uVar8 + pOVar11->data_size_;\n        if (bVar3 == 0) {\n          uVar16 = uVar8;\n        }\n      }" if (parenthesized_expression "((cVar14 == '\0') || (bVar3 == 0))" ( (binary_expression "(cVar14 == '\0') || (bVar3 == 0)" (parenthesized_expression "(cVar14 == '\0')" ( (binary_expression "cVar14 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar8 = uVar8 + pOVar11->data_size_;\n        if (bVar3 == 0) {\n          uVar16 = uVar8;\n        }\n      }" { (if_statement "if ((pOVar11->field_0x20 & 2) == 0) {\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }" if (parenthesized_expression "((pOVar11->field_0x20 & 2) == 0)" ( (binary_expression "(pOVar11->field_0x20 & 2) == 0" (parenthesized_expression "(pOVar11->field_0x20 & 2)" ( (binary_expression "pOVar11->field_0x20 & 2" (field_expression "pOVar11->field_0x20" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }" { (labeled_statement "LAB_003cbd66:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;)) })) (expression_statement "uVar8 = uVar8 + pOVar11->data_size_;" (assignment_expression "uVar8 = uVar8 + pOVar11->data_size_" identifier = (binary_expression "uVar8 + pOVar11->data_size_" identifier + (field_expression "pOVar11->data_size_" identifier -> field_identifier))) ;) (if_statement "if (bVar3 == 0) {\n          uVar16 = uVar8;\n        }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar16 = uVar8;\n        }" { (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) })) })) (if_statement "if ((long)uVar15 < (long)uVar8) {\n        uVar15 = uVar8;\n      }" if (parenthesized_expression "((long)uVar15 < (long)uVar8)" ( (binary_expression "(long)uVar15 < (long)uVar8" (cast_expression "(long)uVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)uVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        uVar15 = uVar8;\n      }" { (expression_statement "uVar15 = uVar8;" (assignment_expression "uVar15 = uVar8" identifier = identifier) ;) })) (expression_statement "iVar5 = (*pOVar11->_vptr_Output_data[6])();" (assignment_expression "iVar5 = (*pOVar11->_vptr_Output_data[6])()" identifier = (call_expression "(*pOVar11->_vptr_Output_data[6])()" (parenthesized_expression "(*pOVar11->_vptr_Output_data[6])" ( (pointer_expression "*pOVar11->_vptr_Output_data[6]" * (subscript_expression "pOVar11->_vptr_Output_data[6]" (field_expression "pOVar11->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (if_statement "if ((char)iVar5 != '\0') {\n        pOVar11 = *ppOVar9;\n        if (pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx) {\n          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);\n          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;\n        }\n        else {\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }\n        *pshndx = *pshndx + 1;\n      }" if (parenthesized_expression "((char)iVar5 != '\0')" ( (binary_expression "(char)iVar5 != '\0'" (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pOVar11 = *ppOVar9;\n        if (pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx) {\n          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);\n          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;\n        }\n        else {\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }\n        *pshndx = *pshndx + 1;\n      }" { (expression_statement "pOVar11 = *ppOVar9;" (assignment_expression "pOVar11 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (if_statement "if (pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx) {\n          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);\n          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;\n        }\n        else {\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }" if (parenthesized_expression "(pOVar11->_vptr_Output_data[0xc] == Output_section::do_set_out_shndx)" ( (binary_expression "pOVar11->_vptr_Output_data[0xc] == Output_section" (subscript_expression "pOVar11->_vptr_Output_data[0xc]" (field_expression "pOVar11->_vptr_Output_data" identifier -> field_identifier) [ number_literal ]) == identifier) (ERROR "::do_set_out_shndx" : : identifier) )) (compound_statement "{\n          uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);\n          if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;\n        }" { (expression_statement "uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4);" (assignment_expression "uVar2 = *(uint *)((long)&pOVar11[3]._vptr_Output_data + 4)" identifier = (pointer_expression "*(uint *)((long)&pOVar11[3]._vptr_Output_data + 4)" * (cast_expression "(uint *)((long)&pOVar11[3]._vptr_Output_data + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pOVar11[3]._vptr_Output_data + 4)" ( (binary_expression "(long)&pOVar11[3]._vptr_Output_data + 4" (cast_expression "(long)&pOVar11[3]._vptr_Output_data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pOVar11[3]._vptr_Output_data" & (field_expression "pOVar11[3]._vptr_Output_data" (subscript_expression "pOVar11[3]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (if_statement "if ((*pshndx != uVar2) && (uVar2 != 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }" if (parenthesized_expression "((*pshndx != uVar2) && (uVar2 != 0xffffffff))" ( (binary_expression "(*pshndx != uVar2) && (uVar2 != 0xffffffff)" (parenthesized_expression "(*pshndx != uVar2)" ( (binary_expression "*pshndx != uVar2" (pointer_expression "*pshndx" * identifier) != identifier) )) && (parenthesized_expression "(uVar2 != 0xffffffff)" ( (binary_expression "uVar2 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx");" (call_expression "do_gold_unreachable("../../gold/output.h",0x104b,"do_set_out_shndx")" identifier (argument_list "("../../gold/output.h",0x104b,"do_set_out_shndx")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_set_out_shndx"" " string_content ") ))) ;) })) (expression_statement "*(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;" (assignment_expression "*(uint *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx" (pointer_expression "*(uint *)((long)&pOVar11[3]._vptr_Output_data + 4)" * (cast_expression "(uint *)((long)&pOVar11[3]._vptr_Output_data + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pOVar11[3]._vptr_Output_data + 4)" ( (binary_expression "(long)&pOVar11[3]._vptr_Output_data + 4" (cast_expression "(long)&pOVar11[3]._vptr_Output_data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pOVar11[3]._vptr_Output_data" & (field_expression "pOVar11[3]._vptr_Output_data" (subscript_expression "pOVar11[3]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = (pointer_expression "*pshndx" * identifier)) ;) }) (else_clause "else {\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }" else (compound_statement "{\n          (*pOVar11->_vptr_Output_data[0xc])();\n        }" { (expression_statement "(*pOVar11->_vptr_Output_data[0xc])();" (call_expression "(*pOVar11->_vptr_Output_data[0xc])()" (parenthesized_expression "(*pOVar11->_vptr_Output_data[0xc])" ( (pointer_expression "*pOVar11->_vptr_Output_data[0xc]" * (subscript_expression "pOVar11->_vptr_Output_data[0xc]" (field_expression "pOVar11->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "()" ( ))) ;) }))) (expression_statement "*pshndx = *pshndx + 1;" (assignment_expression "*pshndx = *pshndx + 1" (pointer_expression "*pshndx" * identifier) = (binary_expression "*pshndx + 1" (pointer_expression "*pshndx" * identifier) + number_literal)) ;) })) (expression_statement "ppOVar9 = ppOVar9 + 1;" (assignment_expression "ppOVar9 = ppOVar9 + 1" identifier = (binary_expression "ppOVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar9)" ( (binary_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar9" (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish" (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl" (parenthesized_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)" ( (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std" (binary_expression "pdl->super__Vector_base<gold" (field_expression "pdl->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) != identifier) )) ;) (expression_statement "addr = (uVar15 - minoff) + addr;" (assignment_expression "addr = (uVar15 - minoff) + addr" identifier = (binary_expression "(uVar15 - minoff) + addr" (parenthesized_expression "(uVar15 - minoff)" ( (binary_expression "uVar15 - minoff" identifier - identifier) )) + identifier)) ;) (expression_statement "minoff = uVar15;" (assignment_expression "minoff = uVar15" identifier = identifier) ;) })) (expression_statement "*poff = minoff;" (assignment_expression "*poff = minoff" (pointer_expression "*poff" * identifier) = identifier) ;) (expression_statement "*pfoff = uVar16;" (assignment_expression "*pfoff = uVar16" (pointer_expression "*pfoff" * identifier) = identifier) ;) (return_statement "return addr;" return identifier ;) })))
(translation_unit "long FUN_003cb730(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,\n                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  byte bVar3;\n  char cVar4;\n  char cVar5;\n  ulong uVar6;\n  long lVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  \n  uVar18 = *param_6;\n  uVar19 = *param_7;\n  plVar14 = (long *)*param_4;\n  if (plVar14 != (long *)param_4[1]) {\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }\n  *param_6 = uVar18;\n  *param_7 = uVar19;\n  return param_5;\n}\n\n" (function_definition "long FUN_003cb730(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,\n                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  byte bVar3;\n  char cVar4;\n  char cVar5;\n  ulong uVar6;\n  long lVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  \n  uVar18 = *param_6;\n  uVar19 = *param_7;\n  plVar14 = (long *)*param_4;\n  if (plVar14 != (long *)param_4[1]) {\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }\n  *param_6 = uVar18;\n  *param_7 = uVar19;\n  return param_5;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_003cb730(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,\n                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)" identifier (parameter_list "(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,\n                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char 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 "ulong *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "ulong *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int *param_8" primitive_type (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "char *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  byte bVar3;\n  char cVar4;\n  char cVar5;\n  ulong uVar6;\n  long lVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  \n  uVar18 = *param_6;\n  uVar19 = *param_7;\n  plVar14 = (long *)*param_4;\n  if (plVar14 != (long *)param_4[1]) {\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }\n  *param_6 = uVar18;\n  *param_7 = uVar19;\n  return param_5;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "long *plVar14;" (sized_type_specifier "long" long) (pointer_declarator "*plVar14" * identifier) ;) (declaration "long *plVar15;" (sized_type_specifier "long" long) (pointer_declarator "*plVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (expression_statement "uVar18 = *param_6;" (assignment_expression "uVar18 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "uVar19 = *param_7;" (assignment_expression "uVar19 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "plVar14 = (long *)*param_4;" (assignment_expression "plVar14 = (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 (plVar14 != (long *)param_4[1]) {\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }" if (parenthesized_expression "(plVar14 != (long *)param_4[1])" ( (binary_expression "plVar14 != (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 ]))) )) (compound_statement "{\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }" { (expression_statement "uVar10 = uVar18;" (assignment_expression "uVar10 = uVar18" identifier = identifier) ;) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" identifier = identifier) ;) (do_statement "do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);" do (compound_statement "{\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    }" { (expression_statement "bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);" (assignment_expression "bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8)" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8)" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x38))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x38)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x38)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x38)" ( (binary_expression "*(long *)*plVar14 + 0x38" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "((long *)*plVar14,8)" ( (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier)) , number_literal )))) ;) (expression_statement "cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);" (assignment_expression "cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400)" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400)" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x40))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x40)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x40)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x40)" ( (binary_expression "*(long *)*plVar14 + 0x40" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "((long *)*plVar14,0x400)" ( (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier)) , number_literal )))) ;) (if_statement "if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }" { (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" identifier = (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 & 0xfa;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 & 0xfa" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xfa" identifier & number_literal)) ;) (if_statement "if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }" if (parenthesized_expression "((bVar1 & 8) == 0)" ( (binary_expression "(bVar1 & 8) == 0" (parenthesized_expression "(bVar1 & 8)" ( (binary_expression "bVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }" { (expression_statement "*(byte *)(plVar15 + 4) = bVar1 & 0xf8;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 & 0xf8" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xf8" identifier & number_literal)) ;) })) (expression_statement "(**(code **)(*plVar15 + 0x78))();" (call_expression "(**(code **)(*plVar15 + 0x78))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x78))" ( (pointer_expression "**(code **)(*plVar15 + 0x78)" * (pointer_expression "*(code **)(*plVar15 + 0x78)" * (cast_expression "(code **)(*plVar15 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x78)" ( (binary_expression "*plVar15 + 0x78" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }" if (parenthesized_expression "((*(byte *)((long *)*plVar14 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)((long *)*plVar14 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)((long *)*plVar14 + 4) & 1)" ( (binary_expression "*(byte *)((long *)*plVar14 + 4) & 1" (pointer_expression "*(byte *)((long *)*plVar14 + 4)" * (cast_expression "(byte *)((long *)*plVar14 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long *)*plVar14 + 4)" ( (binary_expression "(long *)*plVar14 + 4" (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier)) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }" { (expression_statement "uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();" (assignment_expression "uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))()" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x18))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x18)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x18)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x18)" ( (binary_expression "*(long *)*plVar14 + 0x18" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = uVar8;" (assignment_expression "uVar6 = uVar8" identifier = identifier) ;) (if_statement "if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }" { (if_statement "if (*param_9 == '\0') goto LAB_003cb7c6;" if (parenthesized_expression "(*param_9 == '\0')" ( (binary_expression "*param_9 == '\0'" (pointer_expression "*param_9" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_003cb7c6;" goto statement_identifier ;)) (expression_statement "uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));" (assignment_expression "uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0))" identifier = (call_expression "FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0))" identifier (argument_list "(*(undefined8 *)(param_2 + 0x2b0))" ( (pointer_expression "*(undefined8 *)(param_2 + 0x2b0)" * (cast_expression "(undefined8 *)(param_2 + 0x2b0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2b0)" ( (binary_expression "param_2 + 0x2b0" identifier + number_literal) )))) )))) ;) (expression_statement "puVar2 = PTR_DAT_0067cb08;" (assignment_expression "puVar2 = PTR_DAT_0067cb08" identifier = identifier) ;) (if_statement "if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }" if (parenthesized_expression "(uVar8 < uVar9)" ( (binary_expression "uVar8 < uVar9" identifier < identifier) )) (compound_statement "{\n            uVar6 = uVar9;\n          }" { (expression_statement "uVar6 = uVar9;" (assignment_expression "uVar6 = uVar9" identifier = identifier) ;) })) (expression_statement "*param_9 = '\0';" (assignment_expression "*param_9 = '\0'" (pointer_expression "*param_9" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar5 = FUN_00406510(puVar2);" (assignment_expression "cVar5 = FUN_00406510(puVar2)" identifier = (call_expression "FUN_00406510(puVar2)" identifier (argument_list "(puVar2)" ( identifier )))) ;) }) (else_clause "else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }" else (compound_statement "{\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }" { (if_statement "if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }" if (parenthesized_expression "(*param_9 == '\0')" ( (binary_expression "*param_9 == '\0'" (pointer_expression "*param_9" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }" { (if_statement "if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }" if (parenthesized_expression "(*(long *)(param_2 + 0x2b0) == 0)" ( (binary_expression "*(long *)(param_2 + 0x2b0) == 0" (pointer_expression "*(long *)(param_2 + 0x2b0)" * (cast_expression "(long *)(param_2 + 0x2b0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2b0)" ( (binary_expression "param_2 + 0x2b0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }" { (expression_statement "FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11c4,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "uVar6 = FUN_003cb5b0();" (assignment_expression "uVar6 = FUN_003cb5b0()" identifier = (call_expression "FUN_003cb5b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }" if (parenthesized_expression "(uVar6 < uVar8)" ( (binary_expression "uVar6 < uVar8" identifier < identifier) )) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }" { (expression_statement "FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11c6,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "*param_9 = '\x01';" (assignment_expression "*param_9 = '\x01'" (pointer_expression "*param_9" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (labeled_statement "LAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);" statement_identifier : (expression_statement "cVar5 = FUN_00406510(PTR_DAT_0067cb08);" (assignment_expression "cVar5 = FUN_00406510(PTR_DAT_0067cb08)" identifier = (call_expression "FUN_00406510(PTR_DAT_0067cb08)" identifier (argument_list "(PTR_DAT_0067cb08)" ( identifier )))) ;)) }))) (if_statement "if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }" { (if_statement "if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }" if (parenthesized_expression "((uVar10 != uVar19) && ((bVar3 ^ 1) != 0))" ( (binary_expression "(uVar10 != uVar19) && ((bVar3 ^ 1) != 0)" (parenthesized_expression "(uVar10 != uVar19)" ( (binary_expression "uVar10 != uVar19" identifier != identifier) )) && (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }" { (expression_statement "FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11df,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (if_statement "if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }" { (expression_statement "uVar10 = (uVar10 - 1) + uVar6 & -uVar6;" (assignment_expression "uVar10 = (uVar10 - 1) + uVar6 & -uVar6" identifier = (binary_expression "(uVar10 - 1) + uVar6 & -uVar6" (binary_expression "(uVar10 - 1) + uVar6" (parenthesized_expression "(uVar10 - 1)" ( (binary_expression "uVar10 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-uVar6" - identifier))) ;) })) (if_statement "if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }" if (parenthesized_expression "(((bVar3 ^ 1) != 0) || (cVar4 != '\0'))" ( (binary_expression "((bVar3 ^ 1) != 0) || (cVar4 != '\0')" (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) )) || (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            uVar19 = uVar10;\n          }" { (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) })) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" identifier = (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }" if (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }" { (labeled_statement "LAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");" statement_identifier : (expression_statement "FUN_00352af0("../../gold/output.h",0x142,"set_address");" (call_expression "FUN_00352af0("../../gold/output.h",0x142,"set_address")" identifier (argument_list "("../../gold/output.h",0x142,"set_address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_address"" " string_content ") ))) ;)) })) (expression_statement "plVar15[1] = (uVar10 - uVar18) + param_5;" (assignment_expression "plVar15[1] = (uVar10 - uVar18) + param_5" (subscript_expression "plVar15[1]" identifier [ number_literal ]) = (binary_expression "(uVar10 - uVar18) + param_5" (parenthesized_expression "(uVar10 - uVar18)" ( (binary_expression "uVar10 - uVar18" identifier - identifier) )) + identifier)) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 1;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 1" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }" { (labeled_statement "LAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");" statement_identifier : (expression_statement "FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset")" identifier (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_file_offset"" " string_content ") ))) ;)) })) (expression_statement "plVar15[3] = uVar19;" (assignment_expression "plVar15[3] = uVar19" (subscript_expression "plVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 5;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 5" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 5" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) goto LAB_003cb852;" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cb852;" goto statement_identifier ;)) }) (else_clause "else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }" else (compound_statement "{\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }" { (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" ( (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }" { (expression_statement "(**(code **)(*plVar15 + 0x68))();" (call_expression "(**(code **)(*plVar15 + 0x68))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x68))" ( (pointer_expression "**(code **)(*plVar15 + 0x68)" * (pointer_expression "*(code **)(*plVar15 + 0x68)" * (cast_expression "(code **)(*plVar15 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x68)" ( (binary_expression "*plVar15 + 0x68" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) })) (expression_statement "lVar7 = plVar15[2];" (assignment_expression "lVar7 = plVar15[2]" identifier = (subscript_expression "plVar15[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);" (assignment_expression "uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18)" identifier = (call_expression "FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18)" identifier (argument_list "(param_2 + 0x468,lVar7,uVar6,uVar18)" ( (binary_expression "param_2 + 0x468" identifier + number_literal) , identifier , identifier , identifier )))) ;) (if_statement "if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }" if (parenthesized_expression "(uVar10 == 0xffffffffffffffff)" ( (binary_expression "uVar10 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }" { (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x48)" ( (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }" { (expression_statement "FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11ee,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x48)" ( (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = "out of patch space for section %s; relink with --incremental-full";" (assignment_expression "pcVar16 = "out of patch space for section %s; relink with --incremental-full"" identifier = (string_literal ""out of patch space for section %s; relink with --incremental-full"" " string_content ")) ;) (expression_statement "uVar11 = *(undefined8 *)(lVar7 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar7 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar7 + 0x28)" * (cast_expression "(undefined8 *)(lVar7 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) (labeled_statement "LAB_003cbcf1:\n            uVar13 = gettext(pcVar16);" statement_identifier : (expression_statement "uVar13 = gettext(pcVar16);" (assignment_expression "uVar13 = gettext(pcVar16)" identifier = (call_expression "gettext(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;)) (expression_statement "FUN_0034a6b0(uVar13,uVar11);" (call_expression "FUN_0034a6b0(uVar13,uVar11)" identifier (argument_list "(uVar13,uVar11)" ( identifier , identifier ))) ;) })) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" identifier = (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 1) != 0) goto LAB_003cbd96;" if (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cbd96;" goto statement_identifier ;)) (expression_statement "plVar15[1] = (uVar10 - uVar18) + param_5;" (assignment_expression "plVar15[1] = (uVar10 - uVar18) + param_5" (subscript_expression "plVar15[1]" identifier [ number_literal ]) = (binary_expression "(uVar10 - uVar18) + param_5" (parenthesized_expression "(uVar10 - uVar18)" ( (binary_expression "uVar10 - uVar18" identifier - identifier) )) + identifier)) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 1;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 1" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 4) != 0) goto LAB_003cbd7e;" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cbd7e;" goto statement_identifier ;)) (expression_statement "plVar15[3] = uVar10;" (assignment_expression "plVar15[3] = uVar10" (subscript_expression "plVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 5;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 5" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 5" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }" { (expression_statement "(**(code **)(*plVar15 + 0x70))(plVar15);" (call_expression "(**(code **)(*plVar15 + 0x70))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x70))" ( (pointer_expression "**(code **)(*plVar15 + 0x70)" * (pointer_expression "*(code **)(*plVar15 + 0x70)" * (cast_expression "(code **)(*plVar15 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x70)" ( (binary_expression "*plVar15 + 0x70" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "(plVar15)" ( identifier ))) ;) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" ( (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbdae;" goto statement_identifier ;)) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" ( (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbd66;" goto statement_identifier ;)) })) (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) (if_statement "if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }" if (parenthesized_expression "(lVar7 < plVar15[2])" ( (binary_expression "lVar7 < plVar15[2]" identifier < (subscript_expression "plVar15[2]" identifier [ number_literal ])) )) (compound_statement "{\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }" { (expression_statement "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);" (assignment_expression "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15)" identifier = (call_expression "(**(code **)(*plVar15 + 0x48))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x48))" ( (pointer_expression "**(code **)(*plVar15 + 0x48)" * (pointer_expression "*(code **)(*plVar15 + 0x48)" * (cast_expression "(code **)(*plVar15 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x48)" ( (binary_expression "*plVar15 + 0x48" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "(plVar15)" ( identifier )))) ;) (if_statement "if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }" { (expression_statement "FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x11f6,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x48)" ( (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = "%s: section changed size; relink with --incremental-full";" (assignment_expression "pcVar16 = "%s: section changed size; relink with --incremental-full"" identifier = (string_literal ""%s: section changed size; relink with --incremental-full"" " string_content ")) ;) (expression_statement "uVar11 = *(undefined8 *)(lVar7 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar7 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar7 + 0x28)" * (cast_expression "(undefined8 *)(lVar7 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_003cbcf1;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }" else (compound_statement "{\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }" { (expression_statement "cVar5 = FUN_00406510(PTR_DAT_0067cb08);" (assignment_expression "cVar5 = FUN_00406510(PTR_DAT_0067cb08)" identifier = (call_expression "FUN_00406510(PTR_DAT_0067cb08)" identifier (argument_list "(PTR_DAT_0067cb08)" ( identifier )))) ;) (if_statement "if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }" { (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 1)" ( (binary_expression "*(byte *)(plVar15 + 4) & 1" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }" { (labeled_statement "LAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");" statement_identifier : (expression_statement "FUN_00352af0("../../gold/output.h",0xc5,"address");" (call_expression "FUN_00352af0("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "uVar6 = (uVar10 - uVar18) + param_5;" (assignment_expression "uVar6 = (uVar10 - uVar18) + param_5" identifier = (binary_expression "(uVar10 - uVar18) + param_5" (parenthesized_expression "(uVar10 - uVar18)" ( (binary_expression "uVar10 - uVar18" identifier - identifier) )) + identifier)) ;) (if_statement "if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" if (parenthesized_expression "((ulong)plVar15[1] < uVar6)" ( (binary_expression "(ulong)plVar15[1] < uVar6" (cast_expression "(ulong)plVar15[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "plVar15[1]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }" { (if_statement "if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }" if (parenthesized_expression "(*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0')" ( (binary_expression "*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0'" (pointer_expression "*(char *)(*(long *)(param_2 + 8) + 0x148)" * (cast_expression "(char *)(*(long *)(param_2 + 8) + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_2 + 8) + 0x148)" ( (binary_expression "*(long *)(param_2 + 8) + 0x148" (pointer_expression "*(long *)(param_2 + 8)" * (cast_expression "(long *)(param_2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }" { (expression_statement "FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses")" identifier (argument_list "("../../gold/output.cc",0x1215,"set_section_list_addresses")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""set_section_list_addresses"" " string_content ") ))) ;) })) (expression_statement "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);" (assignment_expression "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15)" identifier = (call_expression "(**(code **)(*plVar15 + 0x48))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x48))" ( (pointer_expression "**(code **)(*plVar15 + 0x48)" * (pointer_expression "*(code **)(*plVar15 + 0x48)" * (cast_expression "(code **)(*plVar15 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x48)" ( (binary_expression "*plVar15 + 0x48" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "(plVar15)" ( identifier )))) ;) (if_statement "if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;" if (parenthesized_expression "((*(byte *)(*plVar14 + 0x20) & 1) == 0)" ( (binary_expression "(*(byte *)(*plVar14 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(*plVar14 + 0x20) & 1)" ( (binary_expression "*(byte *)(*plVar14 + 0x20) & 1" (pointer_expression "*(byte *)(*plVar14 + 0x20)" * (cast_expression "(byte *)(*plVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 0x20)" ( (binary_expression "*plVar14 + 0x20" (pointer_expression "*plVar14" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbe3e;" goto statement_identifier ;)) (expression_statement "uVar11 = *(undefined8 *)(*plVar14 + 8);" (assignment_expression "uVar11 = *(undefined8 *)(*plVar14 + 8)" identifier = (pointer_expression "*(undefined8 *)(*plVar14 + 8)" * (cast_expression "(undefined8 *)(*plVar14 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 8)" ( (binary_expression "*plVar14 + 8" (pointer_expression "*plVar14" * identifier) + number_literal) ))))) ;) (if_statement "if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" { (expression_statement "uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");" (assignment_expression "uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx")" identifier = (call_expression "gettext("dot moves backward in linker script from 0x%llx to 0x%llx")" identifier (argument_list "("dot moves backward in linker script from 0x%llx to 0x%llx")" ( (string_literal ""dot moves backward in linker script from 0x%llx to 0x%llx"" " string_content ") )))) ;) (expression_statement "FUN_0034a750(uVar13,uVar6,uVar11);" (call_expression "FUN_0034a750(uVar13,uVar6,uVar11)" identifier (argument_list "(uVar13,uVar6,uVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) }) (else_clause "else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" else (compound_statement "{\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" { (expression_statement "uVar13 = *(undefined8 *)(lVar7 + 0x28);" (assignment_expression "uVar13 = *(undefined8 *)(lVar7 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar7 + 0x28)" * (cast_expression "(undefined8 *)(lVar7 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");" (assignment_expression "uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx")" identifier = (call_expression "gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx")" identifier (argument_list "("address of section \'%s\' moves backward from 0x%llx to 0x%llx")" ( (string_literal ""address of section \'%s\' moves backward from 0x%llx to 0x%llx"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_0034a750(uVar12,uVar13,uVar6,uVar11);" (call_expression "FUN_0034a750(uVar12,uVar13,uVar6,uVar11)" identifier (argument_list "(uVar12,uVar13,uVar6,uVar11)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) }))) }) (else_clause "else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" else (if_statement "if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" if (parenthesized_expression "(((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0))" ( (binary_expression "((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)" (parenthesized_expression "((long)uVar19 < (long)uVar10)" ( (binary_expression "(long)uVar19 < (long)uVar10" (cast_expression "(long)uVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)uVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) && (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) ))) )) (compound_statement "{\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }" { (expression_statement "uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );" (assignment_expression "uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            )" identifier = (call_expression "gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            )" identifier (argument_list "(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            )" ( (string_literal ""script places BSS section in the middle of a LOAD segment; space will be allocated in the file"" " string_content ") )))) ;) (expression_statement "FUN_0034a800(uVar11);" (call_expression "FUN_0034a800(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 1)" ( (binary_expression "*(byte *)(plVar15 + 4) & 1" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbe3e;" goto statement_identifier ;)) (expression_statement "uVar10 = (uVar10 + plVar15[1]) - uVar6;" (assignment_expression "uVar10 = (uVar10 + plVar15[1]) - uVar6" identifier = (binary_expression "(uVar10 + plVar15[1]) - uVar6" (parenthesized_expression "(uVar10 + plVar15[1])" ( (binary_expression "uVar10 + plVar15[1]" identifier + (subscript_expression "plVar15[1]" identifier [ number_literal ])) )) - identifier)) ;) (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) }) (else_clause "else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" else (compound_statement "{\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" { (expression_statement "uVar10 = (plVar15[1] + uVar10) - uVar6;" (assignment_expression "uVar10 = (plVar15[1] + uVar10) - uVar6" identifier = (binary_expression "(plVar15[1] + uVar10) - uVar6" (parenthesized_expression "(plVar15[1] + uVar10)" ( (binary_expression "plVar15[1] + uVar10" (subscript_expression "plVar15[1]" identifier [ number_literal ]) + identifier) )) - identifier)) ;) (if_statement "if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }" if (parenthesized_expression "(((bVar3 ^ 1) != 0) || (cVar4 != '\0'))" ( (binary_expression "((bVar3 ^ 1) != 0) || (cVar4 != '\0')" (parenthesized_expression "((bVar3 ^ 1) != 0)" ( (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) != number_literal) )) || (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              uVar19 = uVar10;\n            }" { (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) })) }))))) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" identifier = (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) goto LAB_003cbd7e;" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cbd7e;" goto statement_identifier ;)) (expression_statement "plVar15[3] = uVar19;" (assignment_expression "plVar15[3] = uVar19" (subscript_expression "plVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 4;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 4" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 4" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) != 0) goto LAB_003cb866;" if (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003cb866;" goto statement_identifier ;)) (labeled_statement "LAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);" statement_identifier : (expression_statement "(**(code **)(*plVar15 + 0x70))(plVar15);" (call_expression "(**(code **)(*plVar15 + 0x70))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x70))" ( (pointer_expression "**(code **)(*plVar15 + 0x70)" * (pointer_expression "*(code **)(*plVar15 + 0x70)" * (cast_expression "(code **)(*plVar15 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x70)" ( (binary_expression "*plVar15 + 0x70" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "(plVar15)" ( identifier ))) ;)) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" ( (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }" { (labeled_statement "LAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");" statement_identifier : (expression_statement "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;)) })) }) (else_clause "else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }" else (compound_statement "{\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }" { (if_statement "if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }" if (parenthesized_expression "((*(byte *)(*plVar14 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(*plVar14 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(*plVar14 + 0x20) & 4)" ( (binary_expression "*(byte *)(*plVar14 + 0x20) & 4" (pointer_expression "*(byte *)(*plVar14 + 0x20)" * (cast_expression "(byte *)(*plVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 0x20)" ( (binary_expression "*plVar14 + 0x20" (pointer_expression "*plVar14" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }" { (expression_statement "FUN_00352af0("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_00352af0("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "uVar10 = *(ulong *)(*plVar14 + 0x18);" (assignment_expression "uVar10 = *(ulong *)(*plVar14 + 0x18)" identifier = (pointer_expression "*(ulong *)(*plVar14 + 0x18)" * (cast_expression "(ulong *)(*plVar14 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 0x18)" ( (binary_expression "*plVar14 + 0x18" (pointer_expression "*plVar14" * identifier) + number_literal) ))))) ;) (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);" statement_identifier : (expression_statement "cVar5 = FUN_00406510(PTR_DAT_0067cb08);" (assignment_expression "cVar5 = FUN_00406510(PTR_DAT_0067cb08)" identifier = (call_expression "FUN_00406510(PTR_DAT_0067cb08)" identifier (argument_list "(PTR_DAT_0067cb08)" ( identifier )))) ;)) (if_statement "if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }" { (labeled_statement "LAB_003cb8d4:\n        plVar15 = (long *)*plVar14;" statement_identifier : (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;)) }) (else_clause "else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }" else (compound_statement "{\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }" { (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }" if (parenthesized_expression "((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_0067cb08[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_0067cb08[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0067cb08[0x24] & 0x10)" ( (binary_expression "PTR_DAT_0067cb08[0x24] & 0x10" (subscript_expression "PTR_DAT_0067cb08[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }" { (expression_statement "uVar11 = *(undefined8 *)PTR_DAT_0067cb08;" (assignment_expression "uVar11 = *(undefined8 *)PTR_DAT_0067cb08" identifier = (pointer_expression "*(undefined8 *)PTR_DAT_0067cb08" * (cast_expression "(undefined8 *)PTR_DAT_0067cb08" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "lVar7 = (**(code **)(*plVar15 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*plVar15 + 0x48))()" identifier = (call_expression "(**(code **)(*plVar15 + 0x48))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x48))" ( (pointer_expression "**(code **)(*plVar15 + 0x48)" * (pointer_expression "*(code **)(*plVar15 + 0x48)" * (cast_expression "(code **)(*plVar15 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x48)" ( (binary_expression "*plVar15 + 0x48" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = "(special)";" (assignment_expression "pcVar16 = "(special)"" identifier = (string_literal ""(special)"" " string_content ")) ;) (if_statement "if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }" { (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" identifier = (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" ( (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" * (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" * (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar14 + 0x48)" ( (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" * (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = *(char **)(lVar7 + 0x28);" (assignment_expression "pcVar16 = *(char **)(lVar7 + 0x28)" identifier = (pointer_expression "*(char **)(lVar7 + 0x28)" * (cast_expression "(char **)(lVar7 + 0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) })) (if_statement "if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;" if (parenthesized_expression "((*(byte *)(*plVar14 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(*plVar14 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(*plVar14 + 0x20) & 2)" ( (binary_expression "*(byte *)(*plVar14 + 0x20) & 2" (pointer_expression "*(byte *)(*plVar14 + 0x20)" * (cast_expression "(byte *)(*plVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 0x20)" ( (binary_expression "*plVar14 + 0x20" (pointer_expression "*plVar14" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003cbd66;" goto statement_identifier ;)) (expression_statement "FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);" (call_expression "FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16)" identifier (argument_list "(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16)" ( identifier , (string_literal ""set_section_list_addresses: %08lx %08lx %s"" " string_content ") , identifier , (pointer_expression "*(undefined8 *)(*plVar14 + 0x10)" * (cast_expression "(undefined8 *)(*plVar14 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar14 + 0x10)" ( (binary_expression "*plVar14 + 0x10" (pointer_expression "*plVar14" * identifier) + number_literal) )))) , identifier ))) ;) (goto_statement "goto LAB_003cb8d4;" goto statement_identifier ;) })) }))) (if_statement "if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }" if (parenthesized_expression "((cVar4 == '\0') || (bVar3 == 0))" ( (binary_expression "(cVar4 == '\0') || (bVar3 == 0)" (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }" { (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }" if (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" ( (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" * (cast_expression "(byte *)(plVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar15 + 4)" ( (binary_expression "plVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }" { (labeled_statement "LAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");" statement_identifier : (expression_statement "FUN_00352af0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00352af0("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;)) })) (expression_statement "uVar10 = uVar10 + plVar15[2];" (assignment_expression "uVar10 = uVar10 + plVar15[2]" identifier = (binary_expression "uVar10 + plVar15[2]" identifier + (subscript_expression "plVar15[2]" identifier [ number_literal ]))) ;) (if_statement "if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar19 = uVar10;\n        }" { (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" identifier = identifier) ;) })) })) (if_statement "if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }" if (parenthesized_expression "((long)uVar17 < (long)uVar10)" ( (binary_expression "(long)uVar17 < (long)uVar10" (cast_expression "(long)uVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)uVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        uVar17 = uVar10;\n      }" { (expression_statement "uVar17 = uVar10;" (assignment_expression "uVar17 = uVar10" identifier = identifier) ;) })) (expression_statement "cVar4 = (**(code **)(*plVar15 + 0x30))();" (assignment_expression "cVar4 = (**(code **)(*plVar15 + 0x30))()" identifier = (call_expression "(**(code **)(*plVar15 + 0x30))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x30))" ( (pointer_expression "**(code **)(*plVar15 + 0x30)" * (pointer_expression "*(code **)(*plVar15 + 0x30)" * (cast_expression "(code **)(*plVar15 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x30)" ( (binary_expression "*plVar15 + 0x30" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }" { (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" identifier = (cast_expression "(long *)*plVar14" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar14" * identifier))) ;) (if_statement "if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }" if (parenthesized_expression "(*(code **)(*plVar15 + 0x60) == FUN_00264ed0)" ( (binary_expression "*(code **)(*plVar15 + 0x60) == FUN_00264ed0" (pointer_expression "*(code **)(*plVar15 + 0x60)" * (cast_expression "(code **)(*plVar15 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x60)" ( (binary_expression "*plVar15 + 0x60" (pointer_expression "*plVar15" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }" { (if_statement "if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }" if (parenthesized_expression "((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             )" ( (binary_expression "(*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)" (parenthesized_expression "(*param_8 != *(int *)((long)plVar15 + 0x7c))" ( (binary_expression "*param_8 != *(int *)((long)plVar15 + 0x7c)" (pointer_expression "*param_8" * identifier) != (pointer_expression "*(int *)((long)plVar15 + 0x7c)" * (cast_expression "(int *)((long)plVar15 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + 0x7c)" ( (binary_expression "(long)plVar15 + 0x7c" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )) && (parenthesized_expression "(*(int *)((long)plVar15 + 0x7c) != -1)" ( (binary_expression "*(int *)((long)plVar15 + 0x7c) != -1" (pointer_expression "*(int *)((long)plVar15 + 0x7c)" * (cast_expression "(int *)((long)plVar15 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + 0x7c)" ( (binary_expression "(long)plVar15 + 0x7c" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }" { (expression_statement "FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");" (call_expression "FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx")" identifier (argument_list "("../../gold/output.h",0x104b,"do_set_out_shndx")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_set_out_shndx"" " string_content ") ))) ;) })) (expression_statement "*(int *)((long)plVar15 + 0x7c) = *param_8;" (assignment_expression "*(int *)((long)plVar15 + 0x7c) = *param_8" (pointer_expression "*(int *)((long)plVar15 + 0x7c)" * (cast_expression "(int *)((long)plVar15 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar15 + 0x7c)" ( (binary_expression "(long)plVar15 + 0x7c" (cast_expression "(long)plVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*param_8" * identifier)) ;) }) (else_clause "else {\n          (**(code **)(*plVar15 + 0x60))();\n        }" else (compound_statement "{\n          (**(code **)(*plVar15 + 0x60))();\n        }" { (expression_statement "(**(code **)(*plVar15 + 0x60))();" (call_expression "(**(code **)(*plVar15 + 0x60))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x60))" ( (pointer_expression "**(code **)(*plVar15 + 0x60)" * (pointer_expression "*(code **)(*plVar15 + 0x60)" * (cast_expression "(code **)(*plVar15 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar15 + 0x60)" ( (binary_expression "*plVar15 + 0x60" (pointer_expression "*plVar15" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "*param_8 = *param_8 + 1;" (assignment_expression "*param_8 = *param_8 + 1" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 + 1" (pointer_expression "*param_8" * identifier) + number_literal)) ;) })) (expression_statement "plVar14 = plVar14 + 1;" (assignment_expression "plVar14 = plVar14 + 1" identifier = (binary_expression "plVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)param_4[1] != plVar14)" ( (binary_expression "(long *)param_4[1] != plVar14" (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 ])) != identifier) )) ;) (expression_statement "param_5 = (uVar17 - uVar18) + param_5;" (assignment_expression "param_5 = (uVar17 - uVar18) + param_5" identifier = (binary_expression "(uVar17 - uVar18) + param_5" (parenthesized_expression "(uVar17 - uVar18)" ( (binary_expression "uVar17 - uVar18" identifier - identifier) )) + identifier)) ;) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) })) (expression_statement "*param_6 = uVar18;" (assignment_expression "*param_6 = uVar18" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "*param_7 = uVar19;" (assignment_expression "*param_7 = uVar19" (pointer_expression "*param_7" * identifier) = identifier) ;) (return_statement "return param_5;" return identifier ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) })) (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 (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (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 { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression (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 ") ))) ;) })) (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))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( )))) ;) (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 ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( 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) )) (goto_statement goto statement_identifier ;)) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (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 ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (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 (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 IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( 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 (pointer_expression * IDENT) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (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 *)) ) (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) )) - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )) - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( 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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) }) (else_clause else (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 (pointer_expression * IDENT) + LIT) )))) & 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) }) (else_clause else (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == 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 IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (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 = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })))
(function_definition "long FUN_003cb730(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,\n                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  byte bVar3;\n  char cVar4;\n  char cVar5;\n  ulong uVar6;\n  long lVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  \n  uVar18 = *param_6;\n  uVar19 = *param_7;\n  plVar14 = (long *)*param_4;\n  if (plVar14 != (long *)param_4[1]) {\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }\n  *param_6 = uVar18;\n  *param_7 = uVar19;\n  return param_5;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_003cb730(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,\n                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)" (identifier "FUN_003cb730") (parameter_list "(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,\n                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "char param_3" (primitive_type "char") (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 "ulong *param_6" (type_identifier "ulong") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "ulong *param_7" (type_identifier "ulong") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "int *param_8" (primitive_type "int") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) (, ",") (parameter_declaration "char *param_9" (primitive_type "char") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  byte bVar3;\n  char cVar4;\n  char cVar5;\n  ulong uVar6;\n  long lVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  \n  uVar18 = *param_6;\n  uVar19 = *param_7;\n  plVar14 = (long *)*param_4;\n  if (plVar14 != (long *)param_4[1]) {\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }\n  *param_6 = uVar18;\n  *param_7 = uVar19;\n  return param_5;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (declaration "undefined8 uVar13;" (type_identifier "undefined8") (identifier "uVar13") (; ";")) (declaration "long *plVar14;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar14" (* "*") (identifier "plVar14")) (; ";")) (declaration "long *plVar15;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar15" (* "*") (identifier "plVar15")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "ulong uVar17;" (type_identifier "ulong") (identifier "uVar17") (; ";")) (declaration "ulong uVar18;" (type_identifier "ulong") (identifier "uVar18") (; ";")) (declaration "ulong uVar19;" (type_identifier "ulong") (identifier "uVar19") (; ";")) (expression_statement "uVar18 = *param_6;" (assignment_expression "uVar18 = *param_6" (identifier "uVar18") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (expression_statement "uVar19 = *param_7;" (assignment_expression "uVar19 = *param_7" (identifier "uVar19") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "plVar14 = (long *)*param_4;" (assignment_expression "plVar14 = (long *)*param_4" (identifier "plVar14") (= "=") (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 (plVar14 != (long *)param_4[1]) {\n    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }" (if "if") (parenthesized_expression "(plVar14 != (long *)param_4[1])" (( "(") (binary_expression "plVar14 != (long *)param_4[1]" (identifier "plVar14") (!= "!=") (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    uVar10 = uVar18;\n    uVar17 = uVar18;\n    do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);\n    param_5 = (uVar17 - uVar18) + param_5;\n    uVar18 = uVar17;\n  }" ({ "{") (expression_statement "uVar10 = uVar18;" (assignment_expression "uVar10 = uVar18" (identifier "uVar10") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" (identifier "uVar17") (= "=") (identifier "uVar18")) (; ";")) (do_statement "do {\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    } while ((long *)param_4[1] != plVar14);" (do "do") (compound_statement "{\n      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);\n      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);\n      if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }\n      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }\nLAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n      if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }\n      if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }\n      if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }\n      cVar4 = (**(code **)(*plVar15 + 0x30))();\n      if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }\n      plVar14 = plVar14 + 1;\n    }" ({ "{") (expression_statement "bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);" (assignment_expression "bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8)" (identifier "bVar3") (= "=") (call_expression "(**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8)" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x38))" (( "(") (pointer_expression "**(code **)(*(long *)*plVar14 + 0x38)" (* "*") (pointer_expression "*(code **)(*(long *)*plVar14 + 0x38)" (* "*") (cast_expression "(code **)(*(long *)*plVar14 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*plVar14 + 0x38)" (( "(") (binary_expression "*(long *)*plVar14 + 0x38" (pointer_expression "*(long *)*plVar14" (* "*") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "((long *)*plVar14,8)" (( "(") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14"))) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);" (assignment_expression "cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400)" (identifier "cVar4") (= "=") (call_expression "(**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400)" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x40))" (( "(") (pointer_expression "**(code **)(*(long *)*plVar14 + 0x40)" (* "*") (pointer_expression "*(code **)(*(long *)*plVar14 + 0x40)" (* "*") (cast_expression "(code **)(*(long *)*plVar14 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*plVar14 + 0x40)" (( "(") (binary_expression "*(long *)*plVar14 + 0x40" (pointer_expression "*(long *)*plVar14" (* "*") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "((long *)*plVar14,0x400)" (( "(") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14"))) (, ",") (number_literal "0x400") () ")")))) (; ";")) (if_statement "if (param_3 != '\0') {\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }" (if "if") (parenthesized_expression "(param_3 != '\0')" (( "(") (binary_expression "param_3 != '\0'" (identifier "param_3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        plVar15 = (long *)*plVar14;\n        bVar1 = *(byte *)(plVar15 + 4);\n        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;\n        if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }\n        (**(code **)(*plVar15 + 0x78))();\n      }" ({ "{") (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 & 0xfa;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 & 0xfa" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "bVar1 & 0xfa" (identifier "bVar1") (& "&") (number_literal "0xfa"))) (; ";")) (if_statement "if ((bVar1 & 8) == 0) {\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }" (if "if") (parenthesized_expression "((bVar1 & 8) == 0)" (( "(") (binary_expression "(bVar1 & 8) == 0" (parenthesized_expression "(bVar1 & 8)" (( "(") (binary_expression "bVar1 & 8" (identifier "bVar1") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;\n        }" ({ "{") (expression_statement "*(byte *)(plVar15 + 4) = bVar1 & 0xf8;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 & 0xf8" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "bVar1 & 0xf8" (identifier "bVar1") (& "&") (number_literal "0xf8"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(*plVar15 + 0x78))();" (call_expression "(**(code **)(*plVar15 + 0x78))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x78))" (( "(") (pointer_expression "**(code **)(*plVar15 + 0x78)" (* "*") (pointer_expression "*(code **)(*plVar15 + 0x78)" (* "*") (cast_expression "(code **)(*plVar15 + 0x78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar15 + 0x78)" (( "(") (binary_expression "*plVar15 + 0x78" (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (+ "+") (number_literal "0x78")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }\n      else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }" (if "if") (parenthesized_expression "((*(byte *)((long *)*plVar14 + 4) & 1) == 0)" (( "(") (binary_expression "(*(byte *)((long *)*plVar14 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)((long *)*plVar14 + 4) & 1)" (( "(") (binary_expression "*(byte *)((long *)*plVar14 + 4) & 1" (pointer_expression "*(byte *)((long *)*plVar14 + 4)" (* "*") (cast_expression "(byte *)((long *)*plVar14 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long *)*plVar14 + 4)" (( "(") (binary_expression "(long *)*plVar14 + 4" (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14"))) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();\n        uVar6 = uVar8;\n        if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }\n        if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }\n      }" ({ "{") (expression_statement "uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();" (assignment_expression "uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))()" (identifier "uVar8") (= "=") (call_expression "(**(code **)(*(long *)*plVar14 + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x18))" (( "(") (pointer_expression "**(code **)(*(long *)*plVar14 + 0x18)" (* "*") (pointer_expression "*(code **)(*(long *)*plVar14 + 0x18)" (* "*") (cast_expression "(code **)(*(long *)*plVar14 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*plVar14 + 0x18)" (( "(") (binary_expression "*(long *)*plVar14 + 0x18" (pointer_expression "*(long *)*plVar14" (* "*") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar6 = uVar8;" (assignment_expression "uVar6 = uVar8" (identifier "uVar6") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (cVar4 == '\0') {\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }\n        else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (*param_9 == '\0') goto LAB_003cb7c6;\n          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));\n          puVar2 = PTR_DAT_0067cb08;\n          if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }\n          *param_9 = '\0';\n          cVar5 = FUN_00406510(puVar2);\n        }" ({ "{") (if_statement "if (*param_9 == '\0') goto LAB_003cb7c6;" (if "if") (parenthesized_expression "(*param_9 == '\0')" (( "(") (binary_expression "*param_9 == '\0'" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_003cb7c6;" (goto "goto") (statement_identifier "LAB_003cb7c6") (; ";"))) (expression_statement "uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));" (assignment_expression "uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0))" (identifier "uVar9") (= "=") (call_expression "FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0))" (identifier "FUN_003cb5b0") (argument_list "(*(undefined8 *)(param_2 + 0x2b0))" (( "(") (pointer_expression "*(undefined8 *)(param_2 + 0x2b0)" (* "*") (cast_expression "(undefined8 *)(param_2 + 0x2b0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2b0)" (( "(") (binary_expression "param_2 + 0x2b0" (identifier "param_2") (+ "+") (number_literal "0x2b0")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar2 = PTR_DAT_0067cb08;" (assignment_expression "puVar2 = PTR_DAT_0067cb08" (identifier "puVar2") (= "=") (identifier "PTR_DAT_0067cb08")) (; ";")) (if_statement "if (uVar8 < uVar9) {\n            uVar6 = uVar9;\n          }" (if "if") (parenthesized_expression "(uVar8 < uVar9)" (( "(") (binary_expression "uVar8 < uVar9" (identifier "uVar8") (< "<") (identifier "uVar9")) () ")")) (compound_statement "{\n            uVar6 = uVar9;\n          }" ({ "{") (expression_statement "uVar6 = uVar9;" (assignment_expression "uVar6 = uVar9" (identifier "uVar6") (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (expression_statement "*param_9 = '\0';" (assignment_expression "*param_9 = '\0'" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "cVar5 = FUN_00406510(puVar2);" (assignment_expression "cVar5 = FUN_00406510(puVar2)" (identifier "cVar5") (= "=") (call_expression "FUN_00406510(puVar2)" (identifier "FUN_00406510") (argument_list "(puVar2)" (( "(") (identifier "puVar2") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }" (else "else") (compound_statement "{\n          if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }\nLAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        }" ({ "{") (if_statement "if (*param_9 == '\0') {\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }" (if "if") (parenthesized_expression "(*param_9 == '\0')" (( "(") (binary_expression "*param_9 == '\0'" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }\n            uVar6 = FUN_003cb5b0();\n            if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }\n            *param_9 = '\x01';\n          }" ({ "{") (if_statement "if (*(long *)(param_2 + 0x2b0) == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }" (if "if") (parenthesized_expression "(*(long *)(param_2 + 0x2b0) == 0)" (( "(") (binary_expression "*(long *)(param_2 + 0x2b0) == 0" (pointer_expression "*(long *)(param_2 + 0x2b0)" (* "*") (cast_expression "(long *)(param_2 + 0x2b0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2b0)" (( "(") (binary_expression "param_2 + 0x2b0" (identifier "param_2") (+ "+") (number_literal "0x2b0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");\n            }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.cc",0x11c4,"set_section_list_addresses")" (( "(") (string_literal ""../../gold/output.cc"" (" """) (string_content "../../gold/output.cc") (" """)) (, ",") (number_literal "0x11c4") (, ",") (string_literal ""set_section_list_addresses"" (" """) (string_content "set_section_list_addresses") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_003cb5b0();" (assignment_expression "uVar6 = FUN_003cb5b0()" (identifier "uVar6") (= "=") (call_expression "FUN_003cb5b0()" (identifier "FUN_003cb5b0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (uVar6 < uVar8) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }" (if "if") (parenthesized_expression "(uVar6 < uVar8)" (( "(") (binary_expression "uVar6 < uVar8" (identifier "uVar6") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");\n            }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.cc",0x11c6,"set_section_list_addresses")" (( "(") (string_literal ""../../gold/output.cc"" (" """) (string_content "../../gold/output.cc") (" """)) (, ",") (number_literal "0x11c6") (, ",") (string_literal ""set_section_list_addresses"" (" """) (string_content "set_section_list_addresses") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*param_9 = '\x01';" (assignment_expression "*param_9 = '\x01'" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}"))) (labeled_statement "LAB_003cb7c6:\n          cVar5 = FUN_00406510(PTR_DAT_0067cb08);" (statement_identifier "LAB_003cb7c6") (: ":") (expression_statement "cVar5 = FUN_00406510(PTR_DAT_0067cb08);" (assignment_expression "cVar5 = FUN_00406510(PTR_DAT_0067cb08)" (identifier "cVar5") (= "=") (call_expression "FUN_00406510(PTR_DAT_0067cb08)" (identifier "FUN_00406510") (argument_list "(PTR_DAT_0067cb08)" (( "(") (identifier "PTR_DAT_0067cb08") () ")")))) (; ";"))) (} "}")))) (if_statement "if (cVar5 == '\0') {\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }\n        else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }" (if "if") (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }\n          if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }\n          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) goto LAB_003cb852;\n        }" ({ "{") (if_statement "if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }" (if "if") (parenthesized_expression "((uVar10 != uVar19) && ((bVar3 ^ 1) != 0))" (( "(") (binary_expression "(uVar10 != uVar19) && ((bVar3 ^ 1) != 0)" (parenthesized_expression "(uVar10 != uVar19)" (( "(") (binary_expression "uVar10 != uVar19" (identifier "uVar10") (!= "!=") (identifier "uVar19")) () ")")) (&& "&&") (parenthesized_expression "((bVar3 ^ 1) != 0)" (( "(") (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" (( "(") (binary_expression "bVar3 ^ 1" (identifier "bVar3") (^ "^") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");\n          }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.cc",0x11df,"set_section_list_addresses")" (( "(") (string_literal ""../../gold/output.cc"" (" """) (string_content "../../gold/output.cc") (" """)) (, ",") (number_literal "0x11df") (, ",") (string_literal ""set_section_list_addresses"" (" """) (string_content "set_section_list_addresses") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar6 != 0) {\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;\n          }" ({ "{") (expression_statement "uVar10 = (uVar10 - 1) + uVar6 & -uVar6;" (assignment_expression "uVar10 = (uVar10 - 1) + uVar6 & -uVar6" (identifier "uVar10") (= "=") (binary_expression "(uVar10 - 1) + uVar6 & -uVar6" (binary_expression "(uVar10 - 1) + uVar6" (parenthesized_expression "(uVar10 - 1)" (( "(") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1")) () ")")) (+ "+") (identifier "uVar6")) (& "&") (unary_expression "-uVar6" (- "-") (identifier "uVar6")))) (; ";")) (} "}"))) (if_statement "if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n            uVar19 = uVar10;\n          }" (if "if") (parenthesized_expression "(((bVar3 ^ 1) != 0) || (cVar4 != '\0'))" (( "(") (binary_expression "((bVar3 ^ 1) != 0) || (cVar4 != '\0')" (parenthesized_expression "((bVar3 ^ 1) != 0)" (( "(") (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" (( "(") (binary_expression "bVar3 ^ 1" (identifier "bVar3") (^ "^") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            uVar19 = uVar10;\n          }" ({ "{") (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" (identifier "uVar19") (= "=") (identifier "uVar10")) (; ";")) (} "}"))) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 1) != 0) {\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }" (if "if") (parenthesized_expression "((bVar1 & 1) != 0)" (( "(") (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");\n          }" ({ "{") (labeled_statement "LAB_003cbd96:\n                    \n            FUN_00352af0("../../gold/output.h",0x142,"set_address");" (statement_identifier "LAB_003cbd96") (: ":") (expression_statement "FUN_00352af0("../../gold/output.h",0x142,"set_address");" (call_expression "FUN_00352af0("../../gold/output.h",0x142,"set_address")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.h",0x142,"set_address")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x142") (, ",") (string_literal ""set_address"" (" """) (string_content "set_address") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "plVar15[1] = (uVar10 - uVar18) + param_5;" (assignment_expression "plVar15[1] = (uVar10 - uVar18) + param_5" (subscript_expression "plVar15[1]" (identifier "plVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(uVar10 - uVar18) + param_5" (parenthesized_expression "(uVar10 - uVar18)" (( "(") (binary_expression "uVar10 - uVar18" (identifier "uVar10") (- "-") (identifier "uVar18")) () ")")) (+ "+") (identifier "param_5"))) (; ";")) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 1;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 1" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "bVar1 | 1" (identifier "bVar1") (| "|") (number_literal "1"))) (; ";")) (if_statement "if ((bVar1 & 4) != 0) {\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }" (if "if") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");\n          }" ({ "{") (labeled_statement "LAB_003cbd7e:\n                    \n            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");" (statement_identifier "LAB_003cbd7e") (: ":") (expression_statement "FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x14b") (, ",") (string_literal ""set_file_offset"" (" """) (string_content "set_file_offset") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "plVar15[3] = uVar19;" (assignment_expression "plVar15[3] = uVar19" (subscript_expression "plVar15[3]" (identifier "plVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 5;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 5" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "bVar1 | 5" (identifier "bVar1") (| "|") (number_literal "5"))) (; ";")) (if_statement "if ((bVar1 & 2) == 0) goto LAB_003cb852;" (if "if") (parenthesized_expression "((bVar1 & 2) == 0)" (( "(") (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003cb852;" (goto "goto") (statement_identifier "LAB_003cb852") (; ";"))) (} "}")) (else_clause "else {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }" (else "else") (compound_statement "{\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }\n          lVar7 = plVar15[2];\n          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);\n          if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }\n          plVar15 = (long *)*plVar14;\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 1) != 0) goto LAB_003cbd96;\n          plVar15[1] = (uVar10 - uVar18) + param_5;\n          *(byte *)(plVar15 + 4) = bVar1 | 1;\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar10;\n          *(byte *)(plVar15 + 4) = bVar1 | 5;\n          if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }\n          uVar19 = uVar10;\n          if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }\n        }" ({ "{") (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) {\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }" (if "if") (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" (( "(") (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(*plVar15 + 0x68))();\n            plVar15 = (long *)*plVar14;\n          }" ({ "{") (expression_statement "(**(code **)(*plVar15 + 0x68))();" (call_expression "(**(code **)(*plVar15 + 0x68))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x68))" (( "(") (pointer_expression "**(code **)(*plVar15 + 0x68)" (* "*") (pointer_expression "*(code **)(*plVar15 + 0x68)" (* "*") (cast_expression "(code **)(*plVar15 + 0x68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar15 + 0x68)" (( "(") (binary_expression "*plVar15 + 0x68" (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (} "}"))) (expression_statement "lVar7 = plVar15[2];" (assignment_expression "lVar7 = plVar15[2]" (identifier "lVar7") (= "=") (subscript_expression "plVar15[2]" (identifier "plVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);" (assignment_expression "uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18)" (identifier "uVar10") (= "=") (call_expression "FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18)" (identifier "FUN_0037aa30") (argument_list "(param_2 + 0x468,lVar7,uVar6,uVar18)" (( "(") (binary_expression "param_2 + 0x468" (identifier "param_2") (+ "+") (number_literal "0x468")) (, ",") (identifier "lVar7") (, ",") (identifier "uVar6") (, ",") (identifier "uVar18") () ")")))) (; ";")) (if_statement "if (uVar10 == 0xffffffffffffffff) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }" (if "if") (parenthesized_expression "(uVar10 == 0xffffffffffffffff)" (( "(") (binary_expression "uVar10 == 0xffffffffffffffff" (identifier "uVar10") (== "==") (number_literal "0xffffffffffffffff")) () ")")) (compound_statement "{\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "out of patch space for section %s; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\nLAB_003cbcf1:\n            uVar13 = gettext(pcVar16);\n                    \n            FUN_0034a6b0(uVar13,uVar11);\n          }" ({ "{") (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" (identifier "lVar7") (= "=") (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" (( "(") (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" (* "*") (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" (* "*") (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*plVar14 + 0x48)" (( "(") (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" (* "*") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");\n            }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.cc",0x11ee,"set_section_list_addresses")" (( "(") (string_literal ""../../gold/output.cc"" (" """) (string_content "../../gold/output.cc") (" """)) (, ",") (number_literal "0x11ee") (, ",") (string_literal ""set_section_list_addresses"" (" """) (string_content "set_section_list_addresses") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" (identifier "lVar7") (= "=") (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" (( "(") (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" (* "*") (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" (* "*") (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*plVar14 + 0x48)" (( "(") (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" (* "*") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar16 = "out of patch space for section %s; relink with --incremental-full";" (assignment_expression "pcVar16 = "out of patch space for section %s; relink with --incremental-full"" (identifier "pcVar16") (= "=") (string_literal ""out of patch space for section %s; relink with --incremental-full"" (" """) (string_content "out of patch space for section %s; relink with --incremental-full") (" """))) (; ";")) (expression_statement "uVar11 = *(undefined8 *)(lVar7 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar7 + 0x28)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined8 *)(lVar7 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar7 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x28)" (( "(") (binary_expression "lVar7 + 0x28" (identifier "lVar7") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (labeled_statement "LAB_003cbcf1:\n            uVar13 = gettext(pcVar16);" (statement_identifier "LAB_003cbcf1") (: ":") (expression_statement "uVar13 = gettext(pcVar16);" (assignment_expression "uVar13 = gettext(pcVar16)" (identifier "uVar13") (= "=") (call_expression "gettext(pcVar16)" (identifier "gettext") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")")))) (; ";"))) (expression_statement "FUN_0034a6b0(uVar13,uVar11);" (call_expression "FUN_0034a6b0(uVar13,uVar11)" (identifier "FUN_0034a6b0") (argument_list "(uVar13,uVar11)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 1) != 0) goto LAB_003cbd96;" (if "if") (parenthesized_expression "((bVar1 & 1) != 0)" (( "(") (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_003cbd96;" (goto "goto") (statement_identifier "LAB_003cbd96") (; ";"))) (expression_statement "plVar15[1] = (uVar10 - uVar18) + param_5;" (assignment_expression "plVar15[1] = (uVar10 - uVar18) + param_5" (subscript_expression "plVar15[1]" (identifier "plVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(uVar10 - uVar18) + param_5" (parenthesized_expression "(uVar10 - uVar18)" (( "(") (binary_expression "uVar10 - uVar18" (identifier "uVar10") (- "-") (identifier "uVar18")) () ")")) (+ "+") (identifier "param_5"))) (; ";")) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 1;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 1" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "bVar1 | 1" (identifier "bVar1") (| "|") (number_literal "1"))) (; ";")) (if_statement "if ((bVar1 & 4) != 0) goto LAB_003cbd7e;" (if "if") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_003cbd7e;" (goto "goto") (statement_identifier "LAB_003cbd7e") (; ";"))) (expression_statement "plVar15[3] = uVar10;" (assignment_expression "plVar15[3] = uVar10" (subscript_expression "plVar15[3]" (identifier "plVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 5;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 5" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "bVar1 | 5" (identifier "bVar1") (| "|") (number_literal "5"))) (; ";")) (if_statement "if ((bVar1 & 2) == 0) {\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }" (if "if") (parenthesized_expression "((bVar1 & 2) == 0)" (( "(") (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(*plVar15 + 0x70))(plVar15);\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;\n          }" ({ "{") (expression_statement "(**(code **)(*plVar15 + 0x70))(plVar15);" (call_expression "(**(code **)(*plVar15 + 0x70))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x70))" (( "(") (pointer_expression "**(code **)(*plVar15 + 0x70)" (* "*") (pointer_expression "*(code **)(*plVar15 + 0x70)" (* "*") (cast_expression "(code **)(*plVar15 + 0x70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar15 + 0x70)" (( "(") (binary_expression "*plVar15 + 0x70" (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (+ "+") (number_literal "0x70")) () ")"))))) () ")")) (argument_list "(plVar15)" (( "(") (identifier "plVar15") () ")"))) (; ";")) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;" (if "if") (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" (( "(") (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003cbdae;" (goto "goto") (statement_identifier "LAB_003cbdae") (; ";"))) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;" (if "if") (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" (( "(") (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003cbd66;" (goto "goto") (statement_identifier "LAB_003cbd66") (; ";"))) (} "}"))) (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" (identifier "uVar19") (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (lVar7 < plVar15[2]) {\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }" (if "if") (parenthesized_expression "(lVar7 < plVar15[2])" (( "(") (binary_expression "lVar7 < plVar15[2]" (identifier "lVar7") (< "<") (subscript_expression "plVar15[2]" (identifier "plVar15") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = "%s: section changed size; relink with --incremental-full";\n            uVar11 = *(undefined8 *)(lVar7 + 0x28);\n            goto LAB_003cbcf1;\n          }" ({ "{") (expression_statement "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);" (assignment_expression "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15)" (identifier "lVar7") (= "=") (call_expression "(**(code **)(*plVar15 + 0x48))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x48))" (( "(") (pointer_expression "**(code **)(*plVar15 + 0x48)" (* "*") (pointer_expression "*(code **)(*plVar15 + 0x48)" (* "*") (cast_expression "(code **)(*plVar15 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar15 + 0x48)" (( "(") (binary_expression "*plVar15 + 0x48" (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(plVar15)" (( "(") (identifier "plVar15") () ")")))) (; ";")) (if_statement "if (lVar7 == 0) {\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");\n            }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.cc",0x11f6,"set_section_list_addresses")" (( "(") (string_literal ""../../gold/output.cc"" (" """) (string_content "../../gold/output.cc") (" """)) (, ",") (number_literal "0x11f6") (, ",") (string_literal ""set_section_list_addresses"" (" """) (string_content "set_section_list_addresses") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" (identifier "lVar7") (= "=") (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" (( "(") (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" (* "*") (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" (* "*") (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*plVar14 + 0x48)" (( "(") (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" (* "*") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar16 = "%s: section changed size; relink with --incremental-full";" (assignment_expression "pcVar16 = "%s: section changed size; relink with --incremental-full"" (identifier "pcVar16") (= "=") (string_literal ""%s: section changed size; relink with --incremental-full"" (" """) (string_content "%s: section changed size; relink with --incremental-full") (" """))) (; ";")) (expression_statement "uVar11 = *(undefined8 *)(lVar7 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar7 + 0x28)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined8 *)(lVar7 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar7 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x28)" (( "(") (binary_expression "lVar7 + 0x28" (identifier "lVar7") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (goto_statement "goto LAB_003cbcf1;" (goto "goto") (statement_identifier "LAB_003cbcf1") (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }" (else "else") (compound_statement "{\n        cVar5 = FUN_00406510(PTR_DAT_0067cb08);\n        if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }\n      }" ({ "{") (expression_statement "cVar5 = FUN_00406510(PTR_DAT_0067cb08);" (assignment_expression "cVar5 = FUN_00406510(PTR_DAT_0067cb08)" (identifier "cVar5") (= "=") (call_expression "FUN_00406510(PTR_DAT_0067cb08)" (identifier "FUN_00406510") (argument_list "(PTR_DAT_0067cb08)" (( "(") (identifier "PTR_DAT_0067cb08") () ")")))) (; ";")) (if_statement "if (cVar5 == '\0') {\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }\n        else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }" (if "if") (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          plVar15 = (long *)*plVar14;\n          if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }\n          uVar6 = (uVar10 - uVar18) + param_5;\n          if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }\n          bVar1 = *(byte *)(plVar15 + 4);\n          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;\n          plVar15[3] = uVar19;\n          *(byte *)(plVar15 + 4) = bVar1 | 4;\n          if ((bVar1 & 2) != 0) goto LAB_003cb866;\nLAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);\n          if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }\n        }" ({ "{") (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (if_statement "if ((*(byte *)(plVar15 + 4) & 1) == 0) {\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }" (if "if") (parenthesized_expression "((*(byte *)(plVar15 + 4) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(plVar15 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 1)" (( "(") (binary_expression "*(byte *)(plVar15 + 4) & 1" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");\n          }" ({ "{") (labeled_statement "LAB_003cbe3e:\n                    \n            FUN_00352af0("../../gold/output.h",0xc5,"address");" (statement_identifier "LAB_003cbe3e") (: ":") (expression_statement "FUN_00352af0("../../gold/output.h",0xc5,"address");" (call_expression "FUN_00352af0("../../gold/output.h",0xc5,"address")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.h",0xc5,"address")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""address"" (" """) (string_content "address") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar6 = (uVar10 - uVar18) + param_5;" (assignment_expression "uVar6 = (uVar10 - uVar18) + param_5" (identifier "uVar6") (= "=") (binary_expression "(uVar10 - uVar18) + param_5" (parenthesized_expression "(uVar10 - uVar18)" (( "(") (binary_expression "uVar10 - uVar18" (identifier "uVar10") (- "-") (identifier "uVar18")) () ")")) (+ "+") (identifier "param_5"))) (; ";")) (if_statement "if ((ulong)plVar15[1] < uVar6) {\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }\n          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" (if "if") (parenthesized_expression "((ulong)plVar15[1] < uVar6)" (( "(") (binary_expression "(ulong)plVar15[1] < uVar6" (cast_expression "(ulong)plVar15[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "plVar15[1]" (identifier "plVar15") ([ "[") (number_literal "1") (] "]"))) (< "<") (identifier "uVar6")) () ")")) (compound_statement "{\n            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }\n            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);\n            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;\n            uVar11 = *(undefined8 *)(*plVar14 + 8);\n            if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n          }" ({ "{") (if_statement "if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0')" (( "(") (binary_expression "*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0'" (pointer_expression "*(char *)(*(long *)(param_2 + 8) + 0x148)" (* "*") (cast_expression "(char *)(*(long *)(param_2 + 8) + 0x148)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_2 + 8) + 0x148)" (( "(") (binary_expression "*(long *)(param_2 + 8) + 0x148" (pointer_expression "*(long *)(param_2 + 8)" (* "*") (cast_expression "(long *)(param_2 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x148")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");\n            }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");" (call_expression "FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.cc",0x1215,"set_section_list_addresses")" (( "(") (string_literal ""../../gold/output.cc"" (" """) (string_content "../../gold/output.cc") (" """)) (, ",") (number_literal "0x1215") (, ",") (string_literal ""set_section_list_addresses"" (" """) (string_content "set_section_list_addresses") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);" (assignment_expression "lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15)" (identifier "lVar7") (= "=") (call_expression "(**(code **)(*plVar15 + 0x48))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x48))" (( "(") (pointer_expression "**(code **)(*plVar15 + 0x48)" (* "*") (pointer_expression "*(code **)(*plVar15 + 0x48)" (* "*") (cast_expression "(code **)(*plVar15 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar15 + 0x48)" (( "(") (binary_expression "*plVar15 + 0x48" (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(plVar15)" (( "(") (identifier "plVar15") () ")")))) (; ";")) (if_statement "if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;" (if "if") (parenthesized_expression "((*(byte *)(*plVar14 + 0x20) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(*plVar14 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(*plVar14 + 0x20) & 1)" (( "(") (binary_expression "*(byte *)(*plVar14 + 0x20) & 1" (pointer_expression "*(byte *)(*plVar14 + 0x20)" (* "*") (cast_expression "(byte *)(*plVar14 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar14 + 0x20)" (( "(") (binary_expression "*plVar14 + 0x20" (pointer_expression "*plVar14" (* "*") (identifier "plVar14")) (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003cbe3e;" (goto "goto") (statement_identifier "LAB_003cbe3e") (; ";"))) (expression_statement "uVar11 = *(undefined8 *)(*plVar14 + 8);" (assignment_expression "uVar11 = *(undefined8 *)(*plVar14 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined8 *)(*plVar14 + 8)" (* "*") (cast_expression "(undefined8 *)(*plVar14 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar14 + 8)" (( "(") (binary_expression "*plVar14 + 8" (pointer_expression "*plVar14" (* "*") (identifier "plVar14")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (lVar7 == 0) {\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }\n            else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" ({ "{") (expression_statement "uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");" (assignment_expression "uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx")" (identifier "uVar13") (= "=") (call_expression "gettext("dot moves backward in linker script from 0x%llx to 0x%llx")" (identifier "gettext") (argument_list "("dot moves backward in linker script from 0x%llx to 0x%llx")" (( "(") (string_literal ""dot moves backward in linker script from 0x%llx to 0x%llx"" (" """) (string_content "dot moves backward in linker script from 0x%llx to 0x%llx") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0034a750(uVar13,uVar6,uVar11);" (call_expression "FUN_0034a750(uVar13,uVar6,uVar11)" (identifier "FUN_0034a750") (argument_list "(uVar13,uVar6,uVar11)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar6") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (} "}")) (else_clause "else {\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" (else "else") (compound_statement "{\n              uVar13 = *(undefined8 *)(lVar7 + 0x28);\n              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");\n              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);\n              plVar15 = (long *)*plVar14;\n            }" ({ "{") (expression_statement "uVar13 = *(undefined8 *)(lVar7 + 0x28);" (assignment_expression "uVar13 = *(undefined8 *)(lVar7 + 0x28)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined8 *)(lVar7 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar7 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x28)" (( "(") (binary_expression "lVar7 + 0x28" (identifier "lVar7") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");" (assignment_expression "uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx")" (identifier "uVar12") (= "=") (call_expression "gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx")" (identifier "gettext") (argument_list "("address of section \'%s\' moves backward from 0x%llx to 0x%llx")" (( "(") (string_literal ""address of section \'%s\' moves backward from 0x%llx to 0x%llx"" (" """) (string_content "address of section ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " moves backward from 0x%llx to 0x%llx") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0034a750(uVar12,uVar13,uVar6,uVar11);" (call_expression "FUN_0034a750(uVar12,uVar13,uVar6,uVar11)" (identifier "FUN_0034a750") (argument_list "(uVar12,uVar13,uVar6,uVar11)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar13") (, ",") (identifier "uVar6") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (} "}")))) (} "}")) (else_clause "else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" (else "else") (if_statement "if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }\n          else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" (if "if") (parenthesized_expression "(((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0))" (( "(") (binary_expression "((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)" (parenthesized_expression "((long)uVar19 < (long)uVar10)" (( "(") (binary_expression "(long)uVar19 < (long)uVar10" (cast_expression "(long)uVar19" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar19")) (< "<") (cast_expression "(long)uVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar10"))) () ")")) (&& "&&") (parenthesized_expression "((bVar3 ^ 1) != 0)" (( "(") (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" (( "(") (binary_expression "bVar3 ^ 1" (identifier "bVar3") (^ "^") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );\n            FUN_0034a800(uVar11);\n            plVar15 = (long *)*plVar14;\n            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;\n            uVar10 = (uVar10 + plVar15[1]) - uVar6;\n            uVar19 = uVar10;\n          }" ({ "{") (expression_statement "uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            );" (assignment_expression "uVar11 = gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            )" (identifier "uVar11") (= "=") (call_expression "gettext(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            )" (identifier "gettext") (argument_list "(\n                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"\n                            )" (( "(") (string_literal ""script places BSS section in the middle of a LOAD segment; space will be allocated in the file"" (" """) (string_content "script places BSS section in the middle of a LOAD segment; space will be allocated in the file") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0034a800(uVar11);" (call_expression "FUN_0034a800(uVar11)" (identifier "FUN_0034a800") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (if_statement "if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;" (if "if") (parenthesized_expression "((*(byte *)(plVar15 + 4) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(plVar15 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 1)" (( "(") (binary_expression "*(byte *)(plVar15 + 4) & 1" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003cbe3e;" (goto "goto") (statement_identifier "LAB_003cbe3e") (; ";"))) (expression_statement "uVar10 = (uVar10 + plVar15[1]) - uVar6;" (assignment_expression "uVar10 = (uVar10 + plVar15[1]) - uVar6" (identifier "uVar10") (= "=") (binary_expression "(uVar10 + plVar15[1]) - uVar6" (parenthesized_expression "(uVar10 + plVar15[1])" (( "(") (binary_expression "uVar10 + plVar15[1]" (identifier "uVar10") (+ "+") (subscript_expression "plVar15[1]" (identifier "plVar15") ([ "[") (number_literal "1") (] "]"))) () ")")) (- "-") (identifier "uVar6"))) (; ";")) (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" (identifier "uVar19") (= "=") (identifier "uVar10")) (; ";")) (} "}")) (else_clause "else {\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" (else "else") (compound_statement "{\n            uVar10 = (plVar15[1] + uVar10) - uVar6;\n            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }\n          }" ({ "{") (expression_statement "uVar10 = (plVar15[1] + uVar10) - uVar6;" (assignment_expression "uVar10 = (plVar15[1] + uVar10) - uVar6" (identifier "uVar10") (= "=") (binary_expression "(plVar15[1] + uVar10) - uVar6" (parenthesized_expression "(plVar15[1] + uVar10)" (( "(") (binary_expression "plVar15[1] + uVar10" (subscript_expression "plVar15[1]" (identifier "plVar15") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "uVar10")) () ")")) (- "-") (identifier "uVar6"))) (; ";")) (if_statement "if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {\n              uVar19 = uVar10;\n            }" (if "if") (parenthesized_expression "(((bVar3 ^ 1) != 0) || (cVar4 != '\0'))" (( "(") (binary_expression "((bVar3 ^ 1) != 0) || (cVar4 != '\0')" (parenthesized_expression "((bVar3 ^ 1) != 0)" (( "(") (binary_expression "(bVar3 ^ 1) != 0" (parenthesized_expression "(bVar3 ^ 1)" (( "(") (binary_expression "bVar3 ^ 1" (identifier "bVar3") (^ "^") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n              uVar19 = uVar10;\n            }" ({ "{") (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" (identifier "uVar19") (= "=") (identifier "uVar10")) (; ";")) (} "}"))) (} "}")))))) (expression_statement "bVar1 = *(byte *)(plVar15 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar15 + 4)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 4) != 0) goto LAB_003cbd7e;" (if "if") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_003cbd7e;" (goto "goto") (statement_identifier "LAB_003cbd7e") (; ";"))) (expression_statement "plVar15[3] = uVar19;" (assignment_expression "plVar15[3] = uVar19" (subscript_expression "plVar15[3]" (identifier "plVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "*(byte *)(plVar15 + 4) = bVar1 | 4;" (assignment_expression "*(byte *)(plVar15 + 4) = bVar1 | 4" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "bVar1 | 4" (identifier "bVar1") (| "|") (number_literal "4"))) (; ";")) (if_statement "if ((bVar1 & 2) != 0) goto LAB_003cb866;" (if "if") (parenthesized_expression "((bVar1 & 2) != 0)" (( "(") (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_003cb866;" (goto "goto") (statement_identifier "LAB_003cb866") (; ";"))) (labeled_statement "LAB_003cb852:\n          (**(code **)(*plVar15 + 0x70))(plVar15);" (statement_identifier "LAB_003cb852") (: ":") (expression_statement "(**(code **)(*plVar15 + 0x70))(plVar15);" (call_expression "(**(code **)(*plVar15 + 0x70))(plVar15)" (parenthesized_expression "(**(code **)(*plVar15 + 0x70))" (( "(") (pointer_expression "**(code **)(*plVar15 + 0x70)" (* "*") (pointer_expression "*(code **)(*plVar15 + 0x70)" (* "*") (cast_expression "(code **)(*plVar15 + 0x70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar15 + 0x70)" (( "(") (binary_expression "*plVar15 + 0x70" (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (+ "+") (number_literal "0x70")) () ")"))))) () ")")) (argument_list "(plVar15)" (( "(") (identifier "plVar15") () ")"))) (; ";"))) (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }" (if "if") (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" (( "(") (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");\n          }" ({ "{") (labeled_statement "LAB_003cbdae:\n                    \n            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");" (statement_identifier "LAB_003cbdae") (: ":") (expression_statement "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x163") (, ",") (string_literal ""finalize_data_size"" (" """) (string_content "finalize_data_size") (" """)) () ")"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }" (else "else") (compound_statement "{\n          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }\n          uVar10 = *(ulong *)(*plVar14 + 0x18);\n          uVar19 = uVar10;\n        }" ({ "{") (if_statement "if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }" (if "if") (parenthesized_expression "((*(byte *)(*plVar14 + 0x20) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(*plVar14 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(*plVar14 + 0x20) & 4)" (( "(") (binary_expression "*(byte *)(*plVar14 + 0x20) & 4" (pointer_expression "*(byte *)(*plVar14 + 0x20)" (* "*") (cast_expression "(byte *)(*plVar14 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar14 + 0x20)" (( "(") (binary_expression "*plVar14 + 0x20" (pointer_expression "*plVar14" (* "*") (identifier "plVar14")) (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/output.h",0xe3,"offset");\n          }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_00352af0("../../gold/output.h",0xe3,"offset")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.h",0xe3,"offset")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe3") (, ",") (string_literal ""offset"" (" """) (string_content "offset") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = *(ulong *)(*plVar14 + 0x18);" (assignment_expression "uVar10 = *(ulong *)(*plVar14 + 0x18)" (identifier "uVar10") (= "=") (pointer_expression "*(ulong *)(*plVar14 + 0x18)" (* "*") (cast_expression "(ulong *)(*plVar14 + 0x18)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar14 + 0x18)" (( "(") (binary_expression "*plVar14 + 0x18" (pointer_expression "*plVar14" (* "*") (identifier "plVar14")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" (identifier "uVar19") (= "=") (identifier "uVar10")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_003cb866:\n      cVar5 = FUN_00406510(PTR_DAT_0067cb08);" (statement_identifier "LAB_003cb866") (: ":") (expression_statement "cVar5 = FUN_00406510(PTR_DAT_0067cb08);" (assignment_expression "cVar5 = FUN_00406510(PTR_DAT_0067cb08)" (identifier "cVar5") (= "=") (call_expression "FUN_00406510(PTR_DAT_0067cb08)" (identifier "FUN_00406510") (argument_list "(PTR_DAT_0067cb08)" (( "(") (identifier "PTR_DAT_0067cb08") () ")")))) (; ";"))) (if_statement "if (cVar5 == '\0') {\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }\n      else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }" (if "if") (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_003cb8d4:\n        plVar15 = (long *)*plVar14;\n      }" ({ "{") (labeled_statement "LAB_003cb8d4:\n        plVar15 = (long *)*plVar14;" (statement_identifier "LAB_003cb8d4") (: ":") (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";"))) (} "}")) (else_clause "else {\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }" (else "else") (compound_statement "{\n        plVar15 = (long *)*plVar14;\n        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }\n      }" ({ "{") (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (if_statement "if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }" (if "if") (parenthesized_expression "((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0))" (( "(") (binary_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((PTR_DAT_0067cb08[0x24] & 0x10) != 0)" (( "(") (binary_expression "(PTR_DAT_0067cb08[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0067cb08[0x24] & 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08[0x24] & 0x10" (subscript_expression "PTR_DAT_0067cb08[0x24]" (identifier "PTR_DAT_0067cb08") ([ "[") (number_literal "0x24") (] "]")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;\n          lVar7 = (**(code **)(*plVar15 + 0x48))();\n          pcVar16 = "(special)";\n          if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }\n          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;\n          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);\n          goto LAB_003cb8d4;\n        }" ({ "{") (expression_statement "uVar11 = *(undefined8 *)PTR_DAT_0067cb08;" (assignment_expression "uVar11 = *(undefined8 *)PTR_DAT_0067cb08" (identifier "uVar11") (= "=") (pointer_expression "*(undefined8 *)PTR_DAT_0067cb08" (* "*") (cast_expression "(undefined8 *)PTR_DAT_0067cb08" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0067cb08")))) (; ";")) (expression_statement "lVar7 = (**(code **)(*plVar15 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*plVar15 + 0x48))()" (identifier "lVar7") (= "=") (call_expression "(**(code **)(*plVar15 + 0x48))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x48))" (( "(") (pointer_expression "**(code **)(*plVar15 + 0x48)" (* "*") (pointer_expression "*(code **)(*plVar15 + 0x48)" (* "*") (cast_expression "(code **)(*plVar15 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar15 + 0x48)" (( "(") (binary_expression "*plVar15 + 0x48" (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar16 = "(special)";" (assignment_expression "pcVar16 = "(special)"" (identifier "pcVar16") (= "=") (string_literal ""(special)"" (" """) (string_content "(special)") (" """))) (; ";")) (if_statement "if (lVar7 != 0) {\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }" (if "if") (parenthesized_expression "(lVar7 != 0)" (( "(") (binary_expression "lVar7 != 0" (identifier "lVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();\n            pcVar16 = *(char **)(lVar7 + 0x28);\n          }" ({ "{") (expression_statement "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();" (assignment_expression "lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))()" (identifier "lVar7") (= "=") (call_expression "(**(code **)(*(long *)*plVar14 + 0x48))()" (parenthesized_expression "(**(code **)(*(long *)*plVar14 + 0x48))" (( "(") (pointer_expression "**(code **)(*(long *)*plVar14 + 0x48)" (* "*") (pointer_expression "*(code **)(*(long *)*plVar14 + 0x48)" (* "*") (cast_expression "(code **)(*(long *)*plVar14 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*plVar14 + 0x48)" (( "(") (binary_expression "*(long *)*plVar14 + 0x48" (pointer_expression "*(long *)*plVar14" (* "*") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar16 = *(char **)(lVar7 + 0x28);" (assignment_expression "pcVar16 = *(char **)(lVar7 + 0x28)" (identifier "pcVar16") (= "=") (pointer_expression "*(char **)(lVar7 + 0x28)" (* "*") (cast_expression "(char **)(lVar7 + 0x28)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar7 + 0x28)" (( "(") (binary_expression "lVar7 + 0x28" (identifier "lVar7") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;" (if "if") (parenthesized_expression "((*(byte *)(*plVar14 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(*plVar14 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(*plVar14 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(*plVar14 + 0x20) & 2" (pointer_expression "*(byte *)(*plVar14 + 0x20)" (* "*") (cast_expression "(byte *)(*plVar14 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar14 + 0x20)" (( "(") (binary_expression "*plVar14 + 0x20" (pointer_expression "*plVar14" (* "*") (identifier "plVar14")) (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003cbd66;" (goto "goto") (statement_identifier "LAB_003cbd66") (; ";"))) (expression_statement "FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);" (call_expression "FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16)" (identifier "FUN_0034a530") (argument_list "(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,\n                       *(undefined8 *)(*plVar14 + 0x10),pcVar16)" (( "(") (identifier "uVar11") (, ",") (string_literal ""set_section_list_addresses: %08lx %08lx %s"" (" """) (string_content "set_section_list_addresses: %08lx %08lx %s") (" """)) (, ",") (identifier "uVar10") (, ",") (pointer_expression "*(undefined8 *)(*plVar14 + 0x10)" (* "*") (cast_expression "(undefined8 *)(*plVar14 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar14 + 0x10)" (( "(") (binary_expression "*plVar14 + 0x10" (pointer_expression "*plVar14" (* "*") (identifier "plVar14")) (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "pcVar16") () ")"))) (; ";")) (goto_statement "goto LAB_003cb8d4;" (goto "goto") (statement_identifier "LAB_003cb8d4") (; ";")) (} "}"))) (} "}")))) (if_statement "if ((cVar4 == '\0') || (bVar3 == 0)) {\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }" (if "if") (parenthesized_expression "((cVar4 == '\0') || (bVar3 == 0))" (( "(") (binary_expression "(cVar4 == '\0') || (bVar3 == 0)" (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(bVar3 == 0)" (( "(") (binary_expression "bVar3 == 0" (identifier "bVar3") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }\n        uVar10 = uVar10 + plVar15[2];\n        if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }\n      }" ({ "{") (if_statement "if ((*(byte *)(plVar15 + 4) & 2) == 0) {\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }" (if "if") (parenthesized_expression "((*(byte *)(plVar15 + 4) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(plVar15 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar15 + 4) & 2)" (( "(") (binary_expression "*(byte *)(plVar15 + 4) & 2" (pointer_expression "*(byte *)(plVar15 + 4)" (* "*") (cast_expression "(byte *)(plVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar15 + 4)" (( "(") (binary_expression "plVar15 + 4" (identifier "plVar15") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n        }" ({ "{") (labeled_statement "LAB_003cbd66:\n                    \n          FUN_00352af0("../../gold/output.h",0xcf,"data_size");" (statement_identifier "LAB_003cbd66") (: ":") (expression_statement "FUN_00352af0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00352af0("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.h",0xcf,"data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xcf") (, ",") (string_literal ""data_size"" (" """) (string_content "data_size") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar10 = uVar10 + plVar15[2];" (assignment_expression "uVar10 = uVar10 + plVar15[2]" (identifier "uVar10") (= "=") (binary_expression "uVar10 + plVar15[2]" (identifier "uVar10") (+ "+") (subscript_expression "plVar15[2]" (identifier "plVar15") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (bVar3 == 0) {\n          uVar19 = uVar10;\n        }" (if "if") (parenthesized_expression "(bVar3 == 0)" (( "(") (binary_expression "bVar3 == 0" (identifier "bVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar19 = uVar10;\n        }" ({ "{") (expression_statement "uVar19 = uVar10;" (assignment_expression "uVar19 = uVar10" (identifier "uVar19") (= "=") (identifier "uVar10")) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((long)uVar17 < (long)uVar10) {\n        uVar17 = uVar10;\n      }" (if "if") (parenthesized_expression "((long)uVar17 < (long)uVar10)" (( "(") (binary_expression "(long)uVar17 < (long)uVar10" (cast_expression "(long)uVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar17")) (< "<") (cast_expression "(long)uVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar10"))) () ")")) (compound_statement "{\n        uVar17 = uVar10;\n      }" ({ "{") (expression_statement "uVar17 = uVar10;" (assignment_expression "uVar17 = uVar10" (identifier "uVar17") (= "=") (identifier "uVar10")) (; ";")) (} "}"))) (expression_statement "cVar4 = (**(code **)(*plVar15 + 0x30))();" (assignment_expression "cVar4 = (**(code **)(*plVar15 + 0x30))()" (identifier "cVar4") (= "=") (call_expression "(**(code **)(*plVar15 + 0x30))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x30))" (( "(") (pointer_expression "**(code **)(*plVar15 + 0x30)" (* "*") (pointer_expression "*(code **)(*plVar15 + 0x30)" (* "*") (cast_expression "(code **)(*plVar15 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar15 + 0x30)" (( "(") (binary_expression "*plVar15 + 0x30" (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar4 != '\0') {\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        plVar15 = (long *)*plVar14;\n        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }\n        *param_8 = *param_8 + 1;\n      }" ({ "{") (expression_statement "plVar15 = (long *)*plVar14;" (assignment_expression "plVar15 = (long *)*plVar14" (identifier "plVar15") (= "=") (cast_expression "(long *)*plVar14" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar14" (* "*") (identifier "plVar14")))) (; ";")) (if_statement "if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }\n        else {\n          (**(code **)(*plVar15 + 0x60))();\n        }" (if "if") (parenthesized_expression "(*(code **)(*plVar15 + 0x60) == FUN_00264ed0)" (( "(") (binary_expression "*(code **)(*plVar15 + 0x60) == FUN_00264ed0" (pointer_expression "*(code **)(*plVar15 + 0x60)" (* "*") (cast_expression "(code **)(*plVar15 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar15 + 0x60)" (( "(") (binary_expression "*plVar15 + 0x60" (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (identifier "FUN_00264ed0")) () ")")) (compound_statement "{\n          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }\n          *(int *)((long)plVar15 + 0x7c) = *param_8;\n        }" ({ "{") (if_statement "if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             ) {\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }" (if "if") (parenthesized_expression "((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)\n             )" (( "(") (binary_expression "(*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)" (parenthesized_expression "(*param_8 != *(int *)((long)plVar15 + 0x7c))" (( "(") (binary_expression "*param_8 != *(int *)((long)plVar15 + 0x7c)" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (!= "!=") (pointer_expression "*(int *)((long)plVar15 + 0x7c)" (* "*") (cast_expression "(int *)((long)plVar15 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar15 + 0x7c)" (( "(") (binary_expression "(long)plVar15 + 0x7c" (cast_expression "(long)plVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar15")) (+ "+") (number_literal "0x7c")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)((long)plVar15 + 0x7c) != -1)" (( "(") (binary_expression "*(int *)((long)plVar15 + 0x7c) != -1" (pointer_expression "*(int *)((long)plVar15 + 0x7c)" (* "*") (cast_expression "(int *)((long)plVar15 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar15 + 0x7c)" (( "(") (binary_expression "(long)plVar15 + 0x7c" (cast_expression "(long)plVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar15")) (+ "+") (number_literal "0x7c")) () ")")))) (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");\n          }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");" (call_expression "FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.h",0x104b,"do_set_out_shndx")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x104b") (, ",") (string_literal ""do_set_out_shndx"" (" """) (string_content "do_set_out_shndx") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*(int *)((long)plVar15 + 0x7c) = *param_8;" (assignment_expression "*(int *)((long)plVar15 + 0x7c) = *param_8" (pointer_expression "*(int *)((long)plVar15 + 0x7c)" (* "*") (cast_expression "(int *)((long)plVar15 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar15 + 0x7c)" (( "(") (binary_expression "(long)plVar15 + 0x7c" (cast_expression "(long)plVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar15")) (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (pointer_expression "*param_8" (* "*") (identifier "param_8"))) (; ";")) (} "}")) (else_clause "else {\n          (**(code **)(*plVar15 + 0x60))();\n        }" (else "else") (compound_statement "{\n          (**(code **)(*plVar15 + 0x60))();\n        }" ({ "{") (expression_statement "(**(code **)(*plVar15 + 0x60))();" (call_expression "(**(code **)(*plVar15 + 0x60))()" (parenthesized_expression "(**(code **)(*plVar15 + 0x60))" (( "(") (pointer_expression "**(code **)(*plVar15 + 0x60)" (* "*") (pointer_expression "*(code **)(*plVar15 + 0x60)" (* "*") (cast_expression "(code **)(*plVar15 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar15 + 0x60)" (( "(") (binary_expression "*plVar15 + 0x60" (pointer_expression "*plVar15" (* "*") (identifier "plVar15")) (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "*param_8 = *param_8 + 1;" (assignment_expression "*param_8 = *param_8 + 1" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (binary_expression "*param_8 + 1" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "plVar14 = plVar14 + 1;" (assignment_expression "plVar14 = plVar14 + 1" (identifier "plVar14") (= "=") (binary_expression "plVar14 + 1" (identifier "plVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)param_4[1] != plVar14)" (( "(") (binary_expression "(long *)param_4[1] != plVar14" (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") (] "]"))) (!= "!=") (identifier "plVar14")) () ")")) (; ";")) (expression_statement "param_5 = (uVar17 - uVar18) + param_5;" (assignment_expression "param_5 = (uVar17 - uVar18) + param_5" (identifier "param_5") (= "=") (binary_expression "(uVar17 - uVar18) + param_5" (parenthesized_expression "(uVar17 - uVar18)" (( "(") (binary_expression "uVar17 - uVar18" (identifier "uVar17") (- "-") (identifier "uVar18")) () ")")) (+ "+") (identifier "param_5"))) (; ";")) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" (identifier "uVar18") (= "=") (identifier "uVar17")) (; ";")) (} "}"))) (expression_statement "*param_6 = uVar18;" (assignment_expression "*param_6 = uVar18" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "*param_7 = uVar19;" (assignment_expression "*param_7 = uVar19" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (identifier "uVar19")) (; ";")) (return_statement "return param_5;" (return "return") (identifier "param_5") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: uint64_t set_section_list_addresses(Output_segment * this, Layout *
   layout, bool reset, Output_data_list * pdl, uint64_t addr, off_t * poff, off_t * pfoff, uint *
   pshndx, bool * in_tls) */

uint64_t __thiscall
var_4::type_1::function_1
          (type_1 *this,type_2 *layout,bool reset,type_3 *pdl,uint64_t var_20,
          type_4 *poff,type_4 *pfoff,type_5 *pshndx,bool *in_tls)

{
  type_6 var_6;
  type_5 var_28;
  type_7 *this_00;
  type_4 var_21;
  type_8 *this_01;
  type_6 var_23;
  bool bVar4;
  int iVar5;
  uint64_t var_14;
  type_9 extraout_var;
  type_9 extraout_var_00;
  type_9 extraout_var_01;
  uint64_t var_11;
  type_10 var_16;
  type_9 extraout_var_02;
  type_9 extraout_var_03;
  type_9 extraout_var_04;
  type_9 extraout_var_05;
  type_9 extraout_var_06;
  type_11 var_3;
  type_12 uVar10;
  type_13 *pOVar11;
  char *pcVar12;
  type_10 var_10;
  char var_8;
  type_10 var_29;
  type_10 var_19;
  type_10 var_22;
  
  var_19 = *poff;
  var_22 = *pfoff;
  var_3 = (pdl->super__Vector_base<var_4::type_13*var_2,var_5::allocator<var_4::type_13*>var_1>var_2).
            _M_impl._M_start;
  if (var_3 !=
      (pdl->super__Vector_base<var_4::type_13*,var_5::allocator<var_4::type_13*>var_1>var_2)._M_impl.
      _M_finish) {
    var_16 = var_19;
    var_29 = var_19;
    do {
      iVar5 = (*(*var_3)->_vptr_Output_data[7])(*var_3,8);
      var_23 = (type_6)iVar5;
      iVar5 = (*(*var_3)->_vptr_Output_data[8])(*var_3,0x400);
      if (reset) {
        pOVar11 = *var_3;
        var_6 = pOVar11->field_0x20;
        pOVar11->field_0x20 = var_6 & 0xfa;
        if ((var_6 & 8) == 0) {
          pOVar11->field_0x20 = var_6 & 0xf8;
        }
        (*pOVar11->_vptr_Output_data[0xf])();
      }
      var_8 = (char)iVar5;
      if (((*var_3)->field_0x20 & 1) == 0) {
        iVar5 = (*(*var_3)->_vptr_Output_data[3])();
        var_10 = var_7(extraout_var_01,iVar5);
        var_14 = var_10;
        if (var_8 == '\0') {
          if (*in_tls == false) goto LAB_003cb7c6;
          var_11 = var_9(layout->tls_segment_);
          this_01 = parameters;
          if (var_10 < var_11) {
            var_14 = var_11;
          }
          *in_tls = false;
          bVar4 = type_8::var_12(this_01);
        }
        else {
          if (*in_tls == false) {
            if (layout->tls_segment_ == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
              var_13("../../gold/output.cc",0x11c4,"set_section_list_addresses");
            }
            var_14 = var_9(layout->tls_segment_);
            if (var_14 < var_10) {
                    /* WARNING: Subroutine does not return */
              var_13("../../gold/output.cc",0x11c6,"set_section_list_addresses");
            }
            *in_tls = true;
          }
LAB_003cb7c6:
          bVar4 = type_8::var_12(parameters);
        }
        if (bVar4) {
          pOVar11 = *var_3;
          if ((pOVar11->field_0x20 & 2) == 0) {
            (*pOVar11->_vptr_Output_data[0xd])();
            pOVar11 = *var_3;
          }
          var_21 = pOVar11->data_size_;
          var_16 = Free_list::var_15(&layout->free_list_,var_21,var_14,var_19);
          if (var_16 == 0xffffffffffffffff) {
            iVar5 = (*(*var_3)->_vptr_Output_data[9])();
            if (var_7(extraout_var_03,iVar5) == 0) {
                    /* WARNING: Subroutine does not return */
              var_13("../../gold/output.cc",0x11ee,"set_section_list_addresses");
            }
            iVar5 = (*(*var_3)->_vptr_Output_data[9])();
            pcVar12 = "out of patch space for section %s; relink with --incremental-full";
            uVar10 = *(type_12 *)(var_7(extraout_var_04,iVar5) + 0x28);
LAB_003cbcf1:
            pcVar12 = (char *)var_17(pcVar12);
                    /* WARNING: Subroutine does not return */
            var_18(pcVar12,uVar10);
          }
          pOVar11 = *var_3;
          var_6 = pOVar11->field_0x20;
          if ((var_6 & 1) != 0) goto LAB_003cbd96;
          pOVar11->address_ = (var_16 - var_19) + var_20;
          pOVar11->field_0x20 = var_6 | 1;
          if ((var_6 & 4) != 0) goto LAB_003cbd7e;
          pOVar11->offset_ = var_16;
          pOVar11->field_0x20 = var_6 | 5;
          if ((var_6 & 2) == 0) {
            (*pOVar11->_vptr_Output_data[0xe])(pOVar11);
            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbdae;
            pOVar11 = *var_3;
            if ((pOVar11->field_0x20 & 2) == 0) goto LAB_003cbd66;
          }
          var_22 = var_16;
          if (var_21 < pOVar11->data_size_) {
            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);
            if (var_7(extraout_var_05,iVar5) == 0) {
                    /* WARNING: Subroutine does not return */
              var_13("../../gold/output.cc",0x11f6,"set_section_list_addresses");
            }
            iVar5 = (*(*var_3)->_vptr_Output_data[9])();
            pcVar12 = "%s: section changed size; relink with --incremental-full";
            uVar10 = *(type_12 *)(var_7(extraout_var_06,iVar5) + 0x28);
            goto LAB_003cbcf1;
          }
        }
        else {
          if ((var_16 != var_22) && ((var_23 ^ 1) != 0)) {
                    /* WARNING: Subroutine does not return */
            var_13("../../gold/output.cc",0x11df,"set_section_list_addresses");
          }
          if (var_14 != 0) {
            var_16 = (var_16 - 1) + var_14 & -var_14;
          }
          if (((var_23 ^ 1) != 0) || (var_8 != '\0')) {
            var_22 = var_16;
          }
          pOVar11 = *var_3;
          var_6 = pOVar11->field_0x20;
          if ((var_6 & 1) != 0) {
LAB_003cbd96:
                    /* WARNING: Subroutine does not return */
            var_13("../../gold/output.h",0x142,"set_address");
          }
          pOVar11->address_ = (var_16 - var_19) + var_20;
          pOVar11->field_0x20 = var_6 | 1;
          if ((var_6 & 4) != 0) {
LAB_003cbd7e:
                    /* WARNING: Subroutine does not return */
            var_13("../../gold/output.h",0x14b,"set_file_offset");
          }
          pOVar11->offset_ = var_22;
          pOVar11->field_0x20 = var_6 | 5;
          if ((var_6 & 2) == 0) goto LAB_003cb852;
        }
      }
      else {
        bVar4 = type_8::var_12(parameters);
        if (bVar4) {
          if (((*var_3)->field_0x20 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
            var_13("../../gold/output.h",0xe3,"offset");
          }
          var_16 = (*var_3)->offset_;
          var_22 = var_16;
        }
        else {
          pOVar11 = *var_3;
          if ((pOVar11->field_0x20 & 1) == 0) {
LAB_003cbe3e:
                    /* WARNING: Subroutine does not return */
            var_13("../../gold/output.h",0xc5,"address");
          }
          var_10 = (var_16 - var_19) + var_20;
          if (pOVar11->address_ < var_10) {
            if ((layout->script_options_->script_sections_).saw_sections_clause_ == false) {
                    /* WARNING: Subroutine does not return */
              var_13("../../gold/output.cc",0x1215,"set_section_list_addresses");
            }
            iVar5 = (*pOVar11->_vptr_Output_data[9])(pOVar11);
            if (((*var_3)->field_0x20 & 1) == 0) goto LAB_003cbe3e;
            var_14 = (*var_3)->address_;
            if (var_7(extraout_var_02,iVar5) == 0) {
              pcVar12 = (char *)var_17("dot moves backward in linker script from 0x%llx to 0x%llx")
              ;
              var_24(pcVar12,var_10,var_14);
              pOVar11 = *var_3;
            }
            else {
              uVar10 = *(type_12 *)(var_7(extraout_var_02,iVar5) + 0x28);
              pcVar12 = (char *)var_17(
                                       "address of section \'%s\' moves backward from 0x%llx to 0x%llx"
                                       );
              var_24(pcVar12,uVar10,var_10,var_14);
              pOVar11 = *var_3;
            }
          }
          else if (((long)var_22 < (long)var_16) && ((var_23 ^ 1) != 0)) {
            pcVar12 = (char *)var_17(
                                     "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"
                                     );
            var_25(pcVar12);
            pOVar11 = *var_3;
            if ((pOVar11->field_0x20 & 1) == 0) goto LAB_003cbe3e;
            var_16 = (var_16 + pOVar11->address_) - var_10;
            var_22 = var_16;
          }
          else {
            var_16 = (pOVar11->address_ + var_16) - var_10;
            if (((var_23 ^ 1) != 0) || (var_8 != '\0')) {
              var_22 = var_16;
            }
          }
          var_6 = pOVar11->field_0x20;
          if ((var_6 & 4) != 0) goto LAB_003cbd7e;
          pOVar11->offset_ = var_22;
          pOVar11->field_0x20 = var_6 | 4;
          if ((var_6 & 2) != 0) goto LAB_003cb866;
LAB_003cb852:
          (*pOVar11->_vptr_Output_data[0xe])(pOVar11);
          if ((pOVar11->field_0x20 & 2) == 0) {
LAB_003cbdae:
                    /* WARNING: Subroutine does not return */
            var_13("../../gold/output.h",0x163,"finalize_data_size");
          }
        }
      }
LAB_003cb866:
      bVar4 = type_8::var_12(parameters);
      if (bVar4) {
        pOVar11 = *var_3;
        if ((parameters->options_ != (type_14 *)0x0) && ((parameters->debug_ & 0x10) != 0))
        {
          this_00 = parameters->errors_;
          iVar5 = (*pOVar11->_vptr_Output_data[9])();
          pcVar12 = "(special)";
          if (var_7(extraout_var,iVar5) != 0) {
            iVar5 = (*(*var_3)->_vptr_Output_data[9])();
            pcVar12 = *(char **)(var_7(extraout_var_00,iVar5) + 0x28);
          }
          if (((*var_3)->field_0x20 & 2) == 0) goto LAB_003cbd66;
          Errors::var_26(this_00,"set_section_list_addresses: %08lx %08lx %s",var_16,
                        (*var_3)->data_size_,pcVar12);
          goto LAB_003cb8d4;
        }
      }
      else {
LAB_003cb8d4:
        pOVar11 = *var_3;
      }
      if ((var_8 == '\0') || (var_23 == 0)) {
        if ((pOVar11->field_0x20 & 2) == 0) {
LAB_003cbd66:
                    /* WARNING: Subroutine does not return */
          var_13("../../gold/output.h",0xcf,"data_size");
        }
        var_16 = var_16 + pOVar11->data_size_;
        if (var_23 == 0) {
          var_22 = var_16;
        }
      }
      if ((long)var_29 < (long)var_16) {
        var_29 = var_16;
      }
      iVar5 = (*pOVar11->_vptr_Output_data[6])();
      if ((char)iVar5 != '\0') {
        pOVar11 = *var_3;
        if (pOVar11->_vptr_Output_data[0xc] == var_27::do_set_out_shndx) {
          var_28 = *(type_5 *)((long)&pOVar11[3]._vptr_Output_data + 4);
          if ((*pshndx != var_28) && (var_28 != 0xffffffff)) {
                    /* WARNING: Subroutine does not return */
            var_13("../../gold/output.h",0x104b,"do_set_out_shndx");
          }
          *(type_5 *)((long)&pOVar11[3]._vptr_Output_data + 4) = *pshndx;
        }
        else {
          (*pOVar11->_vptr_Output_data[0xc])();
        }
        *pshndx = *pshndx + 1;
      }
      var_3 = var_3 + 1;
    } while ((pdl->super__Vector_base<var_4::type_13*,var_5::allocator<var_4::type_13*>var_1>var_2).
             _M_impl._M_finish != var_3);
    var_20 = (var_29 - var_19) + var_20;
    var_19 = var_29;
  }
  *poff = var_19;
  *pfoff = var_22;
  return var_20;
}


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

long MASKED(undefined8 param_1,long param_2,char param_3,long *param_4,long param_5,
                 ulong *param_6,ulong *param_7,int *param_8,char *param_9)

{
  byte bVar1;
  undefined *puVar2;
  byte bVar3;
  char cVar4;
  char cVar5;
  ulong uVar6;
  long lVar7;
  ulong uVar8;
  ulong uVar9;
  ulong uVar10;
  undefined8 uVar11;
  undefined8 uVar12;
  undefined8 uVar13;
  long *plVar14;
  long *plVar15;
  char *pcVar16;
  ulong uVar17;
  ulong uVar18;
  ulong uVar19;
  
  uVar18 = *param_6;
  uVar19 = *param_7;
  plVar14 = (long *)*param_4;
  if (plVar14 != (long *)param_4[1]) {
    uVar10 = uVar18;
    uVar17 = uVar18;
    do {
      bVar3 = (**(code **)(*(long *)*plVar14 + 0x38))((long *)*plVar14,8);
      cVar4 = (**(code **)(*(long *)*plVar14 + 0x40))((long *)*plVar14,0x400);
      if (param_3 != '\0') {
        plVar15 = (long *)*plVar14;
        bVar1 = *(byte *)(plVar15 + 4);
        *(byte *)(plVar15 + 4) = bVar1 & 0xfa;
        if ((bVar1 & 8) == 0) {
          *(byte *)(plVar15 + 4) = bVar1 & 0xf8;
        }
        (**(code **)(*plVar15 + 0x78))();
      }
      if ((*(byte *)((long *)*plVar14 + 4) & 1) == 0) {
        uVar8 = (**(code **)(*(long *)*plVar14 + 0x18))();
        uVar6 = uVar8;
        if (cVar4 == '\0') {
          if (*param_9 == '\0') goto LAB_003cb7c6;
          uVar9 = FUN_003cb5b0(*(undefined8 *)(param_2 + 0x2b0));
          puVar2 = PTR_DAT_0067cb08;
          if (uVar8 < uVar9) {
            uVar6 = uVar9;
          }
          *param_9 = '\0';
          cVar5 = FUN_00406510(puVar2);
        }
        else {
          if (*param_9 == '\0') {
            if (*(long *)(param_2 + 0x2b0) == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/output.cc",0x11c4,"set_section_list_addresses");
            }
            uVar6 = FUN_003cb5b0();
            if (uVar6 < uVar8) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/output.cc",0x11c6,"set_section_list_addresses");
            }
            *param_9 = '\x01';
          }
LAB_003cb7c6:
          cVar5 = FUN_00406510(PTR_DAT_0067cb08);
        }
        if (cVar5 == '\0') {
          if ((uVar10 != uVar19) && ((bVar3 ^ 1) != 0)) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.cc",0x11df,"set_section_list_addresses");
          }
          if (uVar6 != 0) {
            uVar10 = (uVar10 - 1) + uVar6 & -uVar6;
          }
          if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {
            uVar19 = uVar10;
          }
          plVar15 = (long *)*plVar14;
          bVar1 = *(byte *)(plVar15 + 4);
          if ((bVar1 & 1) != 0) {
LAB_003cbd96:
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0x142,"set_address");
          }
          plVar15[1] = (uVar10 - uVar18) + param_5;
          *(byte *)(plVar15 + 4) = bVar1 | 1;
          if ((bVar1 & 4) != 0) {
LAB_003cbd7e:
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0x14b,"set_file_offset");
          }
          plVar15[3] = uVar19;
          *(byte *)(plVar15 + 4) = bVar1 | 5;
          if ((bVar1 & 2) == 0) goto LAB_003cb852;
        }
        else {
          plVar15 = (long *)*plVar14;
          if ((*(byte *)(plVar15 + 4) & 2) == 0) {
            (**(code **)(*plVar15 + 0x68))();
            plVar15 = (long *)*plVar14;
          }
          lVar7 = plVar15[2];
          uVar10 = FUN_0037aa30(param_2 + 0x468,lVar7,uVar6,uVar18);
          if (uVar10 == 0xffffffffffffffff) {
            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();
            if (lVar7 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/output.cc",0x11ee,"set_section_list_addresses");
            }
            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();
            pcVar16 = "out of patch space for section %s; relink with --incremental-full";
            uVar11 = *(undefined8 *)(lVar7 + 0x28);
LAB_003cbcf1:
            uVar13 = gettext(pcVar16);
                    /* WARNING: Subroutine does not return */
            FUN_0034a6b0(uVar13,uVar11);
          }
          plVar15 = (long *)*plVar14;
          bVar1 = *(byte *)(plVar15 + 4);
          if ((bVar1 & 1) != 0) goto LAB_003cbd96;
          plVar15[1] = (uVar10 - uVar18) + param_5;
          *(byte *)(plVar15 + 4) = bVar1 | 1;
          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;
          plVar15[3] = uVar10;
          *(byte *)(plVar15 + 4) = bVar1 | 5;
          if ((bVar1 & 2) == 0) {
            (**(code **)(*plVar15 + 0x70))(plVar15);
            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbdae;
            plVar15 = (long *)*plVar14;
            if ((*(byte *)(plVar15 + 4) & 2) == 0) goto LAB_003cbd66;
          }
          uVar19 = uVar10;
          if (lVar7 < plVar15[2]) {
            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);
            if (lVar7 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/output.cc",0x11f6,"set_section_list_addresses");
            }
            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();
            pcVar16 = "%s: section changed size; relink with --incremental-full";
            uVar11 = *(undefined8 *)(lVar7 + 0x28);
            goto LAB_003cbcf1;
          }
        }
      }
      else {
        cVar5 = FUN_00406510(PTR_DAT_0067cb08);
        if (cVar5 == '\0') {
          plVar15 = (long *)*plVar14;
          if ((*(byte *)(plVar15 + 4) & 1) == 0) {
LAB_003cbe3e:
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0xc5,"address");
          }
          uVar6 = (uVar10 - uVar18) + param_5;
          if ((ulong)plVar15[1] < uVar6) {
            if (*(char *)(*(long *)(param_2 + 8) + 0x148) == '\0') {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/output.cc",0x1215,"set_section_list_addresses");
            }
            lVar7 = (**(code **)(*plVar15 + 0x48))(plVar15);
            if ((*(byte *)(*plVar14 + 0x20) & 1) == 0) goto LAB_003cbe3e;
            uVar11 = *(undefined8 *)(*plVar14 + 8);
            if (lVar7 == 0) {
              uVar13 = gettext("dot moves backward in linker script from 0x%llx to 0x%llx");
              FUN_0034a750(uVar13,uVar6,uVar11);
              plVar15 = (long *)*plVar14;
            }
            else {
              uVar13 = *(undefined8 *)(lVar7 + 0x28);
              uVar12 = gettext("address of section \'%s\' moves backward from 0x%llx to 0x%llx");
              FUN_0034a750(uVar12,uVar13,uVar6,uVar11);
              plVar15 = (long *)*plVar14;
            }
          }
          else if (((long)uVar19 < (long)uVar10) && ((bVar3 ^ 1) != 0)) {
            uVar11 = gettext(
                            "script places BSS section in the middle of a LOAD segment; space will be allocated in the file"
                            );
            FUN_0034a800(uVar11);
            plVar15 = (long *)*plVar14;
            if ((*(byte *)(plVar15 + 4) & 1) == 0) goto LAB_003cbe3e;
            uVar10 = (uVar10 + plVar15[1]) - uVar6;
            uVar19 = uVar10;
          }
          else {
            uVar10 = (plVar15[1] + uVar10) - uVar6;
            if (((bVar3 ^ 1) != 0) || (cVar4 != '\0')) {
              uVar19 = uVar10;
            }
          }
          bVar1 = *(byte *)(plVar15 + 4);
          if ((bVar1 & 4) != 0) goto LAB_003cbd7e;
          plVar15[3] = uVar19;
          *(byte *)(plVar15 + 4) = bVar1 | 4;
          if ((bVar1 & 2) != 0) goto LAB_003cb866;
LAB_003cb852:
          (**(code **)(*plVar15 + 0x70))(plVar15);
          if ((*(byte *)(plVar15 + 4) & 2) == 0) {
LAB_003cbdae:
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0x163,"finalize_data_size");
          }
        }
        else {
          if ((*(byte *)(*plVar14 + 0x20) & 4) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0xe3,"offset");
          }
          uVar10 = *(ulong *)(*plVar14 + 0x18);
          uVar19 = uVar10;
        }
      }
LAB_003cb866:
      cVar5 = FUN_00406510(PTR_DAT_0067cb08);
      if (cVar5 == '\0') {
LAB_003cb8d4:
        plVar15 = (long *)*plVar14;
      }
      else {
        plVar15 = (long *)*plVar14;
        if ((*(long *)(PTR_DAT_0067cb08 + 0x10) != 0) && ((PTR_DAT_0067cb08[0x24] & 0x10) != 0)) {
          uVar11 = *(undefined8 *)PTR_DAT_0067cb08;
          lVar7 = (**(code **)(*plVar15 + 0x48))();
          pcVar16 = "(special)";
          if (lVar7 != 0) {
            lVar7 = (**(code **)(*(long *)*plVar14 + 0x48))();
            pcVar16 = *(char **)(lVar7 + 0x28);
          }
          if ((*(byte *)(*plVar14 + 0x20) & 2) == 0) goto LAB_003cbd66;
          FUN_0034a530(uVar11,"set_section_list_addresses: %08lx %08lx %s",uVar10,
                       *(undefined8 *)(*plVar14 + 0x10),pcVar16);
          goto LAB_003cb8d4;
        }
      }
      if ((cVar4 == '\0') || (bVar3 == 0)) {
        if ((*(byte *)(plVar15 + 4) & 2) == 0) {
LAB_003cbd66:
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/output.h",0xcf,"data_size");
        }
        uVar10 = uVar10 + plVar15[2];
        if (bVar3 == 0) {
          uVar19 = uVar10;
        }
      }
      if ((long)uVar17 < (long)uVar10) {
        uVar17 = uVar10;
      }
      cVar4 = (**(code **)(*plVar15 + 0x30))();
      if (cVar4 != '\0') {
        plVar15 = (long *)*plVar14;
        if (*(code **)(*plVar15 + 0x60) == FUN_00264ed0) {
          if ((*param_8 != *(int *)((long)plVar15 + 0x7c)) && (*(int *)((long)plVar15 + 0x7c) != -1)
             ) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/output.h",0x104b,"do_set_out_shndx");
          }
          *(int *)((long)plVar15 + 0x7c) = *param_8;
        }
        else {
          (**(code **)(*plVar15 + 0x60))();
        }
        *param_8 = *param_8 + 1;
      }
      plVar14 = plVar14 + 1;
    } while ((long *)param_4[1] != plVar14);
    param_5 = (uVar17 - uVar18) + param_5;
    uVar18 = uVar17;
  }
  *param_6 = uVar18;
  *param_7 = uVar19;
  return param_5;
}

