
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void set_section_addresses(Output_section_definition * this,
   Symbol_table * symtab, Layout * layout, uint64_t * dot_value, uint64_t * dot_alignment, uint64_t
   * load_address) */

void __thiscall
gold::Output_section_definition::set_section_addresses
          (Output_section_definition *this,Symbol_table *symtab,Layout *layout,uint64_t *dot_value,
          uint64_t *dot_alignment,uint64_t *load_address)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  byte bVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  _func_int_varargs *p_Var5;
  int iVar6;
  _List_node_base *p_Var7;
  Output_section *pOVar8;
  bool bVar9;
  _List_node_base *p_Var10;
  uint64_t uVar11;
  uint64_t uVar12;
  bool bVar13;
  Script_sections *this_00;
  Output_section *pOVar14;
  char *pcVar15;
  uint uVar16;
  Expression *pEVar17;
  uint uVar18;
  Symbol *pSVar19;
  int iVar20;
  int extraout_EDX;
  undefined4 extraout_EDX_00;
  pointer ppOVar21;
  uint uVar22;
  pointer pcVar23;
  uint64_t uVar24;
  uint64_t uVar25;
  uint64_t uVar26;
  Output_section *local_98;
  uint local_94;
  uint local_90;
  undefined8 local_8c;
  undefined8 local_84;
  Output_section *local_7c;
  uint local_78;
  Output_section *local_74;
  Output_section *dot_section;
  uint64_t address;
  Input_section_list input_sections;
  string fill;
  Output_section *align_section;
  
  this_00 = &layout->script_options_->script_sections_;
  uVar3 = *(undefined4 *)((int)dot_value + 4);
  uVar11 = *dot_value;
  uVar4 = *(undefined4 *)((int)load_address + 4);
  uVar12 = *load_address;
  pOVar14 = this->output_section_;
  if (pOVar14 == (Output_section *)0x0) {
LAB_0010a8a0:
    if (this->address_ == (Expression *)0x0) {
      local_98 = (Output_section *)
                 Script_sections::find_memory_region
                           (this_00,this,true,false,(Output_section_definition **)0x0);
      if (local_98 == (Output_section *)0x0) {
        address = *dot_value;
      }
      else {
        pEVar17 = script_exp_integer(local_98->addralign_);
        pEVar17 = script_exp_binary_add
                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);
        address = Expression::eval(pEVar17,symtab,layout,false);
      }
      goto LAB_0010a6de;
    }
    local_98 = (Output_section *)
               Script_sections::find_memory_region
                         (this_00,this,true,true,(Output_section_definition **)0x0);
    uVar24 = Expression::eval_with_dot
                       (this->address_,symtab,layout,true,*dot_value,(Output_section *)0x0,
                        (Output_section **)0x0,dot_alignment,false);
    address = uVar24;
    if (local_98 == (Output_section *)0x0) goto LAB_0010a6d4;
    uVar26 = Expression::eval(*(Expression **)&(local_98->super_Output_data).field_0x1c,symtab,
                              layout,false);
    uVar25 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);
    local_84._0_4_ = (uint)uVar26;
    local_7c = (Output_section *)uVar24;
    local_78 = (uint)(uVar24 >> 0x20);
    local_84._4_4_ = (uint)(uVar26 >> 0x20);
    if ((local_78 < local_84._4_4_ || local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84))
       || (uVar16 = (uint)(uVar25 + uVar26 >> 0x20),
          uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16)) {
      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;
      pcVar15 = "address 0x%llx is not within region %s";
LAB_0010b0ad:
      pcVar15 = (char *)gettext(pcVar15);
      gold_error(pcVar15,local_7c,local_78,pcVar23);
    }
    else {
      uVar16 = local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +
               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_);
      if (local_78 < uVar16 ||
          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)) {
        pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;
        pcVar15 = "address 0x%llx moves dot backwards in region %s";
        goto LAB_0010b0ad;
      }
    }
    *(uint *)&local_98->addralign_ = (int)local_7c - (uint)local_84;
    pEVar17 = this->align_;
    *(uint *)((int)&local_98->addralign_ + 4) =
         (local_78 - local_84._4_4_) - (uint)(local_7c < (uint)local_84);
    if (pEVar17 != (Expression *)0x0) goto LAB_0010a6e9;
LAB_0010a9a5:
    pOVar14 = this->output_section_;
    if (pOVar14 != (Output_section *)0x0) {
      p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[3];
      if (p_Var5 != Output_section::do_addralign) {
        iVar20 = (*p_Var5)(pOVar14);
        local_8c = CONCAT44(extraout_EDX_00,iVar20);
        goto LAB_0010a762;
      }
      local_8c = pOVar14->addralign_;
      local_7c = (Output_section *)this->subalign_;
      if (local_7c != (Output_section *)0x0) goto LAB_0010a770;
      goto LAB_0010a9e6;
    }
    local_7c = (Output_section *)this->subalign_;
    local_8c = 0;
    if (local_7c != (Output_section *)0x0) goto LAB_0010a770;
    local_94 = (uint)address;
    local_90 = address._4_4_;
    local_84 = 0;
    *(uint *)dot_value = (uint)address;
    *(uint *)((int)dot_value + 4) = address._4_4_;
    local_7c = (Output_section *)0x0;
  }
  else {
    if ((pOVar14->field_0x91 & 2) != 0) {
      Output_section::sort_attached_input_sections(pOVar14);
      pOVar14 = this->output_section_;
      if (pOVar14 == (Output_section *)0x0) goto LAB_0010a8a0;
    }
    if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
    }
    bVar13 = General_options::section_start(parameters->options_,pOVar14->name_,&address);
    if (!bVar13) goto LAB_0010a8a0;
LAB_0010a6d4:
    local_98 = (Output_section *)0x0;
LAB_0010a6de:
    pEVar17 = this->align_;
    if (pEVar17 == (Expression *)0x0) goto LAB_0010a9a5;
LAB_0010a6e9:
    local_8c = Expression::eval_with_dot
                         (pEVar17,symtab,layout,true,*dot_value,(Output_section *)0x0,&align_section
                          ,(uint64_t *)0x0,false);
    if (align_section != (Output_section *)0x0) {
      pcVar23 = (this->name_)._M_dataplus._M_p;
      pcVar15 = (char *)gettext("alignment of section %s is not absolute");
      gold_warning(pcVar15,pcVar23);
    }
    pOVar14 = this->output_section_;
    if (pOVar14 != (Output_section *)0x0) {
      local_8c._4_4_ = (uint)(local_8c >> 0x20);
      *(uint *)&pOVar14->addralign_ = (uint)local_8c;
      *(uint *)((int)&pOVar14->addralign_ + 4) = local_8c._4_4_;
    }
LAB_0010a762:
    local_7c = (Output_section *)this->subalign_;
    if (local_7c == (Output_section *)0x0) {
LAB_0010a9e6:
      local_7c = this->output_section_;
      local_90 = address._4_4_;
      local_94 = (uint)address;
      if (local_8c._4_4_ != 0 || (uint)local_8c != 0) {
        local_84 = 0;
        goto LAB_0010a837;
      }
      local_84 = local_8c;
    }
    else {
LAB_0010a770:
      uVar24 = Expression::eval_with_dot
                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0
                          ,&align_section,(uint64_t *)0x0,false);
      if (align_section != (Output_section *)0x0) {
        pcVar23 = (this->name_)._M_dataplus._M_p;
        pcVar15 = (char *)gettext("subalign of section %s is not absolute");
        gold_warning(pcVar15,pcVar23);
      }
      local_84._4_4_ = (uint)(uVar24 >> 0x20);
      local_84._0_4_ = (uint)uVar24;
      bVar13 = local_84._4_4_ == 0;
      bVar9 = (uint)local_84 == 0;
      local_84 = uVar24;
      if (bVar13 && bVar9) {
        local_84 = 1;
      }
      local_7c = this->output_section_;
      if ((local_8c._4_4_ < local_84._4_4_ ||
           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||
         (this->align_ == (Expression *)0x0)) {
        *(uint *)&local_7c->addralign_ = (uint)local_84;
        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;
        local_8c = local_84;
      }
      local_94 = (uint)address;
      local_90 = address._4_4_;
LAB_0010a837:
      bVar13 = local_94 != 0;
      uVar16 = local_94 - 1;
      local_94 = uVar16 + (uint)local_8c & -(uint)local_8c;
      local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +
                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0));
    }
    *(uint *)dot_value = local_94;
    address = CONCAT44(local_90,local_94);
    *(uint *)((int)dot_value + 4) = local_90;
    if ((local_7c != (Output_section *)0x0) &&
       (((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0)))) {
      bVar2 = (local_7c->super_Output_data).field_0x1c;
      if ((bVar2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0x142,"set_address");
      }
      *(uint *)&(local_7c->super_Output_data).address_ = local_94;
      *(uint *)((int)&(local_7c->super_Output_data).address_ + 4) = local_90;
      (local_7c->super_Output_data).field_0x1c = bVar2 | 1;
    }
  }
  *(uint *)&this->evaluated_address_ = local_94;
  *(uint *)((int)&this->evaluated_address_ + 4) = local_90;
  *(uint *)&this->evaluated_addralign_ = (uint)local_8c;
  pEVar17 = this->load_address_;
  *(uint *)((int)&this->evaluated_addralign_ + 4) = local_8c._4_4_;
  if (pEVar17 == (Expression *)0x0) {
    local_74 = (Output_section *)
               Script_sections::find_memory_region
                         (this_00,this,false,false,(Output_section_definition **)&align_section);
    pOVar14 = (Output_section *)0x0;
    uVar24 = address;
    if (local_74 != (Output_section *)0x0) {
      if (align_section == (Output_section *)0x0) {
        pEVar17 = script_exp_integer(local_74->addralign_);
        pEVar17 = script_exp_binary_add
                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);
        uVar24 = Expression::eval(pEVar17,symtab,layout,false);
      }
      else {
        local_74 = pOVar14;
        if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {
          pSVar19 = (Symbol *)((uint)address + align_section->type_);
          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +
                             (uint)CARRY4((uint)address,align_section->type_)) -
                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),
                            (int)pSVar19 - (int)align_section->info_symndx_);
        }
      }
      pOVar8 = this->output_section_;
      pOVar14 = local_74;
      if (pOVar8 != (Output_section *)0x0) {
        pOVar8->load_address_ = uVar24;
        pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80;
      }
    }
  }
  else {
    uVar24 = Expression::eval_with_dot
                       (pEVar17,symtab,layout,true,*dot_value,local_7c,(Output_section **)0x0,
                        (uint64_t *)0x0,false);
    pOVar14 = this->output_section_;
    if (pOVar14 != (Output_section *)0x0) {
      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x80;
      pOVar14->load_address_ = uVar24;
      local_74 = (Output_section *)0x0;
      pOVar14 = local_74;
    }
  }
  local_74 = pOVar14;
  paVar1 = &fill.field_2;
  this->evaluated_load_address_ = uVar24;
  fill._M_string_length = 0;
  fill.field_2._M_local_buf[0] = '\0';
  fill._M_dataplus._M_p = (pointer)paVar1;
  if (this->fill_ != (Expression *)0x0) {
                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */
    uVar24 = Expression::eval_with_dot
                       (this->fill_,symtab,layout,true,*dot_value,(Output_section *)0x0,
                        (Output_section **)&input_sections,(uint64_t *)0x0,false);
    uVar16 = (uint)uVar24;
    if (input_sections.
        super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
        ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)0x0) {
      pcVar23 = (this->name_)._M_dataplus._M_p;
      pcVar15 = (char *)gettext("fill of section %s is not absolute");
      gold_warning(pcVar15,pcVar23);
    }
    align_section =
         (Output_section *)
         (uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18);
    std::string::_M_replace((string *)&fill,0,fill._M_string_length,(char *)&align_section,4);
  }
  pOVar14 = this->output_section_;
  input_sections.
  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_node._M_size = 0;
  input_sections.
  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)&input_sections;
  input_sections.
  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)&input_sections;
  if (pOVar14 != (Output_section *)0x0) {
                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */
    uVar24 = Output_section::get_input_sections
                       (pOVar14,address,&fill,
                        (list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                         *)&input_sections);
    address = uVar24 + address;
    *dot_value = address;
    pOVar14 = this->output_section_;
  }
  ppOVar21 = (this->elements_).
             super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>
             ._M_impl._M_start;
  dot_section = pOVar14;
  if (ppOVar21 !=
      (this->elements_).
      super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>
      ._M_impl._M_finish) {
    while( true ) {
      (*(*ppOVar21)->_vptr_Output_section_element[6])
                (*ppOVar21,symtab,layout,pOVar14,(uint)local_84,local_84._4_4_,dot_value,
                 dot_alignment,&dot_section,&fill,(_List_node_base *)&input_sections);
      ppOVar21 = ppOVar21 + 1;
      if ((this->elements_).
          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>
          ._M_impl._M_finish == ppOVar21) break;
      pOVar14 = this->output_section_;
    }
  }
  if (input_sections.
      super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
      ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)&input_sections) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */
    do_gold_unreachable("../../gold/script-sections.cc",0xa67,"set_section_addresses");
  }
  if (local_98 != (Output_section *)0x0) {
    pEVar17 = script_exp_integer(local_98->addralign_);
    pEVar17 = script_exp_binary_add
                        (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);
    uVar24 = *dot_value;
    iVar20 = *(int *)((int)dot_value + 4);
    uVar26 = Expression::eval(pEVar17,symtab,layout,false);
    pcVar23 = (this->name_)._M_dataplus._M_p;
    align_section = (Output_section *)&stack0xffffffd4;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);
    uVar16 = (uint)uVar24 + (int)local_98->addralign_;
    uVar18 = uVar16 - (uint)uVar26;
    uVar16 = ((iVar20 + *(int *)((int)&local_98->addralign_ + 4) +
              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)) - (int)(uVar26 >> 0x20)) -
             (uint)(uVar16 < (uint)uVar26);
    *(uint *)&local_98->addralign_ = uVar18;
    *(uint *)((int)&local_98->addralign_ + 4) = uVar16;
                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */
    uVar24 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);
    pOVar14 = align_section;
    uVar22 = (uint)(uVar24 >> 0x20);
    if (uVar22 < uVar16 || uVar22 - uVar16 < (uint)((uint)uVar24 < uVar18)) {
      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;
      pcVar15 = (char *)gettext("section %s overflows end of region %s");
                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */
      gold_error(pcVar15,pOVar14,pcVar23);
    }
    if (align_section != (Output_section *)&stack0xffffffd4) {
      operator_delete(align_section);
    }
  }
  if ((local_74 != (Output_section *)0x0) && (local_98 != local_74)) {
    uVar24 = *dot_value;
    iVar20 = *(int *)((int)dot_value + 4);
    pcVar23 = (this->name_)._M_dataplus._M_p;
    uVar16 = (uint)uVar24 - local_94;
    align_section = (Output_section *)&stack0xffffffd4;
                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);
    uVar18 = uVar16 + (int)local_74->addralign_;
    uVar22 = ((iVar20 - local_90) - (uint)((uint)uVar24 < local_94)) +
             *(int *)((int)&local_74->addralign_ + 4) +
             (uint)CARRY4(uVar16,(uint)local_74->addralign_);
    *(uint *)&local_74->addralign_ = uVar18;
    *(uint *)((int)&local_74->addralign_ + 4) = uVar22;
                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */
    uVar24 = Expression::eval((Expression *)local_74->name_,symtab,layout,false);
    pOVar14 = align_section;
    uVar16 = (uint)(uVar24 >> 0x20);
    if (uVar16 < uVar22 || uVar16 - uVar22 < (uint)((uint)uVar24 < uVar18)) {
      pcVar23 = ((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)->_M_p;
      pcVar15 = (char *)gettext("section %s overflows end of region %s");
                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */
      gold_error(pcVar15,pOVar14,pcVar23);
    }
    if (align_section != (Output_section *)&stack0xffffffd4) {
      operator_delete(align_section);
    }
  }
  pOVar14 = this->output_section_;
  if (pOVar14 == (Output_section *)0x0) {
    uVar11 = *dot_value;
    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);
    *(int *)load_address = (int)uVar11;
    p_Var10 = input_sections.
              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              ._M_impl._M_node.super__List_node_base._M_next;
    goto joined_r0x0010ae99;
  }
  if (this->load_address_ == (Expression *)0x0) {
    if (local_74 != (Output_section *)0x0) {
                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */
      pEVar17 = script_exp_integer(local_74->addralign_);
      pEVar17 = script_exp_binary_add
                          (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);
      uVar24 = Expression::eval(pEVar17,symtab,layout,false);
      pOVar14 = this->output_section_;
      *load_address = uVar24;
      goto LAB_0010ae3d;
    }
    uVar24 = *dot_value;
    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);
    *(int *)load_address = (int)uVar24;
  }
  else {
    p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[5];
    if (p_Var5 == Output_section::do_load_address) {
      if (-1 < (char)pOVar14->field_0x90) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */
        do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");
      }
      uVar16 = (uint)pOVar14->load_address_;
      iVar20 = *(int *)((int)&pOVar14->load_address_ + 4);
    }
    else {
                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */
      uVar16 = (*p_Var5)(pOVar14);
      pOVar14 = this->output_section_;
      iVar20 = extraout_EDX;
    }
    uVar24 = *dot_value;
    iVar6 = *(int *)((int)dot_value + 4);
    uVar18 = (uint)uVar24 - local_94;
    *(uint *)load_address = uVar16 + uVar18;
    *(uint *)((int)load_address + 4) =
         iVar20 + ((iVar6 - local_90) - (uint)((uint)uVar24 < local_94)) +
         (uint)CARRY4(uVar16,uVar18);
LAB_0010ae3d:
    p_Var10 = input_sections.
              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              ._M_impl._M_node.super__List_node_base._M_next;
    if (pOVar14 == (Output_section *)0x0) goto joined_r0x0010ae99;
  }
  pOVar14->field_0x91 = pOVar14->field_0x91 & 0xdf | (byte)((this->is_relro_ & 1) << 5);
  p_Var10 = input_sections.
            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
            ._M_impl._M_node.super__List_node_base._M_next;
  if ((pOVar14->field_0x92 & 8) != 0) {
    *(int *)dot_value = (int)uVar11;
    *(undefined4 *)((int)dot_value + 4) = uVar3;
    *(int *)load_address = (int)uVar12;
    *(undefined4 *)((int)load_address + 4) = uVar4;
  }
joined_r0x0010ae99:
  while (p_Var10 != (_List_node_base *)&input_sections) {
    p_Var7 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                *)&p_Var10->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;
    operator_delete(p_Var10);
    p_Var10 = p_Var7;
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)fill._M_dataplus._M_p != paVar1) {
    operator_delete(fill._M_dataplus._M_p);
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */

void FUN_0010a630(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,
                 undefined4 param_5,longlong *param_6)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined4 uVar3;
  int *******pppppppiVar4;
  undefined *puVar5;
  int *******pppppppiVar6;
  longlong lVar7;
  undefined1 *puVar8;
  char cVar9;
  int iVar10;
  int iVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined *puVar16;
  uint uVar17;
  uint uVar18;
  undefined *puVar19;
  undefined *puVar20;
  undefined **unaff_EBX;
  uint uVar21;
  undefined4 *puVar22;
  int *piVar23;
  longlong lVar24;
  longlong lVar25;
  longlong lVar26;
  undefined8 uVar27;
  char *pcVar28;
  undefined4 *local_98;
  undefined **local_90;
  uint local_8c;
  uint local_88;
  uint local_84;
  uint local_80;
  int *******local_7c;
  undefined4 *local_74;
  undefined **local_70;
  int local_68;
  undefined8 local_64;
  int *******local_58;
  int *******local_54;
  undefined4 local_50;
  undefined1 *local_4c;
  undefined4 local_48;
  undefined1 local_44 [16];
  undefined1 *local_34 [2];
  undefined1 local_2c [28];
  
  iVar10 = *(int *)(param_3 + 4) + 0xac;
  puVar1 = param_4[1];
  puVar2 = *param_4;
  uVar3 = *(undefined4 *)((int)param_6 + 4);
  lVar7 = *param_6;
  iVar11 = *(int *)(param_1 + 0x44);
  if (iVar11 == 0) {
LAB_0010a8a0:
    local_70 = &__DT_PLTGOT;
    if (*(int *)(param_1 + 0x1c) == 0) {
      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);
      if (local_98 == (undefined4 *)0x0) {
        lVar24 = *(longlong *)param_4;
      }
      else {
        uVar15 = FUN_00154430(local_98[9],local_98[10]);
        uVar15 = FUN_001545c0(local_98[7],uVar15);
        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);
        unaff_EBX = local_70;
      }
      goto LAB_0010a6de;
    }
    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);
    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,
                          param_5,0);
    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);
    uVar14 = (uint)lVar24;
    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;
    local_64 = lVar24;
    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);
    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);
    uVar13 = (uint)lVar25;
    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);
    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||
       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),
       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {
      uVar15 = *local_98;
      pcVar28 = "address 0x%llx is not within region %s";
LAB_0010b0ad:
      uVar12 = gettext(pcVar28);
      FUN_0005ad00(uVar12,lVar24,uVar15);
      unaff_EBX = local_70;
    }
    else {
      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];
      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);
      uVar13 = uVar21 - uVar18;
      unaff_EBX = (undefined **)(uVar13 - uVar14);
      if (uVar21 < uVar18 || uVar13 < uVar14) {
        uVar15 = *local_98;
        pcVar28 = "address 0x%llx moves dot backwards in region %s";
        goto LAB_0010b0ad;
      }
    }
    iVar11 = *(int *)(param_1 + 0x24);
    *(longlong *)(local_98 + 9) = lVar24 - lVar25;
    if (iVar11 != 0) goto LAB_0010a6e9;
LAB_0010a9a5:
    piVar23 = *(int **)(param_1 + 0x44);
    if (piVar23 != (int *)0x0) {
      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {
        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);
        goto LAB_0010a762;
      }
      lVar24 = *(longlong *)(piVar23 + 9);
      local_7c = *(int ********)(param_1 + 0x28);
      lVar25 = *(longlong *)(piVar23 + 9);
      if (local_7c != (int *******)0x0) goto LAB_0010a770;
      goto LAB_0010a9e6;
    }
    local_7c = *(int ********)(param_1 + 0x28);
    lVar24 = 0;
    if (local_7c != (int *******)0x0) goto LAB_0010a770;
    lVar25 = 0;
    *(longlong *)param_4 = local_64;
    local_7c = (int *******)0x0;
    lVar26 = local_64;
  }
  else {
    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {
      unaff_EBX = &__DT_PLTGOT;
      FUN_000c2b80(iVar11);
      iVar11 = *(int *)(param_1 + 0x44);
      if (iVar11 == 0) goto LAB_0010a8a0;
    }
    local_70 = &__DT_PLTGOT;
    if (*(int *)(DAT_00302378 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");
    }
    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);
    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);
    unaff_EBX = local_70;
    if (cVar9 == '\0') goto LAB_0010a8a0;
LAB_0010a6d4:
    local_98 = (undefined4 *)0x0;
    unaff_EBX = &__DT_PLTGOT;
LAB_0010a6de:
    iVar11 = *(int *)(param_1 + 0x24);
    local_64 = lVar24;
    if (iVar11 == 0) goto LAB_0010a9a5;
LAB_0010a6e9:
    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);
    if (local_34[0] != (undefined1 *)0x0) {
      uVar15 = *(undefined4 *)(param_1 + 4);
      uVar12 = gettext("alignment of section %s is not absolute");
      FUN_0005ad30(uVar12,uVar15);
    }
    if (*(int *)(param_1 + 0x44) != 0) {
      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;
    }
LAB_0010a762:
    local_7c = *(int ********)(param_1 + 0x28);
    lVar25 = lVar24;
    if (local_7c == (int *******)0x0) {
LAB_0010a9e6:
      lVar24 = lVar25;
      local_7c = *(int ********)(param_1 + 0x44);
      if (lVar24 != 0) {
        lVar25 = 0;
        goto LAB_0010a837;
      }
      lVar25 = 0;
    }
    else {
LAB_0010a770:
      local_88 = (uint)((ulonglong)lVar24 >> 0x20);
      local_8c = (uint)lVar24;
      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);
      if (local_34[0] != (undefined1 *)0x0) {
        uVar15 = *(undefined4 *)(param_1 + 4);
        uVar12 = gettext("subalign of section %s is not absolute");
        FUN_0005ad30(uVar12,uVar15);
      }
      if (lVar25 == 0) {
        lVar25 = 1;
      }
      local_80 = (uint)((ulonglong)lVar25 >> 0x20);
      local_84 = (uint)lVar25;
      local_7c = *(int ********)(param_1 + 0x44);
      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||
         (*(int *)(param_1 + 0x24) == 0)) {
        *(longlong *)((int)local_7c + 0x24) = lVar25;
        lVar24 = lVar25;
      }
LAB_0010a837:
      local_88 = (uint)((ulonglong)lVar24 >> 0x20);
      local_8c = (uint)lVar24;
      lVar26 = lVar24 + local_64 + -1;
      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),
                          (uint)lVar26 & -local_8c);
    }
    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);
    *(longlong *)param_4 = local_64;
    unaff_EBX = param_4;
    lVar26 = local_64;
    if ((local_7c != (int *******)0x0) &&
       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))
       )) {
      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);
      }
      *(longlong *)((int)local_7c + 4) = local_64;
      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;
      unaff_EBX = local_90;
    }
  }
  local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);
  iVar11 = local_64._4_4_;
  local_64._0_4_ = (undefined *)lVar26;
  puVar5 = (undefined *)local_64;
  local_70 = &__DT_PLTGOT;
  *(longlong *)(param_1 + 0x48) = lVar26;
  *(longlong *)(param_1 + 0x58) = lVar24;
  local_64 = lVar26;
  if (*(int *)(param_1 + 0x20) == 0) {
    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);
    puVar22 = (undefined4 *)0x0;
    lVar24 = local_64;
    if (local_74 != (undefined4 *)0x0) {
      if (local_34[0] == (undefined1 *)0x0) {
        uVar15 = FUN_00154430(local_74[9],local_74[10]);
        uVar15 = FUN_001545c0(local_74[7],uVar15);
        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);
        unaff_EBX = local_70;
      }
      else {
        local_74 = puVar22;
        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {
          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);
          lVar24 = CONCAT44(local_64._4_4_ +
                            ((((uint)CARRY4((uint)(undefined *)local_64,
                                            *(uint *)(local_34[0] + 0x50)) +
                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -
                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),
                            uVar14 - *(uint *)(local_34[0] + 0x48));
        }
      }
      iVar10 = *(int *)(param_1 + 0x44);
      puVar22 = local_74;
      if (iVar10 != 0) {
        *(longlong *)(iVar10 + 0x34) = lVar24;
        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;
      }
    }
  }
  else {
    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,
                          0,0);
    puVar22 = *(undefined4 **)(param_1 + 0x44);
    unaff_EBX = local_70;
    if (puVar22 != (undefined4 *)0x0) {
      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;
      *(longlong *)(puVar22 + 0xd) = lVar24;
      local_74 = (undefined4 *)0x0;
      unaff_EBX = &__DT_PLTGOT;
      puVar22 = local_74;
    }
  }
  local_74 = puVar22;
  *(longlong *)(param_1 + 0x50) = lVar24;
  local_48 = 0;
  local_44[0] = 0;
  local_4c = local_44;
  if (*(int *)(param_1 + 0x30) != 0) {
                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */
    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58
                          ,0,0);
    if (local_58 != (int *******)0x0) {
      uVar15 = *(undefined4 *)(param_1 + 4);
      uVar12 = gettext("fill of section %s is not absolute");
      FUN_0005ad30(uVar12,uVar15);
    }
    local_34[0] = (undefined1 *)
                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |
                  uVar14 << 0x18);
    FUN_001893e0(&local_4c,0,local_48,local_34,4);
    unaff_EBX = local_70;
  }
  local_7c = (int *******)&local_58;
  iVar10 = *(int *)(param_1 + 0x44);
  local_50 = 0;
  local_54 = local_7c;
  local_58 = local_7c;
  if (iVar10 != 0) {
                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */
    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);
    local_64 = lVar24 + local_64;
    *(longlong *)param_4 = local_64;
    iVar10 = *(int *)(param_1 + 0x44);
    unaff_EBX = local_70;
  }
  puVar22 = *(undefined4 **)(param_1 + 0x38);
  local_68 = iVar10;
  if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {
    unaff_EBX = &local_4c;
    while( true ) {
      (**(code **)(*(int *)*puVar22 + 0x18))
                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,
                 local_7c);
      puVar22 = puVar22 + 1;
      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;
      iVar10 = *(int *)(param_1 + 0x44);
    }
  }
  if (local_58 != local_7c) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */
    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);
  }
  if (local_98 != (undefined4 *)0x0) {
    uVar15 = FUN_00154430(local_98[9],local_98[10]);
    uVar15 = FUN_001545c0(local_98[7],uVar15);
    puVar20 = *param_4;
    puVar19 = param_4[1];
    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);
    local_34[0] = local_2c;
    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);
    puVar16 = puVar20 + local_98[9];
    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;
    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -
                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));
    local_98[9] = uVar14;
    local_98[10] = puVar19;
                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */
    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);
    puVar8 = local_34[0];
    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);
    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {
      uVar15 = *local_98;
      uVar12 = gettext("section %s overflows end of region %s");
                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */
      FUN_0005ad00(uVar12,puVar8,uVar15);
    }
    if (local_34[0] != local_2c) {
      FUN_001807a0(local_34[0]);
    }
  }
  if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {
    puVar20 = *param_4;
    puVar19 = param_4[1];
    uVar14 = (int)puVar20 - (int)puVar5;
    local_34[0] = local_2c;
                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */
    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);
    uVar21 = uVar14 + local_74[9];
    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +
                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);
    local_74[9] = uVar21;
    local_74[10] = puVar19;
                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */
    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);
    puVar8 = local_34[0];
    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);
    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {
      uVar15 = *local_74;
      uVar12 = gettext("section %s overflows end of region %s");
                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */
      FUN_0005ad00(uVar12,puVar8,uVar15);
    }
    if (local_34[0] != local_2c) {
      FUN_001807a0(local_34[0]);
    }
  }
  piVar23 = *(int **)(param_1 + 0x44);
  if (piVar23 == (int *)0x0) {
    puVar1 = *param_4;
    *(undefined **)((int)param_6 + 4) = param_4[1];
    *(undefined **)param_6 = puVar1;
    pppppppiVar6 = local_58;
    goto joined_r0x0010ae99;
  }
  if (*(int *)(param_1 + 0x20) == 0) {
    if (local_74 != (undefined4 *)0x0) {
                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */
      uVar15 = FUN_00154430(local_74[9],local_74[10]);
      uVar15 = FUN_001545c0(local_74[7],uVar15);
      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);
      piVar23 = *(int **)(param_1 + 0x44);
      *param_6 = lVar24;
      goto LAB_0010ae3d;
    }
    puVar5 = *param_4;
    *(undefined **)((int)param_6 + 4) = param_4[1];
    *(undefined **)param_6 = puVar5;
  }
  else {
    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {
      if (-1 < (char)piVar23[0x24]) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */
        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);
      }
      lVar24 = *(longlong *)(piVar23 + 0xd);
    }
    else {
                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */
      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);
      piVar23 = *(int **)(param_1 + 0x44);
    }
    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),
                                 (int)*param_4 - (int)puVar5);
LAB_0010ae3d:
    pppppppiVar6 = local_58;
    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;
  }
  *(byte *)((int)piVar23 + 0x91) =
       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);
  pppppppiVar6 = local_58;
  if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {
    *param_4 = puVar2;
    param_4[1] = puVar1;
    *(int *)param_6 = (int)lVar7;
    *(undefined4 *)((int)param_6 + 4) = uVar3;
  }
joined_r0x0010ae99:
  while (pppppppiVar6 != local_7c) {
    pppppppiVar4 = (int *******)*pppppppiVar6;
    FUN_001807a0(pppppppiVar6);
    pppppppiVar6 = pppppppiVar4;
  }
  if (local_4c != local_44) {
    FUN_001807a0(local_4c);
  }
  return;
}


CALL 0x0004fb76
ADD EAX,0x1f79cb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x9c
MOV dword ptr [EBP + -0x6c],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + -0x78],EAX
ADD EAX,0xac
MOV dword ptr [EBP + 0xffffff68],EAX
MOV EAX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + 0xffffff60],EAX
MOV EAX,dword ptr [EBP + 0x1c]
MOV dword ptr [EBP + 0xffffff64],EDX
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + 0xffffff58],EAX
MOV EAX,dword ptr [EDI + 0x44]
MOV dword ptr [EBP + 0xffffff5c],EDX
TEST EAX,EAX
JZ 0x0010a8a0
TEST byte ptr [EAX + 0x91],0x2
JNZ 0x0010a880
MOV EBX,dword ptr [EBP + -0x6c]
LEA EDX,[EBX + 0x378]
MOV EDX,dword ptr [EDX]
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x0010b26f
SUB ESP,0x4
LEA ECX,[EBP + -0x60]
MOV EBX,dword ptr [EBP + -0x6c]
PUSH ECX
PUSH dword ptr [EAX + 0x20]
PUSH EDX
CALL 0x000ab3f0
ADD ESP,0x10
TEST AL,AL
JZ 0x0010a8a0
MOV dword ptr [EBP + 0xffffff6c],0x0
MOV EAX,dword ptr [EDI + 0x24]
TEST EAX,EAX
JZ 0x0010a9a5
SUB ESP,0x8
LEA EDX,[EBP + -0x30]
MOV EBX,dword ptr [EBP + -0x6c]
PUSH 0x0
PUSH 0x0
PUSH EDX
MOV EDX,dword ptr [EBP + 0x14]
PUSH 0x0
PUSH dword ptr [EDX + 0x4]
PUSH dword ptr [EDX]
PUSH 0x1
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
CALL 0x00154250
MOV EBX,dword ptr [EBP + -0x30]
ADD ESP,0x30
MOV dword ptr [EBP + 0xffffff78],EAX
MOV dword ptr [EBP + 0xffffff7c],EDX
TEST EBX,EBX
JZ 0x0010a749
MOV EBX,dword ptr [EBP + -0x6c]
SUB ESP,0xc
MOV ESI,dword ptr [EDI + 0x4]
LEA EAX,[EBX + 0xfff2c5cc]
PUSH EAX
CALL 0x000263b0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
MOV EBX,dword ptr [EBP + -0x6c]
CALL 0x0005ad30
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x44]
TEST EAX,EAX
JZ 0x0010a762
MOV ECX,dword ptr [EBP + 0xffffff78]
MOV EBX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EAX + 0x24],ECX
MOV dword ptr [EAX + 0x28],EBX
MOV EAX,dword ptr [EDI + 0x28]
MOV dword ptr [EBP + -0x78],EAX
TEST EAX,EAX
JZ 0x0010a9e6
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
MOV EBX,dword ptr [EBP + -0x6c]
PUSH 0x0
PUSH 0x0
PUSH EAX
MOV EAX,dword ptr [EBP + 0x14]
PUSH 0x0
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [EAX]
PUSH 0x1
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + -0x78]
CALL 0x00154250
MOV EBX,dword ptr [EBP + -0x30]
ADD ESP,0x30
MOV dword ptr [EBP + -0x80],EAX
MOV dword ptr [EBP + -0x7c],EDX
TEST EBX,EBX
JZ 0x0010a7cc
MOV EBX,dword ptr [EBP + -0x6c]
SUB ESP,0xc
MOV ESI,dword ptr [EDI + 0x4]
LEA EAX,[EBX + 0xfff2c5f4]
PUSH EAX
CALL 0x000263b0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
MOV EBX,dword ptr [EBP + -0x6c]
CALL 0x0005ad30
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x7c]
MOV ECX,dword ptr [EBP + -0x80]
MOV EDX,EBX
OR EDX,ECX
JNZ 0x0010a7e6
MOV dword ptr [EBP + -0x80],0x1
MOV dword ptr [EBP + -0x7c],0x0
MOV EAX,dword ptr [EDI + 0x44]
MOV ECX,dword ptr [EBP + -0x80]
MOV EDX,dword ptr [EBP + 0xffffff7c]
MOV EBX,dword ptr [EBP + -0x7c]
MOV dword ptr [EBP + -0x78],EAX
MOV EAX,dword ptr [EBP + 0xffffff78]
CMP EAX,ECX
MOV EAX,EDX
SBB EAX,EBX
JNC 0x0010aee0
MOV EAX,dword ptr [EBP + -0x80]
MOV EDX,dword ptr [EBP + -0x7c]
MOV EBX,dword ptr [EBP + -0x78]
MOV dword ptr [EBP + 0xffffff78],EAX
MOV dword ptr [EBX + 0x24],EAX
MOV dword ptr [EBX + 0x28],EDX
MOV dword ptr [EBP + 0xffffff7c],EDX
MOV EAX,dword ptr [EBP + -0x60]
MOV EDX,dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + 0xffffff70],EAX
MOV dword ptr [EBP + 0xffffff74],EDX
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV EDX,dword ptr [EBP + 0xffffff74]
MOV ECX,dword ptr [EBP + 0xffffff78]
MOV EBX,dword ptr [EBP + 0xffffff7c]
ADD EAX,-0x1
ADC EDX,-0x1
ADD EAX,ECX
ADC EDX,EBX
NEG ECX
MOV ESI,EAX
ADC EBX,0x0
MOV EAX,EDX
AND ESI,ECX
NEG EBX
MOV dword ptr [EBP + 0xffffff70],ESI
AND EAX,EBX
MOV dword ptr [EBP + 0xffffff74],EAX
JMP 0x0010aa1a
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH EAX
CALL 0x000c2b80
MOV EAX,dword ptr [EDI + 0x44]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0010a6a0
LEA ESI,[ESI]
MOV EAX,dword ptr [EDI + 0x1c]
TEST EAX,EAX
JZ 0x0010b010
SUB ESP,0xc
PUSH 0x0
PUSH 0x1
PUSH 0x1
PUSH EDI
PUSH dword ptr [EBP + 0xffffff68]
CALL 0x001073d0
ADD ESP,0x18
MOV EBX,dword ptr [EBP + -0x6c]
MOV dword ptr [EBP + 0xffffff6c],EAX
MOV ESI,EAX
MOV EAX,dword ptr [EBP + 0x14]
PUSH 0x0
PUSH dword ptr [EBP + 0x18]
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [EAX]
PUSH 0x1
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EDI + 0x1c]
CALL 0x00154250
ADD ESP,0x30
MOV dword ptr [EBP + -0x78],EAX
MOV dword ptr [EBP + -0x74],EDX
MOV dword ptr [EBP + -0x60],EAX
MOV dword ptr [EBP + -0x5c],EDX
TEST ESI,ESI
JZ 0x0010a6d4
PUSH 0x0
MOV EBX,dword ptr [EBP + -0x6c]
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [ESI + 0x1c]
CALL 0x00154210
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x6c]
PUSH 0x0
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [ESI + 0x20]
MOV dword ptr [EBP + -0x80],EAX
MOV dword ptr [EBP + -0x7c],EDX
CALL 0x00154210
MOV ESI,dword ptr [EBP + -0x80]
MOV ECX,dword ptr [EBP + -0x78]
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x74]
CMP ECX,ESI
MOV ESI,EBX
SBB ESI,dword ptr [EBP + -0x7c]
JC 0x0010b098
ADD EAX,dword ptr [EBP + -0x80]
ADC EDX,dword ptr [EBP + -0x7c]
CMP ECX,EAX
MOV ECX,EBX
SBB ECX,EDX
JNC 0x0010b098
MOV ECX,dword ptr [EBP + 0xffffff6c]
MOV EAX,dword ptr [EBP + -0x80]
MOV EDX,dword ptr [EBP + -0x7c]
MOV EBX,dword ptr [EBP + -0x74]
ADD EAX,dword ptr [ECX + 0x24]
ADC EDX,dword ptr [ECX + 0x28]
MOV ECX,dword ptr [EBP + -0x78]
CMP ECX,EAX
SBB EBX,EDX
JC 0x0010b237
MOV ECX,dword ptr [EBP + 0xffffff6c]
MOV EAX,dword ptr [EBP + -0x78]
SUB EAX,dword ptr [EBP + -0x80]
MOV EDX,dword ptr [EBP + -0x74]
MOV dword ptr [ECX + 0x24],EAX
MOV EAX,dword ptr [EDI + 0x24]
SBB EDX,dword ptr [EBP + -0x7c]
MOV dword ptr [ECX + 0x28],EDX
TEST EAX,EAX
JNZ 0x0010a6e9
MOV EAX,dword ptr [EDI + 0x44]
TEST EAX,EAX
JZ 0x0010b118
MOV EDX,dword ptr [EAX]
MOV ECX,dword ptr [EBP + -0x6c]
MOV EDX,dword ptr [EDX + 0xc]
LEA ECX,[ECX + 0xffd86ee0]
CMP EDX,ECX
JNZ 0x0010b1df
MOV EDX,dword ptr [EAX + 0x28]
MOV EAX,dword ptr [EAX + 0x24]
MOV dword ptr [EBP + 0xffffff78],EAX
MOV EAX,dword ptr [EDI + 0x28]
MOV dword ptr [EBP + 0xffffff7c],EDX
MOV dword ptr [EBP + -0x78],EAX
TEST EAX,EAX
JNZ 0x0010a770
MOV EAX,dword ptr [EDI + 0x44]
MOV EDX,dword ptr [EBP + -0x5c]
MOV EBX,dword ptr [EBP + 0xffffff7c]
MOV ECX,dword ptr [EBP + 0xffffff78]
MOV dword ptr [EBP + -0x78],EAX
MOV EAX,dword ptr [EBP + -0x60]
MOV dword ptr [EBP + 0xffffff74],EDX
MOV EDX,EBX
OR EDX,ECX
MOV dword ptr [EBP + 0xffffff70],EAX
JNZ 0x0010b285
MOV dword ptr [EBP + -0x80],ECX
MOV dword ptr [EBP + -0x7c],EBX
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV EBX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EBP + 0xffffff74]
MOV dword ptr [EBP + -0x60],EAX
MOV dword ptr [EBX],EAX
MOV EAX,dword ptr [EBP + -0x78]
MOV dword ptr [EBP + -0x5c],EDX
MOV dword ptr [EBX + 0x4],EDX
TEST EAX,EAX
JZ 0x0010aa58
TEST byte ptr [EAX + 0x54],0x2
JNZ 0x0010aef0
TEST byte ptr [EAX + 0x92],0x8
JNZ 0x0010aef0
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV EDX,dword ptr [EBP + 0xffffff74]
MOV dword ptr [EDI + 0x48],EAX
MOV EAX,dword ptr [EBP + 0xffffff78]
MOV dword ptr [EDI + 0x4c],EDX
MOV EDX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EDI + 0x58],EAX
MOV EAX,dword ptr [EDI + 0x20]
MOV dword ptr [EDI + 0x5c],EDX
MOV dword ptr [EBP + -0x70],EAX
TEST EAX,EAX
JZ 0x0010af30
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x6c]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + -0x78]
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [EAX]
PUSH 0x1
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + -0x70]
CALL 0x00154250
MOV ECX,dword ptr [EDI + 0x44]
ADD ESP,0x30
MOV dword ptr [EBP + -0x70],ECX
TEST ECX,ECX
JZ 0x0010aad2
OR byte ptr [ECX + 0x90],0x80
MOV dword ptr [ECX + 0x34],EAX
MOV dword ptr [ECX + 0x38],EDX
MOV dword ptr [EBP + -0x70],0x0
MOV dword ptr [EDI + 0x50],EAX
LEA EAX,[EBP + -0x40]
MOV dword ptr [EBP + 0xffffff68],EAX
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,dword ptr [EDI + 0x30]
MOV dword ptr [EDI + 0x54],EDX
MOV dword ptr [EBP + -0x44],0x0
MOV byte ptr [EBP + -0x40],0x0
TEST EAX,EAX
JZ 0x0010af20
MOV EBX,dword ptr [EBP + 0x14]
SUB ESP,0x8
LEA ECX,[EBP + -0x54]
PUSH 0x0
PUSH 0x0
PUSH ECX
PUSH 0x0
PUSH dword ptr [EBX + 0x4]
PUSH dword ptr [EBX]
MOV EBX,dword ptr [EBP + -0x6c]
PUSH 0x1
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
MOV dword ptr [EBP + -0x78],ECX
CALL 0x00154250
MOV EBX,dword ptr [EBP + -0x54]
MOV ESI,EAX
ADD ESP,0x30
TEST EBX,EBX
JZ 0x0010ab5f
MOV EBX,dword ptr [EBP + -0x6c]
SUB ESP,0xc
MOV EDX,dword ptr [EDI + 0x4]
LEA EAX,[EBX + 0xfff2c61c]
MOV dword ptr [EBP + 0xffffff78],EDX
PUSH EAX
CALL 0x000263b0
POP EDX
MOV EDX,dword ptr [EBP + 0xffffff78]
POP ECX
MOV EBX,dword ptr [EBP + -0x6c]
PUSH EDX
PUSH EAX
CALL 0x0005ad30
ADD ESP,0x10
SUB ESP,0xc
LEA EBX,[EBP + -0x48]
LEA EAX,[EBP + -0x30]
BSWAP ESI
PUSH 0x4
PUSH EAX
PUSH dword ptr [EBP + -0x44]
PUSH 0x0
PUSH EBX
MOV EBX,dword ptr [EBP + -0x6c]
MOV dword ptr [EBP + -0x30],ESI
CALL 0x001893e0
ADD ESP,0x20
MOV EAX,dword ptr [EBP + -0x78]
MOV EDX,dword ptr [EDI + 0x44]
MOV dword ptr [EBP + -0x4c],0x0
MOV dword ptr [EBP + -0x50],EAX
MOV dword ptr [EBP + -0x54],EAX
TEST EDX,EDX
JZ 0x0010abc9
SUB ESP,0xc
LEA EBX,[EBP + -0x48]
PUSH EAX
PUSH EBX
MOV EBX,dword ptr [EBP + -0x6c]
PUSH dword ptr [EBP + -0x5c]
PUSH dword ptr [EBP + -0x60]
PUSH EDX
CALL 0x000bfc90
MOV ECX,dword ptr [EBP + 0x14]
ADD ESP,0x20
ADD EAX,dword ptr [EBP + -0x60]
MOV dword ptr [EBP + -0x60],EAX
ADC EDX,dword ptr [EBP + -0x5c]
MOV dword ptr [ECX],EAX
MOV dword ptr [EBP + -0x5c],EDX
MOV dword ptr [ECX + 0x4],EDX
MOV EDX,dword ptr [EDI + 0x44]
MOV dword ptr [EBP + -0x64],EDX
MOV ESI,dword ptr [EDI + 0x38]
CMP ESI,dword ptr [EDI + 0x3c]
JZ 0x0010ac1e
LEA EAX,[EBP + -0x64]
LEA EBX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff78],EAX
JMP 0x0010abeb
MOV EDX,dword ptr [EDI + 0x44]
MOV EAX,dword ptr [ESI]
SUB ESP,0x4
MOV ECX,dword ptr [EAX]
PUSH dword ptr [EBP + -0x78]
PUSH EBX
PUSH dword ptr [EBP + 0xffffff78]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + -0x7c]
PUSH dword ptr [EBP + -0x80]
PUSH EDX
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
CALL dword ptr [ECX + 0x18]
ADD ESP,0x30
ADD ESI,0x4
CMP dword ptr [EDI + 0x3c],ESI
JNZ 0x0010abe8
MOV EAX,dword ptr [EBP + -0x78]
CMP dword ptr [EBP + -0x54],EAX
JNZ 0x0010b253
MOV ESI,dword ptr [EBP + 0xffffff6c]
TEST ESI,ESI
JZ 0x0010ad22
SUB ESP,0x8
PUSH dword ptr [ESI + 0x28]
MOV EBX,dword ptr [EBP + -0x6c]
PUSH dword ptr [ESI + 0x24]
CALL 0x00154430
POP EDX
POP ECX
MOV dword ptr [EBP + 0xffffff6c],ESI
PUSH EAX
PUSH dword ptr [ESI + 0x1c]
MOV ESI,dword ptr [EBP + -0x6c]
MOV EBX,ESI
CALL 0x001545c0
MOV EBX,dword ptr [EBP + 0x14]
ADD ESP,0x10
MOV dword ptr [EBP + -0x6c],ESI
MOV ECX,dword ptr [EBX]
MOV EBX,dword ptr [EBX + 0x4]
PUSH 0x0
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
MOV dword ptr [EBP + 0xffffff7c],EBX
MOV EBX,ESI
MOV dword ptr [EBP + 0xffffff78],ECX
CALL 0x00154210
ADD ESP,0x10
MOV EBX,EAX
LEA EAX,[EBP + -0x28]
MOV ESI,EDX
MOV dword ptr [EBP + -0x80],EAX
LEA EDX,[EBP + -0x30]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EDI + 0x4]
PUSH 0x0
MOV ECX,dword ptr [EDI + 0x8]
ADD ECX,EAX
PUSH ECX
PUSH EAX
PUSH EDX
CALL 0x0004d4e0
MOV ECX,dword ptr [EBP + 0xffffff6c]
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff78]
MOV EDX,dword ptr [EBP + 0xffffff7c]
ADD EAX,dword ptr [ECX + 0x24]
ADC EDX,dword ptr [ECX + 0x28]
SUB EAX,EBX
MOV EBX,dword ptr [EBP + -0x6c]
SBB EDX,ESI
MOV dword ptr [ECX + 0x24],EAX
MOV dword ptr [ECX + 0x28],EDX
PUSH 0x0
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [ECX + 0x20]
MOV dword ptr [EBP + 0xffffff78],EAX
MOV dword ptr [EBP + 0xffffff7c],EDX
CALL 0x00154210
MOV EBX,dword ptr [EBP + 0xffffff78]
MOV ESI,dword ptr [EBP + 0xffffff7c]
ADD ESP,0x10
MOV ECX,dword ptr [EBP + -0x30]
CMP EAX,EBX
SBB EDX,ESI
JC 0x0010b0d0
CMP ECX,dword ptr [EBP + -0x80]
JZ 0x0010ad22
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH ECX
CALL 0x001807a0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x70]
TEST EAX,EAX
JZ 0x0010add8
CMP dword ptr [EBP + 0xffffff6c],EAX
JZ 0x0010add8
MOV EDX,dword ptr [EBP + 0x14]
LEA ECX,[EBP + -0x28]
MOV dword ptr [EBP + -0x80],ECX
MOV EAX,dword ptr [EDX]
MOV EDX,dword ptr [EDX + 0x4]
MOV dword ptr [EBP + -0x30],ECX
MOV EBX,EAX
MOV EAX,dword ptr [EDI + 0x4]
PUSH 0x0
MOV ESI,EDX
MOV ECX,dword ptr [EDI + 0x8]
SUB EBX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + -0x7c],EDX
LEA EDX,[EBP + -0x30]
SBB ESI,dword ptr [EBP + 0xffffff74]
ADD ECX,EAX
PUSH ECX
PUSH EAX
PUSH EDX
CALL 0x0004d4e0
MOV EAX,dword ptr [EBP + -0x70]
ADD ESP,0x10
ADD EBX,dword ptr [EAX + 0x24]
ADC ESI,dword ptr [EAX + 0x28]
MOV dword ptr [EAX + 0x24],EBX
MOV dword ptr [EAX + 0x28],ESI
PUSH 0x0
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EAX + 0x20]
MOV dword ptr [EBP + 0xffffff78],EBX
MOV EBX,dword ptr [EBP + -0x6c]
MOV dword ptr [EBP + 0xffffff7c],ESI
CALL 0x00154210
MOV EBX,dword ptr [EBP + 0xffffff78]
MOV ESI,dword ptr [EBP + 0xffffff7c]
ADD ESP,0x10
MOV ECX,dword ptr [EBP + -0x30]
CMP EAX,EBX
SBB EDX,ESI
JC 0x0010b170
CMP ECX,dword ptr [EBP + -0x80]
JZ 0x0010add8
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH ECX
CALL 0x001807a0
ADD ESP,0x10
LEA ESI,[ESI]
NOP
MOV ESI,dword ptr [EDI + 0x44]
TEST ESI,ESI
JZ 0x0010afa0
MOV EAX,dword ptr [EDI + 0x20]
TEST EAX,EAX
JZ 0x0010afb8
MOV EAX,dword ptr [ESI]
MOV EBX,dword ptr [EBP + -0x6c]
MOV EAX,dword ptr [EAX + 0x14]
LEA EDX,[EBX + 0xffd87130]
CMP EAX,EDX
JNZ 0x0010b1b0
CMP byte ptr [ESI + 0x90],0x0
JNS 0x0010b298
MOV EAX,dword ptr [ESI + 0x34]
MOV EDX,dword ptr [ESI + 0x38]
MOV EBX,dword ptr [EBP + 0x14]
MOV ECX,dword ptr [EBX]
MOV EBX,dword ptr [EBX + 0x4]
MOV dword ptr [EBP + -0x80],ECX
SUB ECX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + -0x7c],EBX
SBB EBX,dword ptr [EBP + 0xffffff74]
ADD EAX,ECX
ADC EDX,EBX
MOV EBX,dword ptr [EBP + 0x1c]
MOV dword ptr [EBX],EAX
MOV dword ptr [EBX + 0x4],EDX
TEST ESI,ESI
JZ 0x0010ae90
MOVZX EAX,byte ptr [EDI + 0x60]
AND EAX,0x1
SHL EAX,0x5
MOV EDX,EAX
MOVZX EAX,byte ptr [ESI + 0x91]
AND EAX,0xffffffdf
OR EAX,EDX
MOV byte ptr [ESI + 0x91],AL
TEST byte ptr [ESI + 0x92],0x8
JZ 0x0010ae90
MOV EDI,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EBP + 0xffffff60]
MOV EDX,dword ptr [EBP + 0xffffff64]
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [EBP + 0xffffff58]
MOV dword ptr [EDI + 0x4],EDX
MOV EDI,dword ptr [EBP + 0x1c]
MOV EDX,dword ptr [EBP + 0xffffff5c]
MOV dword ptr [EDI],EAX
MOV dword ptr [EDI + 0x4],EDX
MOV EAX,dword ptr [EBP + -0x54]
MOV EDI,dword ptr [EBP + -0x78]
CMP EAX,dword ptr [EBP + -0x78]
JZ 0x0010aeb7
LEA ESI,[ESI]
NOP
SUB ESP,0xc
MOV ESI,dword ptr [EAX]
MOV EBX,dword ptr [EBP + -0x6c]
PUSH EAX
CALL 0x001807a0
MOV EAX,ESI
ADD ESP,0x10
CMP ESI,EDI
JNZ 0x0010aea0
MOV EAX,dword ptr [EBP + -0x48]
CMP EAX,dword ptr [EBP + 0xffffff68]
JZ 0x0010aed1
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH EAX
CALL 0x001807a0
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [EDI + 0x24]
TEST ESI,ESI
JNZ 0x0010a825
JMP 0x0010a80a
MOV EAX,dword ptr [EBP + -0x78]
MOVZX EAX,byte ptr [EAX + 0x1c]
TEST AL,0x1
JNZ 0x0010b2b1
MOV EDX,dword ptr [EBP + -0x78]
MOV ECX,dword ptr [EBP + 0xffffff70]
OR EAX,0x1
MOV EBX,dword ptr [EBP + 0xffffff74]
MOV dword ptr [EDX + 0x4],ECX
MOV dword ptr [EDX + 0x8],EBX
MOV byte ptr [EDX + 0x1c],AL
JMP 0x0010aa58
LEA EAX,[EBP + -0x54]
MOV dword ptr [EBP + -0x78],EAX
JMP 0x0010ab81
SUB ESP,0xc
LEA EAX,[EBP + -0x30]
PUSH EAX
PUSH 0x0
PUSH 0x0
PUSH EDI
PUSH dword ptr [EBP + 0xffffff68]
CALL 0x001073d0
ADD ESP,0x20
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0010b1d4
MOV ECX,dword ptr [EBP + -0x30]
TEST ECX,ECX
JZ 0x0010b1f9
MOV ESI,dword ptr [EDI + 0x1c]
MOV EAX,dword ptr [EBP + -0x60]
MOV EDX,dword ptr [EBP + -0x5c]
TEST ESI,ESI
JNZ 0x0010af80
CMP ECX,EDI
JZ 0x0010af80
ADD EAX,dword ptr [ECX + 0x50]
ADC EDX,dword ptr [ECX + 0x54]
SUB EAX,dword ptr [ECX + 0x48]
SBB EDX,dword ptr [ECX + 0x4c]
LEA ESI,[ESI]
MOV ECX,dword ptr [EDI + 0x44]
TEST ECX,ECX
JZ 0x0010aad2
MOV dword ptr [ECX + 0x34],EAX
MOV dword ptr [ECX + 0x38],EDX
OR byte ptr [ECX + 0x90],0x80
JMP 0x0010aad2
MOV EAX,dword ptr [EBP + 0x14]
MOV EDI,dword ptr [EBP + 0x1c]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EDI + 0x4],EDX
MOV dword ptr [EDI],EAX
JMP 0x0010ae90
MOV EBX,dword ptr [EBP + -0x70]
TEST EBX,EBX
JZ 0x0010b080
MOV EAX,dword ptr [EBP + -0x70]
SUB ESP,0x8
MOV ESI,dword ptr [EBP + -0x6c]
PUSH dword ptr [EAX + 0x28]
MOV EBX,ESI
PUSH dword ptr [EAX + 0x24]
CALL 0x00154430
POP EDX
POP ECX
PUSH EAX
MOV EAX,dword ptr [EBP + -0x70]
PUSH dword ptr [EAX + 0x1c]
CALL 0x001545c0
ADD ESP,0x10
PUSH 0x0
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
CALL 0x00154210
MOV ECX,dword ptr [EBP + 0x1c]
ADD ESP,0x10
MOV ESI,dword ptr [EDI + 0x44]
MOV dword ptr [ECX],EAX
MOV dword ptr [ECX + 0x4],EDX
JMP 0x0010ae3d
SUB ESP,0xc
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EDI
PUSH dword ptr [EBP + 0xffffff68]
CALL 0x001073d0
ADD ESP,0x20
MOV ESI,EAX
MOV dword ptr [EBP + 0xffffff6c],EAX
TEST EAX,EAX
JZ 0x0010b1c1
SUB ESP,0x8
PUSH dword ptr [EAX + 0x28]
MOV EBX,dword ptr [EBP + -0x6c]
PUSH dword ptr [EAX + 0x24]
CALL 0x00154430
POP EDX
POP ECX
PUSH EAX
PUSH dword ptr [ESI + 0x1c]
MOV ESI,dword ptr [EBP + -0x6c]
MOV EBX,ESI
CALL 0x001545c0
ADD ESP,0x10
PUSH 0x0
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
CALL 0x00154210
ADD ESP,0x10
MOV dword ptr [EBP + -0x60],EAX
MOV dword ptr [EBP + -0x5c],EDX
JMP 0x0010a6de
MOV EAX,dword ptr [EBP + 0x14]
MOV EBX,dword ptr [EBP + 0x1c]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBX + 0x4],EDX
MOV dword ptr [EBX],EAX
JMP 0x0010ae41
MOV EAX,dword ptr [EBP + 0xffffff6c]
MOV EBX,dword ptr [EBP + -0x6c]
SUB ESP,0xc
MOV ESI,dword ptr [EAX]
LEA EAX,[EBX + 0xfff2c574]
PUSH EAX
CALL 0x000263b0
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x6c]
PUSH ESI
PUSH dword ptr [EBP + -0x74]
PUSH dword ptr [EBP + -0x78]
PUSH EAX
CALL 0x0005ad00
ADD ESP,0x10
JMP 0x0010a982
MOV EAX,dword ptr [EBP + 0xffffff6c]
MOV EDX,dword ptr [EBP + -0x6c]
SUB ESP,0xc
MOV dword ptr [EBP + 0xffffff78],ECX
MOV ESI,dword ptr [EAX]
LEA EAX,[EDX + 0xfff2c640]
MOV EBX,EDX
PUSH EAX
CALL 0x000263b0
MOV ECX,dword ptr [EBP + 0xffffff78]
ADD ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH ESI
PUSH ECX
PUSH EAX
CALL 0x0005ad00
ADD ESP,0x10
MOV ECX,dword ptr [EBP + -0x30]
JMP 0x0010ad0e
MOV dword ptr [EBP + 0xffffff78],0x0
MOV EAX,dword ptr [EDI + 0x28]
MOV dword ptr [EBP + 0xffffff7c],0x0
MOV dword ptr [EBP + -0x78],EAX
TEST EAX,EAX
JNZ 0x0010a770
MOV EAX,dword ptr [EBP + -0x60]
MOV EDX,dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x80],0x0
MOV ECX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x7c],0x0
MOV dword ptr [EBP + 0xffffff70],EAX
MOV dword ptr [EBP + 0xffffff74],EDX
MOV dword ptr [ECX],EAX
MOV dword ptr [ECX + 0x4],EDX
JMP 0x0010aa58
MOV EAX,dword ptr [EBP + -0x70]
MOV EBX,dword ptr [EBP + -0x6c]
SUB ESP,0xc
MOV dword ptr [EBP + 0xffffff78],ECX
MOV ESI,dword ptr [EAX]
LEA EAX,[EBX + 0xfff2c640]
PUSH EAX
CALL 0x000263b0
MOV ECX,dword ptr [EBP + 0xffffff78]
ADD ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH ESI
PUSH ECX
PUSH EAX
CALL 0x0005ad00
ADD ESP,0x10
MOV ECX,dword ptr [EBP + -0x30]
JMP 0x0010adbf
SUB ESP,0xc
PUSH ESI
CALL EAX
ADD ESP,0x10
MOV ESI,dword ptr [EDI + 0x44]
JMP 0x0010ae17
MOV EAX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x5c],EDX
MOV dword ptr [EBP + -0x60],EAX
JMP 0x0010a6de
MOV EAX,dword ptr [EBP + -0x60]
MOV EDX,dword ptr [EBP + -0x5c]
JMP 0x0010aad2
SUB ESP,0xc
PUSH EAX
CALL EDX
MOV dword ptr [EBP + 0xffffff78],EAX
MOV dword ptr [EBP + 0xffffff7c],EDX
ADD ESP,0x10
JMP 0x0010a762
SUB ESP,0x8
PUSH dword ptr [EAX + 0x28]
MOV EBX,dword ptr [EBP + -0x6c]
PUSH dword ptr [EAX + 0x24]
CALL 0x00154430
POP EDX
POP ECX
PUSH EAX
MOV EBX,dword ptr [EBP + -0x6c]
PUSH dword ptr [ESI + 0x1c]
CALL 0x001545c0
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x6c]
PUSH 0x0
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
CALL 0x00154210
ADD ESP,0x10
MOV dword ptr [EBP + -0x70],ESI
JMP 0x0010af80
MOV EAX,dword ptr [EBP + 0xffffff6c]
MOV EDX,dword ptr [EBP + -0x6c]
SUB ESP,0xc
MOV ESI,dword ptr [EAX]
LEA EAX,[EDX + 0xfff2c59c]
MOV EBX,EDX
PUSH EAX
JMP 0x0010b0ad
PUSH EBX
MOV EBX,dword ptr [EBP + -0x6c]
LEA EAX,[EBX + 0xfff2c9a8]
PUSH EAX
LEA EAX,[EBX + 0xfff2c01b]
PUSH 0xa67
PUSH EAX
CALL 0x0005f0b0
LEA EAX,[EBX + 0xfff2c9a0]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfff1e970]
PUSH 0x5c
PUSH EAX
CALL 0x0005f0b0
MOV dword ptr [EBP + -0x80],0x0
MOV dword ptr [EBP + -0x7c],0x0
JMP 0x0010a837
PUSH EAX
LEA EAX,[EBX + 0xfff2c984]
PUSH EAX
LEA EAX,[EBX + 0xfff1f60c]
PUSH 0x107b
PUSH EAX
CALL 0x0005f0b0
PUSH EBX
MOV EBX,dword ptr [EBP + -0x6c]
LEA EAX,[EBX + 0xfff2c994]
PUSH EAX
LEA EAX,[EBX + 0xfff1f60c]
PUSH 0x142
PUSH EAX
CALL 0x0005f0b0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Type propagation algorithm not settling */\n\nvoid FUN_0010a630(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,\n                 undefined4 param_5,longlong *param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int *******pppppppiVar4;\n  undefined *puVar5;\n  int *******pppppppiVar6;\n  longlong lVar7;\n  undefined1 *puVar8;\n  char cVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined **unaff_EBX;\n  uint uVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  longlong lVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  char *pcVar28;\n  undefined4 *local_98;\n  undefined **local_90;\n  uint local_8c;\n  uint local_88;\n  uint local_84;\n  uint local_80;\n  int *******local_7c;\n  undefined4 *local_74;\n  undefined **local_70;\n  int local_68;\n  undefined8 local_64;\n  int *******local_58;\n  int *******local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  iVar10 = *(int *)(param_3 + 4) + 0xac;\n  puVar1 = param_4[1];\n  puVar2 = *param_4;\n  uVar3 = *(undefined4 *)((int)param_6 + 4);\n  lVar7 = *param_6;\n  iVar11 = *(int *)(param_1 + 0x44);\n  if (iVar11 == 0) {\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }\n  else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }\n  local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);\n  iVar11 = local_64._4_4_;\n  local_64._0_4_ = (undefined *)lVar26;\n  puVar5 = (undefined *)local_64;\n  local_70 = &__DT_PLTGOT;\n  *(longlong *)(param_1 + 0x48) = lVar26;\n  *(longlong *)(param_1 + 0x58) = lVar24;\n  local_64 = lVar26;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }\n  else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }\n  local_74 = puVar22;\n  *(longlong *)(param_1 + 0x50) = lVar24;\n  local_48 = 0;\n  local_44[0] = 0;\n  local_4c = local_44;\n  if (*(int *)(param_1 + 0x30) != 0) {\n                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */\n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }\n  local_7c = (int *******)&local_58;\n  iVar10 = *(int *)(param_1 + 0x44);\n  local_50 = 0;\n  local_54 = local_7c;\n  local_58 = local_7c;\n  if (iVar10 != 0) {\n                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */\n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }\n  puVar22 = *(undefined4 **)(param_1 + 0x38);\n  local_68 = iVar10;\n  if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }\n  if (local_58 != local_7c) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */\n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }\n  if (local_98 != (undefined4 *)0x0) {\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */\n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */\n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  piVar23 = *(int **)(param_1 + 0x44);\n  if (piVar23 == (int *)0x0) {\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }\n  if (*(int *)(param_1 + 0x20) == 0) {\n    if (local_74 != (undefined4 *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }\n  else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }\n  *(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);\n  pppppppiVar6 = local_58;\n  if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }\njoined_r0x0010ae99:\n  while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }\n  if (local_4c != local_44) {\n    FUN_001807a0(local_4c);\n  }\n  return;\n}\n\n" comment comment (function_definition "void FUN_0010a630(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,\n                 undefined4 param_5,longlong *param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int *******pppppppiVar4;\n  undefined *puVar5;\n  int *******pppppppiVar6;\n  longlong lVar7;\n  undefined1 *puVar8;\n  char cVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined **unaff_EBX;\n  uint uVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  longlong lVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  char *pcVar28;\n  undefined4 *local_98;\n  undefined **local_90;\n  uint local_8c;\n  uint local_88;\n  uint local_84;\n  uint local_80;\n  int *******local_7c;\n  undefined4 *local_74;\n  undefined **local_70;\n  int local_68;\n  undefined8 local_64;\n  int *******local_58;\n  int *******local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  iVar10 = *(int *)(param_3 + 4) + 0xac;\n  puVar1 = param_4[1];\n  puVar2 = *param_4;\n  uVar3 = *(undefined4 *)((int)param_6 + 4);\n  lVar7 = *param_6;\n  iVar11 = *(int *)(param_1 + 0x44);\n  if (iVar11 == 0) {\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }\n  else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }\n  local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);\n  iVar11 = local_64._4_4_;\n  local_64._0_4_ = (undefined *)lVar26;\n  puVar5 = (undefined *)local_64;\n  local_70 = &__DT_PLTGOT;\n  *(longlong *)(param_1 + 0x48) = lVar26;\n  *(longlong *)(param_1 + 0x58) = lVar24;\n  local_64 = lVar26;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }\n  else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }\n  local_74 = puVar22;\n  *(longlong *)(param_1 + 0x50) = lVar24;\n  local_48 = 0;\n  local_44[0] = 0;\n  local_4c = local_44;\n  if (*(int *)(param_1 + 0x30) != 0) {\n                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */\n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }\n  local_7c = (int *******)&local_58;\n  iVar10 = *(int *)(param_1 + 0x44);\n  local_50 = 0;\n  local_54 = local_7c;\n  local_58 = local_7c;\n  if (iVar10 != 0) {\n                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */\n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }\n  puVar22 = *(undefined4 **)(param_1 + 0x38);\n  local_68 = iVar10;\n  if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }\n  if (local_58 != local_7c) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */\n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }\n  if (local_98 != (undefined4 *)0x0) {\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */\n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */\n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  piVar23 = *(int **)(param_1 + 0x44);\n  if (piVar23 == (int *)0x0) {\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }\n  if (*(int *)(param_1 + 0x20) == 0) {\n    if (local_74 != (undefined4 *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }\n  else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }\n  *(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);\n  pppppppiVar6 = local_58;\n  if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }\njoined_r0x0010ae99:\n  while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }\n  if (local_4c != local_44) {\n    FUN_001807a0(local_4c);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0010a630(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,\n                 undefined4 param_5,longlong *param_6)" identifier (parameter_list "(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,\n                 undefined4 param_5,longlong *param_6)" ( (parameter_declaration "undefined1 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined **param_4" type_identifier (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier))) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "longlong *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int *******pppppppiVar4;\n  undefined *puVar5;\n  int *******pppppppiVar6;\n  longlong lVar7;\n  undefined1 *puVar8;\n  char cVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined **unaff_EBX;\n  uint uVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  longlong lVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  char *pcVar28;\n  undefined4 *local_98;\n  undefined **local_90;\n  uint local_8c;\n  uint local_88;\n  uint local_84;\n  uint local_80;\n  int *******local_7c;\n  undefined4 *local_74;\n  undefined **local_70;\n  int local_68;\n  undefined8 local_64;\n  int *******local_58;\n  int *******local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  iVar10 = *(int *)(param_3 + 4) + 0xac;\n  puVar1 = param_4[1];\n  puVar2 = *param_4;\n  uVar3 = *(undefined4 *)((int)param_6 + 4);\n  lVar7 = *param_6;\n  iVar11 = *(int *)(param_1 + 0x44);\n  if (iVar11 == 0) {\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }\n  else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }\n  local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);\n  iVar11 = local_64._4_4_;\n  local_64._0_4_ = (undefined *)lVar26;\n  puVar5 = (undefined *)local_64;\n  local_70 = &__DT_PLTGOT;\n  *(longlong *)(param_1 + 0x48) = lVar26;\n  *(longlong *)(param_1 + 0x58) = lVar24;\n  local_64 = lVar26;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }\n  else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }\n  local_74 = puVar22;\n  *(longlong *)(param_1 + 0x50) = lVar24;\n  local_48 = 0;\n  local_44[0] = 0;\n  local_4c = local_44;\n  if (*(int *)(param_1 + 0x30) != 0) {\n                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */\n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }\n  local_7c = (int *******)&local_58;\n  iVar10 = *(int *)(param_1 + 0x44);\n  local_50 = 0;\n  local_54 = local_7c;\n  local_58 = local_7c;\n  if (iVar10 != 0) {\n                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */\n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }\n  puVar22 = *(undefined4 **)(param_1 + 0x38);\n  local_68 = iVar10;\n  if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }\n  if (local_58 != local_7c) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */\n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }\n  if (local_98 != (undefined4 *)0x0) {\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */\n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */\n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  piVar23 = *(int **)(param_1 + 0x44);\n  if (piVar23 == (int *)0x0) {\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }\n  if (*(int *)(param_1 + 0x20) == 0) {\n    if (local_74 != (undefined4 *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }\n  else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }\n  *(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);\n  pppppppiVar6 = local_58;\n  if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }\njoined_r0x0010ae99:\n  while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }\n  if (local_4c != local_44) {\n    FUN_001807a0(local_4c);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *******pppppppiVar4;" primitive_type (pointer_declarator "*******pppppppiVar4" * (pointer_declarator "******pppppppiVar4" * (pointer_declarator "*****pppppppiVar4" * (pointer_declarator "****pppppppiVar4" * (pointer_declarator "***pppppppiVar4" * (pointer_declarator "**pppppppiVar4" * (pointer_declarator "*pppppppiVar4" * identifier))))))) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *******pppppppiVar6;" primitive_type (pointer_declarator "*******pppppppiVar6" * (pointer_declarator "******pppppppiVar6" * (pointer_declarator "*****pppppppiVar6" * (pointer_declarator "****pppppppiVar6" * (pointer_declarator "***pppppppiVar6" * (pointer_declarator "**pppppppiVar6" * (pointer_declarator "*pppppppiVar6" * identifier))))))) ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined **unaff_EBX;" type_identifier (pointer_declarator "**unaff_EBX" * (pointer_declarator "*unaff_EBX" * identifier)) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "longlong lVar24;" type_identifier identifier ;) (declaration "longlong lVar25;" type_identifier identifier ;) (declaration "longlong lVar26;" type_identifier identifier ;) (declaration "undefined8 uVar27;" type_identifier identifier ;) (declaration "char *pcVar28;" primitive_type (pointer_declarator "*pcVar28" * identifier) ;) (declaration "undefined4 *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined **local_90;" type_identifier (pointer_declarator "**local_90" * (pointer_declarator "*local_90" * identifier)) ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "int *******local_7c;" primitive_type (pointer_declarator "*******local_7c" * (pointer_declarator "******local_7c" * (pointer_declarator "*****local_7c" * (pointer_declarator "****local_7c" * (pointer_declarator "***local_7c" * (pointer_declarator "**local_7c" * (pointer_declarator "*local_7c" * identifier))))))) ;) (declaration "undefined4 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "undefined8 local_64;" type_identifier identifier ;) (declaration "int *******local_58;" primitive_type (pointer_declarator "*******local_58" * (pointer_declarator "******local_58" * (pointer_declarator "*****local_58" * (pointer_declarator "****local_58" * (pointer_declarator "***local_58" * (pointer_declarator "**local_58" * (pointer_declarator "*local_58" * identifier))))))) ;) (declaration "int *******local_54;" primitive_type (pointer_declarator "*******local_54" * (pointer_declarator "******local_54" * (pointer_declarator "*****local_54" * (pointer_declarator "****local_54" * (pointer_declarator "***local_54" * (pointer_declarator "**local_54" * (pointer_declarator "*local_54" * identifier))))))) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined1 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_34 [2];" type_identifier (pointer_declarator "*local_34 [2]" * (array_declarator "local_34 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "iVar10 = *(int *)(param_3 + 4) + 0xac;" (assignment_expression "iVar10 = *(int *)(param_3 + 4) + 0xac" identifier = (binary_expression "*(int *)(param_3 + 4) + 0xac" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar1 = param_4[1];" (assignment_expression "puVar1 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = *param_4;" (assignment_expression "puVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "uVar3 = *(undefined4 *)((int)param_6 + 4);" (assignment_expression "uVar3 = *(undefined4 *)((int)param_6 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)param_6 + 4)" * (cast_expression "(undefined4 *)((int)param_6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_6 + 4)" ( (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "lVar7 = *param_6;" (assignment_expression "lVar7 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "iVar11 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }\n  else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }" { (labeled_statement "LAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;" statement_identifier : (expression_statement "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;)) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }" { (expression_statement "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);" (assignment_expression "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0)" identifier = (cast_expression "(undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001073d0(iVar10,param_1,1,0,0)" identifier (argument_list "(iVar10,param_1,1,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal ))))) ;) (if_statement "if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" if (parenthesized_expression "(local_98 == (undefined4 *)0x0)" ( (binary_expression "local_98 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        lVar24 = *(longlong *)param_4;\n      }" { (expression_statement "lVar24 = *(longlong *)param_4;" (assignment_expression "lVar24 = *(longlong *)param_4" identifier = (pointer_expression "*(longlong *)param_4" * (cast_expression "(longlong *)param_4" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" else (compound_statement "{\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" { (expression_statement "uVar15 = FUN_00154430(local_98[9],local_98[10]);" (assignment_expression "uVar15 = FUN_00154430(local_98[9],local_98[10])" identifier = (call_expression "FUN_00154430(local_98[9],local_98[10])" identifier (argument_list "(local_98[9],local_98[10])" ( (subscript_expression "local_98[9]" identifier [ number_literal ]) , (subscript_expression "local_98[10]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar15 = FUN_001545c0(local_98[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_98[7],uVar15)" identifier = (call_expression "FUN_001545c0(local_98[7],uVar15)" identifier (argument_list "(local_98[7],uVar15)" ( (subscript_expression "local_98[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "lVar24 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "lVar24 = FUN_00154210(uVar15,param_2,param_3,0)" identifier = (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" identifier (argument_list "(uVar15,param_2,param_3,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) }))) (goto_statement "goto LAB_0010a6de;" goto statement_identifier ;) })) (expression_statement "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);" (assignment_expression "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0)" identifier = (cast_expression "(undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001073d0(iVar10,param_1,1,1,0)" identifier (argument_list "(iVar10,param_1,1,1,0)" ( identifier , identifier , number_literal , number_literal , number_literal ))))) ;) (expression_statement "lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);" (assignment_expression "lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0)" identifier = (call_expression "FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" * (cast_expression "(undefined4 *)(param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) , identifier , identifier , number_literal , (pointer_expression "*param_4" * identifier) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , number_literal , number_literal , identifier , number_literal )))) ;) (expression_statement "uVar21 = (uint)((ulonglong)lVar24 >> 0x20);" (assignment_expression "uVar21 = (uint)((ulonglong)lVar24 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar24 >> 0x20)" ( (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (uint)lVar24;" (assignment_expression "uVar14 = (uint)lVar24" identifier = (cast_expression "(uint)lVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;" if (parenthesized_expression "(local_98 == (undefined4 *)0x0)" ( (binary_expression "local_98 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0010a6d4;" goto statement_identifier ;)) (expression_statement "local_64 = lVar24;" (assignment_expression "local_64 = lVar24" identifier = identifier) ;) (expression_statement "lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);" (assignment_expression "lVar25 = FUN_00154210(local_98[7],param_2,param_3,0)" identifier = (call_expression "FUN_00154210(local_98[7],param_2,param_3,0)" identifier (argument_list "(local_98[7],param_2,param_3,0)" ( (subscript_expression "local_98[7]" identifier [ number_literal ]) , identifier , identifier , number_literal )))) ;) (expression_statement "uVar18 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar18 = (uint)((ulonglong)lVar25 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar13 = (uint)lVar25;" (assignment_expression "uVar13 = (uint)lVar25" identifier = (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);" (assignment_expression "lVar26 = FUN_00154210(local_98[8],param_2,param_3,0)" identifier = (call_expression "FUN_00154210(local_98[8],param_2,param_3,0)" identifier (argument_list "(local_98[8],param_2,param_3,0)" ( (subscript_expression "local_98[8]" identifier [ number_literal ]) , identifier , identifier , number_literal )))) ;) (if_statement "if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" if (parenthesized_expression "((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17))" ( (binary_expression "(uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)" (parenthesized_expression "(uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13))" ( (binary_expression "uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)" (binary_expression "uVar21 < uVar18" identifier < identifier) || (binary_expression "uVar21 - uVar18 < (uint)(uVar14 < uVar13)" (binary_expression "uVar21 - uVar18" identifier - identifier) < (call_expression "(uint)(uVar14 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar13)" ( (binary_expression "uVar14 < uVar13" identifier < identifier) ))))) )) || (parenthesized_expression "(uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)" ( (comma_expression "uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17" (assignment_expression "uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20)" identifier = (call_expression "(uint)((ulonglong)(lVar25 + lVar26) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)(lVar25 + lVar26) >> 0x20)" ( (binary_expression "(ulonglong)(lVar25 + lVar26) >> 0x20" (call_expression "(ulonglong)(lVar25 + lVar26)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar25 + lVar26)" ( (binary_expression "lVar25 + lVar26" identifier + identifier) ))) >> number_literal) )))) , (binary_expression "uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17" (binary_expression "uVar17 <= uVar21" identifier <= identifier) && (binary_expression "(uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17" (call_expression "(uint)(uVar14 < (uint)(lVar25 + lVar26))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (uint)(lVar25 + lVar26))" ( (binary_expression "uVar14 < (uint)(lVar25 + lVar26)" identifier < (call_expression "(uint)(lVar25 + lVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar25 + lVar26)" ( (binary_expression "lVar25 + lVar26" identifier + identifier) )))) ))) <= (binary_expression "uVar21 - uVar17" identifier - identifier)))) ))) )) (compound_statement "{\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }" { (expression_statement "uVar15 = *local_98;" (assignment_expression "uVar15 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) (expression_statement "pcVar28 = "address 0x%llx is not within region %s";" (assignment_expression "pcVar28 = "address 0x%llx is not within region %s"" identifier = (string_literal ""address 0x%llx is not within region %s"" " string_content ")) ;) (labeled_statement "LAB_0010b0ad:\n      uVar12 = gettext(pcVar28);" statement_identifier : (expression_statement "uVar12 = gettext(pcVar28);" (assignment_expression "uVar12 = gettext(pcVar28)" identifier = (call_expression "gettext(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier )))) ;)) (expression_statement "FUN_0005ad00(uVar12,lVar24,uVar15);" (call_expression "FUN_0005ad00(uVar12,lVar24,uVar15)" identifier (argument_list "(uVar12,lVar24,uVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) }) (else_clause "else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" else (compound_statement "{\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" { (expression_statement "uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];" (assignment_expression "uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10]" identifier = (binary_expression "uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10]" (binary_expression "uVar18 + (uint)CARRY4(uVar13,local_98[9])" identifier + (cast_expression "(uint)CARRY4(uVar13,local_98[9])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13,local_98[9])" identifier (argument_list "(uVar13,local_98[9])" ( identifier , (subscript_expression "local_98[9]" identifier [ number_literal ]) ))))) + (subscript_expression "local_98[10]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);" (assignment_expression "uVar14 = (uint)(uVar14 < uVar13 + local_98[9])" identifier = (call_expression "(uint)(uVar14 < uVar13 + local_98[9])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar13 + local_98[9])" ( (binary_expression "uVar14 < uVar13 + local_98[9]" identifier < (binary_expression "uVar13 + local_98[9]" identifier + (subscript_expression "local_98[9]" identifier [ number_literal ]))) )))) ;) (expression_statement "uVar13 = uVar21 - uVar18;" (assignment_expression "uVar13 = uVar21 - uVar18" identifier = (binary_expression "uVar21 - uVar18" identifier - identifier)) ;) (expression_statement "unaff_EBX = (undefined **)(uVar13 - uVar14);" (assignment_expression "unaff_EBX = (undefined **)(uVar13 - uVar14)" identifier = (cast_expression "(undefined **)(uVar13 - uVar14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar13 - uVar14)" ( (binary_expression "uVar13 - uVar14" identifier - identifier) )))) ;) (if_statement "if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }" if (parenthesized_expression "(uVar21 < uVar18 || uVar13 < uVar14)" ( (binary_expression "uVar21 < uVar18 || uVar13 < uVar14" (binary_expression "uVar21 < uVar18" identifier < identifier) || (binary_expression "uVar13 < uVar14" identifier < identifier)) )) (compound_statement "{\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }" { (expression_statement "uVar15 = *local_98;" (assignment_expression "uVar15 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) (expression_statement "pcVar28 = "address 0x%llx moves dot backwards in region %s";" (assignment_expression "pcVar28 = "address 0x%llx moves dot backwards in region %s"" identifier = (string_literal ""address 0x%llx moves dot backwards in region %s"" " string_content ")) ;) (goto_statement "goto LAB_0010b0ad;" goto statement_identifier ;) })) }))) (expression_statement "iVar11 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(longlong *)(local_98 + 9) = lVar24 - lVar25;" (assignment_expression "*(longlong *)(local_98 + 9) = lVar24 - lVar25" (pointer_expression "*(longlong *)(local_98 + 9)" * (cast_expression "(longlong *)(local_98 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + 9)" ( (binary_expression "local_98 + 9" identifier + number_literal) )))) = (binary_expression "lVar24 - lVar25" identifier - identifier)) ;) (if_statement "if (iVar11 != 0) goto LAB_0010a6e9;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010a6e9;" goto statement_identifier ;)) (labeled_statement "LAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);" statement_identifier : (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" identifier = (pointer_expression "*(int **)(param_1 + 0x44)" * (cast_expression "(int **)(param_1 + 0x44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;)) (if_statement "if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }" if (parenthesized_expression "(piVar23 != (int *)0x0)" ( (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }" { (if_statement "if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }" if (parenthesized_expression "(*(code **)(*piVar23 + 0xc) != FUN_00088ee0)" ( (binary_expression "*(code **)(*piVar23 + 0xc) != FUN_00088ee0" (pointer_expression "*(code **)(*piVar23 + 0xc)" * (cast_expression "(code **)(*piVar23 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar23 + 0xc)" ( (binary_expression "*piVar23 + 0xc" (pointer_expression "*piVar23" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }" { (expression_statement "lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);" (assignment_expression "lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23)" identifier = (call_expression "(**(code **)(*piVar23 + 0xc))(piVar23)" (parenthesized_expression "(**(code **)(*piVar23 + 0xc))" ( (pointer_expression "**(code **)(*piVar23 + 0xc)" * (pointer_expression "*(code **)(*piVar23 + 0xc)" * (cast_expression "(code **)(*piVar23 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar23 + 0xc)" ( (binary_expression "*piVar23 + 0xc" (pointer_expression "*piVar23" * identifier) + number_literal) ))))) )) (argument_list "(piVar23)" ( identifier )))) ;) (goto_statement "goto LAB_0010a762;" goto statement_identifier ;) })) (expression_statement "lVar24 = *(longlong *)(piVar23 + 9);" (assignment_expression "lVar24 = *(longlong *)(piVar23 + 9)" identifier = (pointer_expression "*(longlong *)(piVar23 + 9)" * (cast_expression "(longlong *)(piVar23 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar23 + 9)" ( (binary_expression "piVar23 + 9" identifier + number_literal) ))))) ;) (expression_statement "local_7c = *(int ********)(param_1 + 0x28);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x28)" identifier = (pointer_expression "*(int ********)(param_1 + 0x28)" * (cast_expression "(int ********)(param_1 + 0x28)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar25 = *(longlong *)(piVar23 + 9);" (assignment_expression "lVar25 = *(longlong *)(piVar23 + 9)" identifier = (pointer_expression "*(longlong *)(piVar23 + 9)" * (cast_expression "(longlong *)(piVar23 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar23 + 9)" ( (binary_expression "piVar23 + 9" identifier + number_literal) ))))) ;) (if_statement "if (local_7c != (int *******)0x0) goto LAB_0010a770;" if (parenthesized_expression "(local_7c != (int *******)0x0)" ( (binary_expression "local_7c != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0010a770;" goto statement_identifier ;)) (goto_statement "goto LAB_0010a9e6;" goto statement_identifier ;) })) (expression_statement "local_7c = *(int ********)(param_1 + 0x28);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x28)" identifier = (pointer_expression "*(int ********)(param_1 + 0x28)" * (cast_expression "(int ********)(param_1 + 0x28)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar24 = 0;" (assignment_expression "lVar24 = 0" identifier = number_literal) ;) (if_statement "if (local_7c != (int *******)0x0) goto LAB_0010a770;" if (parenthesized_expression "(local_7c != (int *******)0x0)" ( (binary_expression "local_7c != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0010a770;" goto statement_identifier ;)) (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;) (expression_statement "*(longlong *)param_4 = local_64;" (assignment_expression "*(longlong *)param_4 = local_64" (pointer_expression "*(longlong *)param_4" * (cast_expression "(longlong *)param_4" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "local_7c = (int *******)0x0;" (assignment_expression "local_7c = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "lVar26 = local_64;" (assignment_expression "lVar26 = local_64" identifier = identifier) ;) }) (else_clause "else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }" else (compound_statement "{\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }" { (if_statement "if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }" if (parenthesized_expression "((*(byte *)(iVar11 + 0x91) & 2) != 0)" ( (binary_expression "(*(byte *)(iVar11 + 0x91) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x91) & 2)" ( (binary_expression "*(byte *)(iVar11 + 0x91) & 2" (pointer_expression "*(byte *)(iVar11 + 0x91)" * (cast_expression "(byte *)(iVar11 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x91)" ( (binary_expression "iVar11 + 0x91" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }" { (expression_statement "unaff_EBX = &__DT_PLTGOT;" (assignment_expression "unaff_EBX = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "FUN_000c2b80(iVar11);" (call_expression "FUN_000c2b80(iVar11)" identifier (argument_list "(iVar11)" ( identifier ))) ;) (expression_statement "iVar11 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_0010a8a0;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010a8a0;" goto statement_identifier ;)) })) (expression_statement "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }" if (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" ( (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }" { comment (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);" (assignment_expression "cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64)" identifier = (call_expression "FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64)" identifier (argument_list "(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64)" ( (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar11 + 0x20)" * (cast_expression "(undefined4 *)(iVar11 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x20)" ( (binary_expression "iVar11 + 0x20" identifier + number_literal) )))) , (pointer_expression "&local_64" & identifier) )))) ;) (expression_statement "lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);" (assignment_expression "lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64)" identifier = (call_expression "CONCAT44(local_64._4_4_,(undefined *)local_64)" identifier (argument_list "(local_64._4_4_,(undefined *)local_64)" ( (field_expression "local_64._4_4_" identifier . field_identifier) , (cast_expression "(undefined *)local_64" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) (if_statement "if (cVar9 == '\0') goto LAB_0010a8a0;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0010a8a0;" goto statement_identifier ;)) (labeled_statement "LAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;" statement_identifier : (expression_statement "local_98 = (undefined4 *)0x0;" (assignment_expression "local_98 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "unaff_EBX = &__DT_PLTGOT;" (assignment_expression "unaff_EBX = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (labeled_statement "LAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);" statement_identifier : (expression_statement "iVar11 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;)) (expression_statement "local_64 = lVar24;" (assignment_expression "local_64 = lVar24" identifier = identifier) ;) (if_statement "if (iVar11 == 0) goto LAB_0010a9a5;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010a9a5;" goto statement_identifier ;)) (labeled_statement "LAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);" statement_identifier : (expression_statement "lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);" (assignment_expression "lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" identifier = (call_expression "FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" identifier (argument_list "(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" ( identifier , identifier , identifier , number_literal , (pointer_expression "*param_4" * identifier) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , number_literal , identifier , number_literal , number_literal )))) ;)) (if_statement "if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" if (parenthesized_expression "(local_34[0] != (undefined1 *)0x0)" ( (binary_expression "local_34[0] != (undefined1 *)0x0" (subscript_expression "local_34[0]" identifier [ number_literal ]) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" { (expression_statement "uVar15 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = gettext("alignment of section %s is not absolute");" (assignment_expression "uVar12 = gettext("alignment of section %s is not absolute")" identifier = (call_expression "gettext("alignment of section %s is not absolute")" identifier (argument_list "("alignment of section %s is not absolute")" ( (string_literal ""alignment of section %s is not absolute"" " string_content ") )))) ;) (expression_statement "FUN_0005ad30(uVar12,uVar15);" (call_expression "FUN_0005ad30(uVar12,uVar15)" identifier (argument_list "(uVar12,uVar15)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x44) != 0)" ( (binary_expression "*(int *)(param_1 + 0x44) != 0" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }" { (expression_statement "*(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;" (assignment_expression "*(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24" (pointer_expression "*(longlong *)(*(int *)(param_1 + 0x44) + 0x24)" * (cast_expression "(longlong *)(*(int *)(param_1 + 0x44) + 0x24)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x44) + 0x24)" ( (binary_expression "*(int *)(param_1 + 0x44) + 0x24" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (labeled_statement "LAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);" statement_identifier : (expression_statement "local_7c = *(int ********)(param_1 + 0x28);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x28)" identifier = (pointer_expression "*(int ********)(param_1 + 0x28)" * (cast_expression "(int ********)(param_1 + 0x28)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;)) (expression_statement "lVar25 = lVar24;" (assignment_expression "lVar25 = lVar24" identifier = identifier) ;) (if_statement "if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }" if (parenthesized_expression "(local_7c == (int *******)0x0)" ( (binary_expression "local_7c == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }" { (labeled_statement "LAB_0010a9e6:\n      lVar24 = lVar25;" statement_identifier : (expression_statement "lVar24 = lVar25;" (assignment_expression "lVar24 = lVar25" identifier = identifier) ;)) (expression_statement "local_7c = *(int ********)(param_1 + 0x44);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x44)" identifier = (pointer_expression "*(int ********)(param_1 + 0x44)" * (cast_expression "(int ********)(param_1 + 0x44)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }" if (parenthesized_expression "(lVar24 != 0)" ( (binary_expression "lVar24 != 0" identifier != number_literal) )) (compound_statement "{\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }" { (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0010a837;" goto statement_identifier ;) })) (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }" else (compound_statement "{\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }" { (labeled_statement "LAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);" statement_identifier : (expression_statement "local_88 = (uint)((ulonglong)lVar24 >> 0x20);" (assignment_expression "local_88 = (uint)((ulonglong)lVar24 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar24 >> 0x20)" ( (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_8c = (uint)lVar24;" (assignment_expression "local_8c = (uint)lVar24" identifier = (cast_expression "(uint)lVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);" (assignment_expression "lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" identifier = (call_expression "FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" identifier (argument_list "(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" ( identifier , identifier , identifier , number_literal , (pointer_expression "*param_4" * identifier) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , number_literal , identifier , number_literal , number_literal )))) ;) (if_statement "if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }" if (parenthesized_expression "(local_34[0] != (undefined1 *)0x0)" ( (binary_expression "local_34[0] != (undefined1 *)0x0" (subscript_expression "local_34[0]" identifier [ number_literal ]) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }" { (expression_statement "uVar15 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = gettext("subalign of section %s is not absolute");" (assignment_expression "uVar12 = gettext("subalign of section %s is not absolute")" identifier = (call_expression "gettext("subalign of section %s is not absolute")" identifier (argument_list "("subalign of section %s is not absolute")" ( (string_literal ""subalign of section %s is not absolute"" " string_content ") )))) ;) (expression_statement "FUN_0005ad30(uVar12,uVar15);" (call_expression "FUN_0005ad30(uVar12,uVar15)" identifier (argument_list "(uVar12,uVar15)" ( identifier , identifier ))) ;) })) (if_statement "if (lVar25 == 0) {\n        lVar25 = 1;\n      }" if (parenthesized_expression "(lVar25 == 0)" ( (binary_expression "lVar25 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar25 = 1;\n      }" { (expression_statement "lVar25 = 1;" (assignment_expression "lVar25 = 1" identifier = number_literal) ;) })) (expression_statement "local_80 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "local_80 = (uint)((ulonglong)lVar25 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (uint)lVar25;" (assignment_expression "local_84 = (uint)lVar25" identifier = (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_7c = *(int ********)(param_1 + 0x44);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x44)" identifier = (pointer_expression "*(int ********)(param_1 + 0x44)" * (cast_expression "(int ********)(param_1 + 0x44)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }" if (parenthesized_expression "((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0))" ( (binary_expression "(local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)" (parenthesized_expression "(local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84))" ( (binary_expression "local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)" (binary_expression "local_88 < local_80" identifier < identifier) || (binary_expression "local_88 - local_80 < (uint)(local_8c < local_84)" (binary_expression "local_88 - local_80" identifier - identifier) < (call_expression "(uint)(local_8c < local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_8c < local_84)" ( (binary_expression "local_8c < local_84" identifier < identifier) ))))) )) || (parenthesized_expression "(*(int *)(param_1 + 0x24) == 0)" ( (binary_expression "*(int *)(param_1 + 0x24) == 0" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }" { (expression_statement "*(longlong *)((int)local_7c + 0x24) = lVar25;" (assignment_expression "*(longlong *)((int)local_7c + 0x24) = lVar25" (pointer_expression "*(longlong *)((int)local_7c + 0x24)" * (cast_expression "(longlong *)((int)local_7c + 0x24)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x24)" ( (binary_expression "(int)local_7c + 0x24" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "lVar24 = lVar25;" (assignment_expression "lVar24 = lVar25" identifier = identifier) ;) })) (labeled_statement "LAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);" statement_identifier : (expression_statement "local_88 = (uint)((ulonglong)lVar24 >> 0x20);" (assignment_expression "local_88 = (uint)((ulonglong)lVar24 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar24 >> 0x20)" ( (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_8c = (uint)lVar24;" (assignment_expression "local_8c = (uint)lVar24" identifier = (cast_expression "(uint)lVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar26 = lVar24 + local_64 + -1;" (assignment_expression "lVar26 = lVar24 + local_64 + -1" identifier = (binary_expression "lVar24 + local_64 + -1" (binary_expression "lVar24 + local_64" identifier + identifier) + number_literal)) ;) (expression_statement "local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);" (assignment_expression "local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c)" identifier (argument_list "((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c)" ( (binary_expression "(uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0))" (call_expression "(uint)((ulonglong)lVar26 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-(local_88 + (local_8c != 0))" - (parenthesized_expression "(local_88 + (local_8c != 0))" ( (binary_expression "local_88 + (local_8c != 0)" identifier + (parenthesized_expression "(local_8c != 0)" ( (binary_expression "local_8c != 0" identifier != number_literal) ))) )))) , (binary_expression "(uint)lVar26 & -local_8c" (cast_expression "(uint)lVar26" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-local_8c" - identifier)) )))) ;) }))) (expression_statement "local_90 = (undefined **)((ulonglong)local_64 >> 0x20);" (assignment_expression "local_90 = (undefined **)((ulonglong)local_64 >> 0x20)" identifier = (cast_expression "(undefined **)((ulonglong)local_64 >> 0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((ulonglong)local_64 >> 0x20)" ( (binary_expression "(ulonglong)local_64 >> 0x20" (cast_expression "(ulonglong)local_64" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(longlong *)param_4 = local_64;" (assignment_expression "*(longlong *)param_4 = local_64" (pointer_expression "*(longlong *)param_4" * (cast_expression "(longlong *)param_4" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "unaff_EBX = param_4;" (assignment_expression "unaff_EBX = param_4" identifier = identifier) ;) (expression_statement "lVar26 = local_64;" (assignment_expression "lVar26 = local_64" identifier = identifier) ;) (if_statement "if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }" if (parenthesized_expression "((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       ))" ( (binary_expression "(local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )" (parenthesized_expression "(local_7c != (int *******)0x0)" ( (binary_expression "local_7c != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )" ( (parenthesized_expression "((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))" ( (binary_expression "(*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0)" (binary_expression "(*(byte *)((int)local_7c + 0x54) & 2) != 0" (parenthesized_expression "(*(byte *)((int)local_7c + 0x54) & 2)" ( (binary_expression "*(byte *)((int)local_7c + 0x54) & 2" (pointer_expression "*(byte *)((int)local_7c + 0x54)" * (cast_expression "(byte *)((int)local_7c + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x54)" ( (binary_expression "(int)local_7c + 0x54" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)((int)local_7c + 0x92) & 8) != 0)" ( (binary_expression "(*(byte *)((int)local_7c + 0x92) & 8) != 0" (parenthesized_expression "(*(byte *)((int)local_7c + 0x92) & 8)" ( (binary_expression "*(byte *)((int)local_7c + 0x92) & 8" (pointer_expression "*(byte *)((int)local_7c + 0x92)" * (cast_expression "(byte *)((int)local_7c + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x92)" ( (binary_expression "(int)local_7c + 0x92" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }" { (if_statement "if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }" if (parenthesized_expression "((*(byte *)((int)local_7c + 0x1c) & 1) != 0)" ( (binary_expression "(*(byte *)((int)local_7c + 0x1c) & 1) != 0" (parenthesized_expression "(*(byte *)((int)local_7c + 0x1c) & 1)" ( (binary_expression "*(byte *)((int)local_7c + 0x1c) & 1" (pointer_expression "*(byte *)((int)local_7c + 0x1c)" * (cast_expression "(byte *)((int)local_7c + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x1c)" ( (binary_expression "(int)local_7c + 0x1c" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }" { comment (expression_statement "FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);" (call_expression "FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4)" identifier (argument_list "("../../gold/output.h",0x142,"set_address",param_4)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_address"" " string_content ") , identifier ))) ;) })) (expression_statement "*(longlong *)((int)local_7c + 4) = local_64;" (assignment_expression "*(longlong *)((int)local_7c + 4) = local_64" (pointer_expression "*(longlong *)((int)local_7c + 4)" * (cast_expression "(longlong *)((int)local_7c + 4)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 4)" ( (binary_expression "(int)local_7c + 4" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;" (assignment_expression "*(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1" (pointer_expression "*(byte *)((int)local_7c + 0x1c)" * (cast_expression "(byte *)((int)local_7c + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x1c)" ( (binary_expression "(int)local_7c + 0x1c" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_7c + 0x1c) | 1" (pointer_expression "*(byte *)((int)local_7c + 0x1c)" * (cast_expression "(byte *)((int)local_7c + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x1c)" ( (binary_expression "(int)local_7c + 0x1c" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "unaff_EBX = local_90;" (assignment_expression "unaff_EBX = local_90" identifier = identifier) ;) })) }))) (expression_statement "local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);" (assignment_expression "local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20)" (field_expression "local_64._4_4_" identifier . field_identifier) = (cast_expression "(int)((ulonglong)lVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar11 = local_64._4_4_;" (assignment_expression "iVar11 = local_64._4_4_" identifier = (field_expression "local_64._4_4_" identifier . field_identifier)) ;) (expression_statement "local_64._0_4_ = (undefined *)lVar26;" (assignment_expression "local_64._0_4_ = (undefined *)lVar26" (field_expression "local_64._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)lVar26" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar5 = (undefined *)local_64;" (assignment_expression "puVar5 = (undefined *)local_64" identifier = (cast_expression "(undefined *)local_64" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "*(longlong *)(param_1 + 0x48) = lVar26;" (assignment_expression "*(longlong *)(param_1 + 0x48) = lVar26" (pointer_expression "*(longlong *)(param_1 + 0x48)" * (cast_expression "(longlong *)(param_1 + 0x48)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(longlong *)(param_1 + 0x58) = lVar24;" (assignment_expression "*(longlong *)(param_1 + 0x58) = lVar24" (pointer_expression "*(longlong *)(param_1 + 0x58)" * (cast_expression "(longlong *)(param_1 + 0x58)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_64 = lVar26;" (assignment_expression "local_64 = lVar26" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x20) == 0) {\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }\n  else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0)" ( (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }" { (expression_statement "local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);" (assignment_expression "local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34)" identifier = (cast_expression "(undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001073d0(iVar10,param_1,0,0,local_34)" identifier (argument_list "(iVar10,param_1,0,0,local_34)" ( identifier , identifier , number_literal , number_literal , identifier ))))) ;) (expression_statement "puVar22 = (undefined4 *)0x0;" (assignment_expression "puVar22 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lVar24 = local_64;" (assignment_expression "lVar24 = local_64" identifier = identifier) ;) (if_statement "if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }" if (parenthesized_expression "(local_74 != (undefined4 *)0x0)" ( (binary_expression "local_74 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }" { (if_statement "if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }" if (parenthesized_expression "(local_34[0] == (undefined1 *)0x0)" ( (binary_expression "local_34[0] == (undefined1 *)0x0" (subscript_expression "local_34[0]" identifier [ number_literal ]) == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" { (expression_statement "uVar15 = FUN_00154430(local_74[9],local_74[10]);" (assignment_expression "uVar15 = FUN_00154430(local_74[9],local_74[10])" identifier = (call_expression "FUN_00154430(local_74[9],local_74[10])" identifier (argument_list "(local_74[9],local_74[10])" ( (subscript_expression "local_74[9]" identifier [ number_literal ]) , (subscript_expression "local_74[10]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar15 = FUN_001545c0(local_74[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_74[7],uVar15)" identifier = (call_expression "FUN_001545c0(local_74[7],uVar15)" identifier (argument_list "(local_74[7],uVar15)" ( (subscript_expression "local_74[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "lVar24 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "lVar24 = FUN_00154210(uVar15,param_2,param_3,0)" identifier = (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" identifier (argument_list "(uVar15,param_2,param_3,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) }) (else_clause "else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }" else (compound_statement "{\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }" { (expression_statement "local_74 = puVar22;" (assignment_expression "local_74 = puVar22" identifier = identifier) ;) (if_statement "if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }" if (parenthesized_expression "((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1))" ( (binary_expression "(*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)" (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(local_34[0] != param_1)" ( (binary_expression "local_34[0] != param_1" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) ))) )) (compound_statement "{\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }" { (expression_statement "uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);" (assignment_expression "uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50)" identifier = (binary_expression "(int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50)" (cast_expression "(int)(undefined *)local_64" ( (type_descriptor "int" primitive_type) ) (cast_expression "(undefined *)local_64" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + (pointer_expression "*(uint *)(local_34[0] + 0x50)" * (cast_expression "(uint *)(local_34[0] + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x50)" ( (binary_expression "local_34[0] + 0x50" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) )))))) ;) (expression_statement "lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));" (assignment_expression "lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48))" identifier = (call_expression "CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48))" identifier (argument_list "(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48))" ( (binary_expression "local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48)))" (field_expression "local_64._4_4_" identifier . field_identifier) + (parenthesized_expression "((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48)))" ( (binary_expression "(((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))" (parenthesized_expression "(((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c))" ( (binary_expression "((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)" (parenthesized_expression "((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54))" ( (binary_expression "(uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)" (cast_expression "(uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50))" identifier (argument_list "((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50))" ( (cast_expression "(uint)(undefined *)local_64" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(undefined *)local_64" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "*(uint *)(local_34[0] + 0x50)" * (cast_expression "(uint *)(local_34[0] + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x50)" ( (binary_expression "local_34[0] + 0x50" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) )))) )))) + (pointer_expression "*(int *)(local_34[0] + 0x54)" * (cast_expression "(int *)(local_34[0] + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x54)" ( (binary_expression "local_34[0] + 0x54" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) ))))) )) - (pointer_expression "*(int *)(local_34[0] + 0x4c)" * (cast_expression "(int *)(local_34[0] + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x4c)" ( (binary_expression "local_34[0] + 0x4c" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) ))))) )) - (call_expression "(uint)(uVar14 < *(uint *)(local_34[0] + 0x48))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < *(uint *)(local_34[0] + 0x48))" ( (binary_expression "uVar14 < *(uint *)(local_34[0] + 0x48)" identifier < (pointer_expression "*(uint *)(local_34[0] + 0x48)" * (cast_expression "(uint *)(local_34[0] + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x48)" ( (binary_expression "local_34[0] + 0x48" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) ))))) )))) ))) , (binary_expression "uVar14 - *(uint *)(local_34[0] + 0x48)" identifier - (pointer_expression "*(uint *)(local_34[0] + 0x48)" * (cast_expression "(uint *)(local_34[0] + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x48)" ( (binary_expression "local_34[0] + 0x48" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) ))))) )))) ;) })) }))) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = local_74;" (assignment_expression "puVar22 = local_74" identifier = identifier) ;) (if_statement "if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }" { (expression_statement "*(longlong *)(iVar10 + 0x34) = lVar24;" (assignment_expression "*(longlong *)(iVar10 + 0x34) = lVar24" (pointer_expression "*(longlong *)(iVar10 + 0x34)" * (cast_expression "(longlong *)(iVar10 + 0x34)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;" (assignment_expression "*(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80" (pointer_expression "*(byte *)(iVar10 + 0x90)" * (cast_expression "(byte *)(iVar10 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x90)" ( (binary_expression "iVar10 + 0x90" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar10 + 0x90) | 0x80" (pointer_expression "*(byte *)(iVar10 + 0x90)" * (cast_expression "(byte *)(iVar10 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x90)" ( (binary_expression "iVar10 + 0x90" identifier + number_literal) )))) | number_literal)) ;) })) })) }) (else_clause "else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }" else (compound_statement "{\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }" { (expression_statement "lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);" (assignment_expression "lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0)" identifier = (call_expression "FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0)" identifier (argument_list "(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0)" ( (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , identifier , identifier , number_literal , (pointer_expression "*param_4" * identifier) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "puVar22 = *(undefined4 **)(param_1 + 0x44);" (assignment_expression "puVar22 = *(undefined4 **)(param_1 + 0x44)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x44)" * (cast_expression "(undefined4 **)(param_1 + 0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) (if_statement "if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }" if (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" ( (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }" { (expression_statement "*(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;" (assignment_expression "*(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80" (pointer_expression "*(byte *)(puVar22 + 0x24)" * (cast_expression "(byte *)(puVar22 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x24)" ( (binary_expression "puVar22 + 0x24" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar22 + 0x24) | 0x80" (pointer_expression "*(byte *)(puVar22 + 0x24)" * (cast_expression "(byte *)(puVar22 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x24)" ( (binary_expression "puVar22 + 0x24" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(longlong *)(puVar22 + 0xd) = lVar24;" (assignment_expression "*(longlong *)(puVar22 + 0xd) = lVar24" (pointer_expression "*(longlong *)(puVar22 + 0xd)" * (cast_expression "(longlong *)(puVar22 + 0xd)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xd)" ( (binary_expression "puVar22 + 0xd" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_74 = (undefined4 *)0x0;" (assignment_expression "local_74 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_EBX = &__DT_PLTGOT;" (assignment_expression "unaff_EBX = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puVar22 = local_74;" (assignment_expression "puVar22 = local_74" identifier = identifier) ;) })) }))) (expression_statement "local_74 = puVar22;" (assignment_expression "local_74 = puVar22" identifier = identifier) ;) (expression_statement "*(longlong *)(param_1 + 0x50) = lVar24;" (assignment_expression "*(longlong *)(param_1 + 0x50) = lVar24" (pointer_expression "*(longlong *)(param_1 + 0x50)" * (cast_expression "(longlong *)(param_1 + 0x50)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_4c = local_44;" (assignment_expression "local_4c = local_44" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x30) != 0) {\n                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */\n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x30) != 0)" ( (binary_expression "*(int *)(param_1 + 0x30) != 0" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */\n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }" { comment (expression_statement "uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);" (assignment_expression "uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0)" identifier = (call_expression "FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0)" identifier (argument_list "(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0)" ( (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , identifier , identifier , number_literal , (pointer_expression "*param_4" * identifier) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , number_literal , (pointer_expression "&local_58" & identifier) , number_literal , number_literal )))) ;) (if_statement "if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" if (parenthesized_expression "(local_58 != (int *******)0x0)" ( (binary_expression "local_58 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" { (expression_statement "uVar15 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = gettext("fill of section %s is not absolute");" (assignment_expression "uVar12 = gettext("fill of section %s is not absolute")" identifier = (call_expression "gettext("fill of section %s is not absolute")" identifier (argument_list "("fill of section %s is not absolute")" ( (string_literal ""fill of section %s is not absolute"" " string_content ") )))) ;) (expression_statement "FUN_0005ad30(uVar12,uVar15);" (call_expression "FUN_0005ad30(uVar12,uVar15)" identifier (argument_list "(uVar12,uVar15)" ( identifier , identifier ))) ;) })) (expression_statement "local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);" (assignment_expression "local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18)" (subscript_expression "local_34[0]" identifier [ number_literal ]) = (cast_expression "(undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18)" ( (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" (binary_expression "uVar14 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar14 & 0xff0000) >> 8" (parenthesized_expression "(uVar14 & 0xff0000)" ( (binary_expression "uVar14 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar14 & 0xff00) << 8" (parenthesized_expression "(uVar14 & 0xff00)" ( (binary_expression "uVar14 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar14 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "FUN_001893e0(&local_4c,0,local_48,local_34,4);" (call_expression "FUN_001893e0(&local_4c,0,local_48,local_34,4)" identifier (argument_list "(&local_4c,0,local_48,local_34,4)" ( (pointer_expression "&local_4c" & identifier) , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) })) (expression_statement "local_7c = (int *******)&local_58;" (assignment_expression "local_7c = (int *******)&local_58" identifier = (cast_expression "(int *******)&local_58" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_58" & identifier))) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_54 = local_7c;" (assignment_expression "local_54 = local_7c" identifier = identifier) ;) (expression_statement "local_58 = local_7c;" (assignment_expression "local_58 = local_7c" identifier = identifier) ;) (if_statement "if (iVar10 != 0) {\n                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */\n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */\n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }" { comment (expression_statement "lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);" (assignment_expression "lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c)" identifier = (call_expression "FUN_000bfc90(iVar10,local_64,&local_4c,local_7c)" identifier (argument_list "(iVar10,local_64,&local_4c,local_7c)" ( identifier , identifier , (pointer_expression "&local_4c" & identifier) , identifier )))) ;) (expression_statement "local_64 = lVar24 + local_64;" (assignment_expression "local_64 = lVar24 + local_64" identifier = (binary_expression "lVar24 + local_64" identifier + identifier)) ;) (expression_statement "*(longlong *)param_4 = local_64;" (assignment_expression "*(longlong *)param_4 = local_64" (pointer_expression "*(longlong *)param_4" * (cast_expression "(longlong *)param_4" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) })) (expression_statement "puVar22 = *(undefined4 **)(param_1 + 0x38);" (assignment_expression "puVar22 = *(undefined4 **)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x38)" * (cast_expression "(undefined4 **)(param_1 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "local_68 = iVar10;" (assignment_expression "local_68 = iVar10" identifier = identifier) ;) (if_statement "if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }" if (parenthesized_expression "(puVar22 != *(undefined4 **)(param_1 + 0x3c))" ( (binary_expression "puVar22 != *(undefined4 **)(param_1 + 0x3c)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) )) (compound_statement "{\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }" { (expression_statement "unaff_EBX = &local_4c;" (assignment_expression "unaff_EBX = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (while_statement "while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }" { (expression_statement "(**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);" (call_expression "(**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c)" (parenthesized_expression "(**(code **)(*(int *)*puVar22 + 0x18))" ( (pointer_expression "**(code **)(*(int *)*puVar22 + 0x18)" * (pointer_expression "*(code **)(*(int *)*puVar22 + 0x18)" * (cast_expression "(code **)(*(int *)*puVar22 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar22 + 0x18)" ( (binary_expression "*(int *)*puVar22 + 0x18" (pointer_expression "*(int *)*puVar22" * (cast_expression "(int *)*puVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar22" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c)" ( (cast_expression "(int *)*puVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar22" * identifier)) , identifier , identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_68" & identifier) , identifier , identifier ))) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (if_statement "if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;" if (parenthesized_expression "(*(undefined4 **)(param_1 + 0x3c) == puVar22)" ( (binary_expression "*(undefined4 **)(param_1 + 0x3c) == puVar22" (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) })) })) (if_statement "if (local_58 != local_7c) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */\n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }" if (parenthesized_expression "(local_58 != local_7c)" ( (binary_expression "local_58 != local_7c" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */\n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }" { comment comment (expression_statement "FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);" (call_expression "FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX)" identifier (argument_list "("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX)" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""set_section_addresses"" " string_content ") , identifier ))) ;) })) (if_statement "if (local_98 != (undefined4 *)0x0) {\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */\n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" if (parenthesized_expression "(local_98 != (undefined4 *)0x0)" ( (binary_expression "local_98 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */\n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" { (expression_statement "uVar15 = FUN_00154430(local_98[9],local_98[10]);" (assignment_expression "uVar15 = FUN_00154430(local_98[9],local_98[10])" identifier = (call_expression "FUN_00154430(local_98[9],local_98[10])" identifier (argument_list "(local_98[9],local_98[10])" ( (subscript_expression "local_98[9]" identifier [ number_literal ]) , (subscript_expression "local_98[10]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar15 = FUN_001545c0(local_98[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_98[7],uVar15)" identifier = (call_expression "FUN_001545c0(local_98[7],uVar15)" identifier (argument_list "(local_98[7],uVar15)" ( (subscript_expression "local_98[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "puVar20 = *param_4;" (assignment_expression "puVar20 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "puVar19 = param_4[1];" (assignment_expression "puVar19 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "uVar27 = FUN_00154210(uVar15,param_2,param_3,0)" identifier = (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" identifier (argument_list "(uVar15,param_2,param_3,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);" (call_expression "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" identifier (argument_list "(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" ( identifier , (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , (binary_expression "*(int *)(param_1 + 8) + *(int *)(param_1 + 4)" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) , number_literal ))) ;) (expression_statement "puVar16 = puVar20 + local_98[9];" (assignment_expression "puVar16 = puVar20 + local_98[9]" identifier = (binary_expression "puVar20 + local_98[9]" identifier + (subscript_expression "local_98[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = (int)puVar16 - (int)(undefined *)uVar27;" (assignment_expression "uVar14 = (int)puVar16 - (int)(undefined *)uVar27" identifier = (binary_expression "(int)puVar16 - (int)(undefined *)uVar27" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(undefined *)uVar27" ( (type_descriptor "int" primitive_type) ) (cast_expression "(undefined *)uVar27" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));" (assignment_expression "puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27))" identifier = (binary_expression "puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27))" identifier + (parenthesized_expression "((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27))" ( (binary_expression "(((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27)" (parenthesized_expression "(((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20))" ( (binary_expression "((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)" (parenthesized_expression "((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10])" ( (binary_expression "(uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]" (cast_expression "(uint)CARRY4((uint)puVar20,local_98[9])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)puVar20,local_98[9])" identifier (argument_list "((uint)puVar20,local_98[9])" ( (cast_expression "(uint)puVar20" ( (type_descriptor "uint" type_identifier) ) identifier) , (subscript_expression "local_98[9]" identifier [ number_literal ]) )))) + (subscript_expression "local_98[10]" identifier [ number_literal ])) )) - (cast_expression "(int)((ulonglong)uVar27 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" ( (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) - (call_expression "(uint)(puVar16 < (undefined *)uVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar16 < (undefined *)uVar27)" ( (binary_expression "puVar16 < (undefined *)uVar27" identifier < (cast_expression "(undefined *)uVar27" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) )))) ;) (expression_statement "local_98[9] = uVar14;" (assignment_expression "local_98[9] = uVar14" (subscript_expression "local_98[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_98[10] = puVar19;" (assignment_expression "local_98[10] = puVar19" (subscript_expression "local_98[10]" identifier [ number_literal ]) = identifier) ;) comment (expression_statement "uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);" (assignment_expression "uVar27 = FUN_00154210(local_98[8],param_2,param_3,0)" identifier = (call_expression "FUN_00154210(local_98[8],param_2,param_3,0)" identifier (argument_list "(local_98[8],param_2,param_3,0)" ( (subscript_expression "local_98[8]" identifier [ number_literal ]) , identifier , identifier , number_literal )))) ;) (expression_statement "puVar8 = local_34[0];" (assignment_expression "puVar8 = local_34[0]" identifier = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (expression_statement "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);" (assignment_expression "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20)" identifier = (cast_expression "(undefined *)((ulonglong)uVar27 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" ( (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" if (parenthesized_expression "(puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14))" ( (binary_expression "puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)" (binary_expression "puVar20 < puVar19" identifier < identifier) || (binary_expression "(uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)" (call_expression "(uint)((int)puVar20 - (int)puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar20 - (int)puVar19)" ( (binary_expression "(int)puVar20 - (int)puVar19" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((uint)uVar27 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar27 < uVar14)" ( (binary_expression "(uint)uVar27 < uVar14" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" { (expression_statement "uVar15 = *local_98;" (assignment_expression "uVar15 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) (expression_statement "uVar12 = gettext("section %s overflows end of region %s");" (assignment_expression "uVar12 = gettext("section %s overflows end of region %s")" identifier = (call_expression "gettext("section %s overflows end of region %s")" identifier (argument_list "("section %s overflows end of region %s")" ( (string_literal ""section %s overflows end of region %s"" " string_content ") )))) ;) comment (expression_statement "FUN_0005ad00(uVar12,puVar8,uVar15);" (call_expression "FUN_0005ad00(uVar12,puVar8,uVar15)" identifier (argument_list "(uVar12,puVar8,uVar15)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      FUN_001807a0(local_34[0]);\n    }" { (expression_statement "FUN_001807a0(local_34[0]);" (call_expression "FUN_001807a0(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) })) })) (if_statement "if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */\n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" if (parenthesized_expression "((local_74 != (undefined4 *)0x0) && (local_98 != local_74))" ( (binary_expression "(local_74 != (undefined4 *)0x0) && (local_98 != local_74)" (parenthesized_expression "(local_74 != (undefined4 *)0x0)" ( (binary_expression "local_74 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_98 != local_74)" ( (binary_expression "local_98 != local_74" identifier != identifier) ))) )) (compound_statement "{\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */\n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" { (expression_statement "puVar20 = *param_4;" (assignment_expression "puVar20 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "puVar19 = param_4[1];" (assignment_expression "puVar19 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = (int)puVar20 - (int)puVar5;" (assignment_expression "uVar14 = (int)puVar20 - (int)puVar5" identifier = (binary_expression "(int)puVar20 - (int)puVar5" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) = identifier) ;) comment (expression_statement "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);" (call_expression "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" identifier (argument_list "(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" ( identifier , (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , (binary_expression "*(int *)(param_1 + 8) + *(int *)(param_1 + 4)" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) , number_literal ))) ;) (expression_statement "uVar21 = uVar14 + local_74[9];" (assignment_expression "uVar21 = uVar14 + local_74[9]" identifier = (binary_expression "uVar14 + local_74[9]" identifier + (subscript_expression "local_74[9]" identifier [ number_literal ]))) ;) (expression_statement "puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);" (assignment_expression "puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11)" identifier = (binary_expression "puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11)" (binary_expression "puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10]" (binary_expression "puVar19 + (uint)CARRY4(uVar14,local_74[9])" identifier + (cast_expression "(uint)CARRY4(uVar14,local_74[9])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,local_74[9])" identifier (argument_list "(uVar14,local_74[9])" ( identifier , (subscript_expression "local_74[9]" identifier [ number_literal ]) ))))) + (subscript_expression "local_74[10]" identifier [ number_literal ])) + (parenthesized_expression "(-(uint)(puVar20 < puVar5) - iVar11)" ( (binary_expression "-(uint)(puVar20 < puVar5) - iVar11" (unary_expression "-(uint)(puVar20 < puVar5)" - (call_expression "(uint)(puVar20 < puVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar20 < puVar5)" ( (binary_expression "puVar20 < puVar5" identifier < identifier) )))) - identifier) )))) ;) (expression_statement "local_74[9] = uVar21;" (assignment_expression "local_74[9] = uVar21" (subscript_expression "local_74[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_74[10] = puVar19;" (assignment_expression "local_74[10] = puVar19" (subscript_expression "local_74[10]" identifier [ number_literal ]) = identifier) ;) comment (expression_statement "uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);" (assignment_expression "uVar27 = FUN_00154210(local_74[8],param_2,param_3,0)" identifier = (call_expression "FUN_00154210(local_74[8],param_2,param_3,0)" identifier (argument_list "(local_74[8],param_2,param_3,0)" ( (subscript_expression "local_74[8]" identifier [ number_literal ]) , identifier , identifier , number_literal )))) ;) (expression_statement "puVar8 = local_34[0];" (assignment_expression "puVar8 = local_34[0]" identifier = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (expression_statement "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);" (assignment_expression "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20)" identifier = (cast_expression "(undefined *)((ulonglong)uVar27 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" ( (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" if (parenthesized_expression "(puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21))" ( (binary_expression "puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)" (binary_expression "puVar20 < puVar19" identifier < identifier) || (binary_expression "(uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)" (call_expression "(uint)((int)puVar20 - (int)puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar20 - (int)puVar19)" ( (binary_expression "(int)puVar20 - (int)puVar19" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((uint)uVar27 < uVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar27 < uVar21)" ( (binary_expression "(uint)uVar27 < uVar21" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" { (expression_statement "uVar15 = *local_74;" (assignment_expression "uVar15 = *local_74" identifier = (pointer_expression "*local_74" * identifier)) ;) (expression_statement "uVar12 = gettext("section %s overflows end of region %s");" (assignment_expression "uVar12 = gettext("section %s overflows end of region %s")" identifier = (call_expression "gettext("section %s overflows end of region %s")" identifier (argument_list "("section %s overflows end of region %s")" ( (string_literal ""section %s overflows end of region %s"" " string_content ") )))) ;) comment (expression_statement "FUN_0005ad00(uVar12,puVar8,uVar15);" (call_expression "FUN_0005ad00(uVar12,puVar8,uVar15)" identifier (argument_list "(uVar12,puVar8,uVar15)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      FUN_001807a0(local_34[0]);\n    }" { (expression_statement "FUN_001807a0(local_34[0]);" (call_expression "FUN_001807a0(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) })) })) (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" identifier = (pointer_expression "*(int **)(param_1 + 0x44)" * (cast_expression "(int **)(param_1 + 0x44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if (piVar23 == (int *)0x0) {\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }" if (parenthesized_expression "(piVar23 == (int *)0x0)" ( (binary_expression "piVar23 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }" { (expression_statement "puVar1 = *param_4;" (assignment_expression "puVar1 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*(undefined **)((int)param_6 + 4) = param_4[1];" (assignment_expression "*(undefined **)((int)param_6 + 4) = param_4[1]" (pointer_expression "*(undefined **)((int)param_6 + 4)" * (cast_expression "(undefined **)((int)param_6 + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_6 + 4)" ( (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined **)param_6 = puVar1;" (assignment_expression "*(undefined **)param_6 = puVar1" (pointer_expression "*(undefined **)param_6" * (cast_expression "(undefined **)param_6" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "pppppppiVar6 = local_58;" (assignment_expression "pppppppiVar6 = local_58" identifier = identifier) ;) (goto_statement "goto joined_r0x0010ae99;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x20) == 0) {\n    if (local_74 != (undefined4 *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }\n  else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0)" ( (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (local_74 != (undefined4 *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }" { (if_statement "if (local_74 != (undefined4 *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }" if (parenthesized_expression "(local_74 != (undefined4 *)0x0)" ( (binary_expression "local_74 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }" { comment (expression_statement "uVar15 = FUN_00154430(local_74[9],local_74[10]);" (assignment_expression "uVar15 = FUN_00154430(local_74[9],local_74[10])" identifier = (call_expression "FUN_00154430(local_74[9],local_74[10])" identifier (argument_list "(local_74[9],local_74[10])" ( (subscript_expression "local_74[9]" identifier [ number_literal ]) , (subscript_expression "local_74[10]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar15 = FUN_001545c0(local_74[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_74[7],uVar15)" identifier = (call_expression "FUN_001545c0(local_74[7],uVar15)" identifier (argument_list "(local_74[7],uVar15)" ( (subscript_expression "local_74[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "lVar24 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "lVar24 = FUN_00154210(uVar15,param_2,param_3,0)" identifier = (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" identifier (argument_list "(uVar15,param_2,param_3,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" identifier = (pointer_expression "*(int **)(param_1 + 0x44)" * (cast_expression "(int **)(param_1 + 0x44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "*param_6 = lVar24;" (assignment_expression "*param_6 = lVar24" (pointer_expression "*param_6" * identifier) = identifier) ;) (goto_statement "goto LAB_0010ae3d;" goto statement_identifier ;) })) (expression_statement "puVar5 = *param_4;" (assignment_expression "puVar5 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*(undefined **)((int)param_6 + 4) = param_4[1];" (assignment_expression "*(undefined **)((int)param_6 + 4) = param_4[1]" (pointer_expression "*(undefined **)((int)param_6 + 4)" * (cast_expression "(undefined **)((int)param_6 + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_6 + 4)" ( (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined **)param_6 = puVar5;" (assignment_expression "*(undefined **)param_6 = puVar5" (pointer_expression "*(undefined **)param_6" * (cast_expression "(undefined **)param_6" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) }) (else_clause "else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }" else (compound_statement "{\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }" { (if_statement "if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }" if (parenthesized_expression "(*(code **)(*piVar23 + 0x14) == FUN_00089130)" ( (binary_expression "*(code **)(*piVar23 + 0x14) == FUN_00089130" (pointer_expression "*(code **)(*piVar23 + 0x14)" * (cast_expression "(code **)(*piVar23 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar23 + 0x14)" ( (binary_expression "*piVar23 + 0x14" (pointer_expression "*piVar23" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n      if (-1 < (char)piVar23[0x24]) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }" { (if_statement "if (-1 < (char)piVar23[0x24]) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }" if (parenthesized_expression "(-1 < (char)piVar23[0x24])" ( (binary_expression "-1 < (char)piVar23[0x24]" number_literal < (cast_expression "(char)piVar23[0x24]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar23[0x24]" identifier [ number_literal ]))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }" { comment comment (expression_statement "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);" (call_expression "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130)" identifier (argument_list "("../../gold/output.h",0x107b,"do_load_address",FUN_00089130)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_load_address"" " string_content ") , identifier ))) ;) })) (expression_statement "lVar24 = *(longlong *)(piVar23 + 0xd);" (assignment_expression "lVar24 = *(longlong *)(piVar23 + 0xd)" identifier = (pointer_expression "*(longlong *)(piVar23 + 0xd)" * (cast_expression "(longlong *)(piVar23 + 0xd)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar23 + 0xd)" ( (binary_expression "piVar23 + 0xd" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }" else (compound_statement "{\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }" { comment (expression_statement "lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);" (assignment_expression "lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23)" identifier = (call_expression "(**(code **)(*piVar23 + 0x14))(piVar23)" (parenthesized_expression "(**(code **)(*piVar23 + 0x14))" ( (pointer_expression "**(code **)(*piVar23 + 0x14)" * (pointer_expression "*(code **)(*piVar23 + 0x14)" * (cast_expression "(code **)(*piVar23 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar23 + 0x14)" ( (binary_expression "*piVar23 + 0x14" (pointer_expression "*piVar23" * identifier) + number_literal) ))))) )) (argument_list "(piVar23)" ( identifier )))) ;) (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" identifier = (pointer_expression "*(int **)(param_1 + 0x44)" * (cast_expression "(int **)(param_1 + 0x44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) }))) (expression_statement "*param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);" (assignment_expression "*param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" (pointer_expression "*param_6" * identifier) = (binary_expression "lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" identifier + (call_expression "CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" identifier (argument_list "(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" ( (binary_expression "param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11)" (subscript_expression "param_4[1]" identifier [ number_literal ]) + (parenthesized_expression "(-(uint)(*param_4 < puVar5) - iVar11)" ( (binary_expression "-(uint)(*param_4 < puVar5) - iVar11" (unary_expression "-(uint)(*param_4 < puVar5)" - (call_expression "(uint)(*param_4 < puVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*param_4 < puVar5)" ( (binary_expression "*param_4 < puVar5" (pointer_expression "*param_4" * identifier) < identifier) )))) - identifier) ))) , (binary_expression "(int)*param_4 - (int)puVar5" (cast_expression "(int)*param_4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_4" * identifier)) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (labeled_statement "LAB_0010ae3d:\n    pppppppiVar6 = local_58;" statement_identifier : (expression_statement "pppppppiVar6 = local_58;" (assignment_expression "pppppppiVar6 = local_58" identifier = identifier) ;)) (if_statement "if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;" if (parenthesized_expression "(piVar23 == (int *)0x0)" ( (binary_expression "piVar23 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x0010ae99;" goto statement_identifier ;)) }))) (expression_statement "*(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);" (assignment_expression "*(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5)" (pointer_expression "*(byte *)((int)piVar23 + 0x91)" * (cast_expression "(byte *)((int)piVar23 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar23 + 0x91)" ( (binary_expression "(int)piVar23 + 0x91" (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5)" (binary_expression "*(byte *)((int)piVar23 + 0x91) & 0xdf" (pointer_expression "*(byte *)((int)piVar23 + 0x91)" * (cast_expression "(byte *)((int)piVar23 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar23 + 0x91)" ( (binary_expression "(int)piVar23 + 0x91" (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (call_expression "(byte)(((byte)param_1[0x60] & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((byte)param_1[0x60] & 1) << 5)" ( (binary_expression "((byte)param_1[0x60] & 1) << 5" (parenthesized_expression "((byte)param_1[0x60] & 1)" ( (binary_expression "(byte)param_1[0x60] & 1" (cast_expression "(byte)param_1[0x60]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0x60]" identifier [ number_literal ])) & number_literal) )) << number_literal) ))))) ;) (expression_statement "pppppppiVar6 = local_58;" (assignment_expression "pppppppiVar6 = local_58" identifier = identifier) ;) (if_statement "if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }" if (parenthesized_expression "((*(byte *)((int)piVar23 + 0x92) & 8) != 0)" ( (binary_expression "(*(byte *)((int)piVar23 + 0x92) & 8) != 0" (parenthesized_expression "(*(byte *)((int)piVar23 + 0x92) & 8)" ( (binary_expression "*(byte *)((int)piVar23 + 0x92) & 8" (pointer_expression "*(byte *)((int)piVar23 + 0x92)" * (cast_expression "(byte *)((int)piVar23 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar23 + 0x92)" ( (binary_expression "(int)piVar23 + 0x92" (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }" { (expression_statement "*param_4 = puVar2;" (assignment_expression "*param_4 = puVar2" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "param_4[1] = puVar1;" (assignment_expression "param_4[1] = puVar1" (subscript_expression "param_4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int *)param_6 = (int)lVar7;" (assignment_expression "*(int *)param_6 = (int)lVar7" (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)param_6 + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)param_6 + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)param_6 + 4)" * (cast_expression "(undefined4 *)((int)param_6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_6 + 4)" ( (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (labeled_statement "joined_r0x0010ae99:\n  while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }" statement_identifier : (while_statement "while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }" while (parenthesized_expression "(pppppppiVar6 != local_7c)" ( (binary_expression "pppppppiVar6 != local_7c" identifier != identifier) )) (compound_statement "{\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }" { (expression_statement "pppppppiVar4 = (int *******)*pppppppiVar6;" (assignment_expression "pppppppiVar4 = (int *******)*pppppppiVar6" identifier = (cast_expression "(int *******)*pppppppiVar6" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar6" * identifier))) ;) (expression_statement "FUN_001807a0(pppppppiVar6);" (call_expression "FUN_001807a0(pppppppiVar6)" identifier (argument_list "(pppppppiVar6)" ( identifier ))) ;) (expression_statement "pppppppiVar6 = pppppppiVar4;" (assignment_expression "pppppppiVar6 = pppppppiVar4" identifier = identifier) ;) }))) (if_statement "if (local_4c != local_44) {\n    FUN_001807a0(local_4c);\n  }" if (parenthesized_expression "(local_4c != local_44)" ( (binary_expression "local_4c != local_44" identifier != identifier) )) (compound_statement "{\n    FUN_001807a0(local_4c);\n  }" { (expression_statement "FUN_001807a0(local_4c);" (call_expression "FUN_001807a0(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void set_section_addresses(Output_section_definition * this,\n   Symbol_table * symtab, Layout * layout, uint64_t * dot_value, uint64_t * dot_alignment, uint64_t\n   * load_address) */\n\nvoid __thiscall\ngold::Output_section_definition::set_section_addresses\n          (Output_section_definition *this,Symbol_table *symtab,Layout *layout,uint64_t *dot_value,\n          uint64_t *dot_alignment,uint64_t *load_address)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  _func_int_varargs *p_Var5;\n  int iVar6;\n  _List_node_base *p_Var7;\n  Output_section *pOVar8;\n  bool bVar9;\n  _List_node_base *p_Var10;\n  uint64_t uVar11;\n  uint64_t uVar12;\n  bool bVar13;\n  Script_sections *this_00;\n  Output_section *pOVar14;\n  char *pcVar15;\n  uint uVar16;\n  Expression *pEVar17;\n  uint uVar18;\n  Symbol *pSVar19;\n  int iVar20;\n  int extraout_EDX;\n  undefined4 extraout_EDX_00;\n  pointer ppOVar21;\n  uint uVar22;\n  pointer pcVar23;\n  uint64_t uVar24;\n  uint64_t uVar25;\n  uint64_t uVar26;\n  Output_section *local_98;\n  uint local_94;\n  uint local_90;\n  undefined8 local_8c;\n  undefined8 local_84;\n  Output_section *local_7c;\n  uint local_78;\n  Output_section *local_74;\n  Output_section *dot_section;\n  uint64_t address;\n  Input_section_list input_sections;\n  string fill;\n  Output_section *align_section;\n  \n  this_00 = &layout->script_options_->script_sections_;\n  uVar3 = *(undefined4 *)((int)dot_value + 4);\n  uVar11 = *dot_value;\n  uVar4 = *(undefined4 *)((int)load_address + 4);\n  uVar12 = *load_address;\n  pOVar14 = this->output_section_;\n  if (pOVar14 == (Output_section *)0x0) {\nLAB_0010a8a0:\n    if (this->address_ == (Expression *)0x0) {\n      local_98 = (Output_section *)\n                 Script_sections::find_memory_region\n                           (this_00,this,true,false,(Output_section_definition **)0x0);\n      if (local_98 == (Output_section *)0x0) {\n        address = *dot_value;\n      }\n      else {\n        pEVar17 = script_exp_integer(local_98->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n        address = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (Output_section *)\n               Script_sections::find_memory_region\n                         (this_00,this,true,true,(Output_section_definition **)0x0);\n    uVar24 = Expression::eval_with_dot\n                       (this->address_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)0x0,dot_alignment,false);\n    address = uVar24;\n    if (local_98 == (Output_section *)0x0) goto LAB_0010a6d4;\n    uVar26 = Expression::eval(*(Expression **)&(local_98->super_Output_data).field_0x1c,symtab,\n                              layout,false);\n    uVar25 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);\n    local_84._0_4_ = (uint)uVar26;\n    local_7c = (Output_section *)uVar24;\n    local_78 = (uint)(uVar24 >> 0x20);\n    local_84._4_4_ = (uint)(uVar26 >> 0x20);\n    if ((local_78 < local_84._4_4_ || local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84))\n       || (uVar16 = (uint)(uVar25 + uVar26 >> 0x20),\n          uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      pcVar15 = (char *)gettext(pcVar15);\n      gold_error(pcVar15,local_7c,local_78,pcVar23);\n    }\n    else {\n      uVar16 = local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +\n               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_);\n      if (local_78 < uVar16 ||\n          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)) {\n        pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n        pcVar15 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    *(uint *)&local_98->addralign_ = (int)local_7c - (uint)local_84;\n    pEVar17 = this->align_;\n    *(uint *)((int)&local_98->addralign_ + 4) =\n         (local_78 - local_84._4_4_) - (uint)(local_7c < (uint)local_84);\n    if (pEVar17 != (Expression *)0x0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[3];\n      if (p_Var5 != Output_section::do_addralign) {\n        iVar20 = (*p_Var5)(pOVar14);\n        local_8c = CONCAT44(extraout_EDX_00,iVar20);\n        goto LAB_0010a762;\n      }\n      local_8c = pOVar14->addralign_;\n      local_7c = (Output_section *)this->subalign_;\n      if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = (Output_section *)this->subalign_;\n    local_8c = 0;\n    if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n    local_94 = (uint)address;\n    local_90 = address._4_4_;\n    local_84 = 0;\n    *(uint *)dot_value = (uint)address;\n    *(uint *)((int)dot_value + 4) = address._4_4_;\n    local_7c = (Output_section *)0x0;\n  }\n  else {\n    if ((pOVar14->field_0x91 & 2) != 0) {\n      Output_section::sort_attached_input_sections(pOVar14);\n      pOVar14 = this->output_section_;\n      if (pOVar14 == (Output_section *)0x0) goto LAB_0010a8a0;\n    }\n    if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    bVar13 = General_options::section_start(parameters->options_,pOVar14->name_,&address);\n    if (!bVar13) goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (Output_section *)0x0;\nLAB_0010a6de:\n    pEVar17 = this->align_;\n    if (pEVar17 == (Expression *)0x0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    local_8c = Expression::eval_with_dot\n                         (pEVar17,symtab,layout,true,*dot_value,(Output_section *)0x0,&align_section\n                          ,(uint64_t *)0x0,false);\n    if (align_section != (Output_section *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("alignment of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      local_8c._4_4_ = (uint)(local_8c >> 0x20);\n      *(uint *)&pOVar14->addralign_ = (uint)local_8c;\n      *(uint *)((int)&pOVar14->addralign_ + 4) = local_8c._4_4_;\n    }\nLAB_0010a762:\n    local_7c = (Output_section *)this->subalign_;\n    if (local_7c == (Output_section *)0x0) {\nLAB_0010a9e6:\n      local_7c = this->output_section_;\n      local_90 = address._4_4_;\n      local_94 = (uint)address;\n      if (local_8c._4_4_ != 0 || (uint)local_8c != 0) {\n        local_84 = 0;\n        goto LAB_0010a837;\n      }\n      local_84 = local_8c;\n    }\n    else {\nLAB_0010a770:\n      uVar24 = Expression::eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false);\n      if (align_section != (Output_section *)0x0) {\n        pcVar23 = (this->name_)._M_dataplus._M_p;\n        pcVar15 = (char *)gettext("subalign of section %s is not absolute");\n        gold_warning(pcVar15,pcVar23);\n      }\n      local_84._4_4_ = (uint)(uVar24 >> 0x20);\n      local_84._0_4_ = (uint)uVar24;\n      bVar13 = local_84._4_4_ == 0;\n      bVar9 = (uint)local_84 == 0;\n      local_84 = uVar24;\n      if (bVar13 && bVar9) {\n        local_84 = 1;\n      }\n      local_7c = this->output_section_;\n      if ((local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0)) {\n        *(uint *)&local_7c->addralign_ = (uint)local_84;\n        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;\n        local_8c = local_84;\n      }\n      local_94 = (uint)address;\n      local_90 = address._4_4_;\nLAB_0010a837:\n      bVar13 = local_94 != 0;\n      uVar16 = local_94 - 1;\n      local_94 = uVar16 + (uint)local_8c & -(uint)local_8c;\n      local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0));\n    }\n    *(uint *)dot_value = local_94;\n    address = CONCAT44(local_90,local_94);\n    *(uint *)((int)dot_value + 4) = local_90;\n    if ((local_7c != (Output_section *)0x0) &&\n       (((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0)))) {\n      bVar2 = (local_7c->super_Output_data).field_0x1c;\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(uint *)&(local_7c->super_Output_data).address_ = local_94;\n      *(uint *)((int)&(local_7c->super_Output_data).address_ + 4) = local_90;\n      (local_7c->super_Output_data).field_0x1c = bVar2 | 1;\n    }\n  }\n  *(uint *)&this->evaluated_address_ = local_94;\n  *(uint *)((int)&this->evaluated_address_ + 4) = local_90;\n  *(uint *)&this->evaluated_addralign_ = (uint)local_8c;\n  pEVar17 = this->load_address_;\n  *(uint *)((int)&this->evaluated_addralign_ + 4) = local_8c._4_4_;\n  if (pEVar17 == (Expression *)0x0) {\n    local_74 = (Output_section *)\n               Script_sections::find_memory_region\n                         (this_00,this,false,false,(Output_section_definition **)&align_section);\n    pOVar14 = (Output_section *)0x0;\n    uVar24 = address;\n    if (local_74 != (Output_section *)0x0) {\n      if (align_section == (Output_section *)0x0) {\n        pEVar17 = script_exp_integer(local_74->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n        uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      else {\n        local_74 = pOVar14;\n        if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }\n      }\n      pOVar8 = this->output_section_;\n      pOVar14 = local_74;\n      if (pOVar8 != (Output_section *)0x0) {\n        pOVar8->load_address_ = uVar24;\n        pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80;\n      }\n    }\n  }\n  else {\n    uVar24 = Expression::eval_with_dot\n                       (pEVar17,symtab,layout,true,*dot_value,local_7c,(Output_section **)0x0,\n                        (uint64_t *)0x0,false);\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x80;\n      pOVar14->load_address_ = uVar24;\n      local_74 = (Output_section *)0x0;\n      pOVar14 = local_74;\n    }\n  }\n  local_74 = pOVar14;\n  paVar1 = &fill.field_2;\n  this->evaluated_load_address_ = uVar24;\n  fill._M_string_length = 0;\n  fill.field_2._M_local_buf[0] = '\0';\n  fill._M_dataplus._M_p = (pointer)paVar1;\n  if (this->fill_ != (Expression *)0x0) {\n                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */\n    uVar24 = Expression::eval_with_dot\n                       (this->fill_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)&input_sections,(uint64_t *)0x0,false);\n    uVar16 = (uint)uVar24;\n    if (input_sections.\n        super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("fill of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }\n    align_section =\n         (Output_section *)\n         (uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18);\n    std::string::_M_replace((string *)&fill,0,fill._M_string_length,(char *)&align_section,4);\n  }\n  pOVar14 = this->output_section_;\n  input_sections.\n  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node._M_size = 0;\n  input_sections.\n  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)&input_sections;\n  input_sections.\n  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)&input_sections;\n  if (pOVar14 != (Output_section *)0x0) {\n                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */\n    uVar24 = Output_section::get_input_sections\n                       (pOVar14,address,&fill,\n                        (list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                         *)&input_sections);\n    address = uVar24 + address;\n    *dot_value = address;\n    pOVar14 = this->output_section_;\n  }\n  ppOVar21 = (this->elements_).\n             super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n             ._M_impl._M_start;\n  dot_section = pOVar14;\n  if (ppOVar21 !=\n      (this->elements_).\n      super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n      ._M_impl._M_finish) {\n    while( true ) {\n      (*(*ppOVar21)->_vptr_Output_section_element[6])\n                (*ppOVar21,symtab,layout,pOVar14,(uint)local_84,local_84._4_4_,dot_value,\n                 dot_alignment,&dot_section,&fill,(_List_node_base *)&input_sections);\n      ppOVar21 = ppOVar21 + 1;\n      if ((this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl._M_finish == ppOVar21) break;\n      pOVar14 = this->output_section_;\n    }\n  }\n  if (input_sections.\n      super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)&input_sections) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */\n    do_gold_unreachable("../../gold/script-sections.cc",0xa67,"set_section_addresses");\n  }\n  if (local_98 != (Output_section *)0x0) {\n    pEVar17 = script_exp_integer(local_98->addralign_);\n    pEVar17 = script_exp_binary_add\n                        (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n    uVar24 = *dot_value;\n    iVar20 = *(int *)((int)dot_value + 4);\n    uVar26 = Expression::eval(pEVar17,symtab,layout,false);\n    pcVar23 = (this->name_)._M_dataplus._M_p;\n    align_section = (Output_section *)&stack0xffffffd4;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);\n    uVar16 = (uint)uVar24 + (int)local_98->addralign_;\n    uVar18 = uVar16 - (uint)uVar26;\n    uVar16 = ((iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)) - (int)(uVar26 >> 0x20)) -\n             (uint)(uVar16 < (uint)uVar26);\n    *(uint *)&local_98->addralign_ = uVar18;\n    *(uint *)((int)&local_98->addralign_ + 4) = uVar16;\n                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */\n    uVar24 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);\n    pOVar14 = align_section;\n    uVar22 = (uint)(uVar24 >> 0x20);\n    if (uVar22 < uVar16 || uVar22 - uVar16 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }\n    if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }\n  }\n  if ((local_74 != (Output_section *)0x0) && (local_98 != local_74)) {\n    uVar24 = *dot_value;\n    iVar20 = *(int *)((int)dot_value + 4);\n    pcVar23 = (this->name_)._M_dataplus._M_p;\n    uVar16 = (uint)uVar24 - local_94;\n    align_section = (Output_section *)&stack0xffffffd4;\n                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);\n    uVar18 = uVar16 + (int)local_74->addralign_;\n    uVar22 = ((iVar20 - local_90) - (uint)((uint)uVar24 < local_94)) +\n             *(int *)((int)&local_74->addralign_ + 4) +\n             (uint)CARRY4(uVar16,(uint)local_74->addralign_);\n    *(uint *)&local_74->addralign_ = uVar18;\n    *(uint *)((int)&local_74->addralign_ + 4) = uVar22;\n                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */\n    uVar24 = Expression::eval((Expression *)local_74->name_,symtab,layout,false);\n    pOVar14 = align_section;\n    uVar16 = (uint)(uVar24 >> 0x20);\n    if (uVar16 < uVar22 || uVar16 - uVar22 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }\n    if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }\n  }\n  pOVar14 = this->output_section_;\n  if (pOVar14 == (Output_section *)0x0) {\n    uVar11 = *dot_value;\n    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);\n    *(int *)load_address = (int)uVar11;\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;\n    goto joined_r0x0010ae99;\n  }\n  if (this->load_address_ == (Expression *)0x0) {\n    if (local_74 != (Output_section *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      pEVar17 = script_exp_integer(local_74->addralign_);\n      pEVar17 = script_exp_binary_add\n                          (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n      uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      pOVar14 = this->output_section_;\n      *load_address = uVar24;\n      goto LAB_0010ae3d;\n    }\n    uVar24 = *dot_value;\n    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);\n    *(int *)load_address = (int)uVar24;\n  }\n  else {\n    p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[5];\n    if (p_Var5 == Output_section::do_load_address) {\n      if (-1 < (char)pOVar14->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n      }\n      uVar16 = (uint)pOVar14->load_address_;\n      iVar20 = *(int *)((int)&pOVar14->load_address_ + 4);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      uVar16 = (*p_Var5)(pOVar14);\n      pOVar14 = this->output_section_;\n      iVar20 = extraout_EDX;\n    }\n    uVar24 = *dot_value;\n    iVar6 = *(int *)((int)dot_value + 4);\n    uVar18 = (uint)uVar24 - local_94;\n    *(uint *)load_address = uVar16 + uVar18;\n    *(uint *)((int)load_address + 4) =\n         iVar20 + ((iVar6 - local_90) - (uint)((uint)uVar24 < local_94)) +\n         (uint)CARRY4(uVar16,uVar18);\nLAB_0010ae3d:\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;\n    if (pOVar14 == (Output_section *)0x0) goto joined_r0x0010ae99;\n  }\n  pOVar14->field_0x91 = pOVar14->field_0x91 & 0xdf | (byte)((this->is_relro_ & 1) << 5);\n  p_Var10 = input_sections.\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_node.super__List_node_base._M_next;\n  if ((pOVar14->field_0x92 & 8) != 0) {\n    *(int *)dot_value = (int)uVar11;\n    *(undefined4 *)((int)dot_value + 4) = uVar3;\n    *(int *)load_address = (int)uVar12;\n    *(undefined4 *)((int)load_address + 4) = uVar4;\n  }\njoined_r0x0010ae99:\n  while (p_Var10 != (_List_node_base *)&input_sections) {\n    p_Var7 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n    operator_delete(p_Var10);\n    p_Var10 = p_Var7;\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)fill._M_dataplus._M_p != paVar1) {\n    operator_delete(fill._M_dataplus._M_p);\n  }\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Output_section_definition::set_section_addresses\n          (Output_section_definition *this,Symbol_table *symtab,Layout *layout,uint64_t *dot_value,\n          uint64_t *dot_alignment,uint64_t *load_address)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  _func_int_varargs *p_Var5;\n  int iVar6;\n  _List_node_base *p_Var7;\n  Output_section *pOVar8;\n  bool bVar9;\n  _List_node_base *p_Var10;\n  uint64_t uVar11;\n  uint64_t uVar12;\n  bool bVar13;\n  Script_sections *this_00;\n  Output_section *pOVar14;\n  char *pcVar15;\n  uint uVar16;\n  Expression *pEVar17;\n  uint uVar18;\n  Symbol *pSVar19;\n  int iVar20;\n  int extraout_EDX;\n  undefined4 extraout_EDX_00;\n  pointer ppOVar21;\n  uint uVar22;\n  pointer pcVar23;\n  uint64_t uVar24;\n  uint64_t uVar25;\n  uint64_t uVar26;\n  Output_section *local_98;\n  uint local_94;\n  uint local_90;\n  undefined8 local_8c;\n  undefined8 local_84;\n  Output_section *local_7c;\n  uint local_78;\n  Output_section *local_74;\n  Output_section *dot_section;\n  uint64_t address;\n  Input_section_list input_sections;\n  string fill;\n  Output_section *align_section;\n  \n  this_00 = &layout->script_options_->script_sections_;\n  uVar3 = *(undefined4 *)((int)dot_value + 4);\n  uVar11 = *dot_value;\n  uVar4 = *(undefined4 *)((int)load_address + 4);\n  uVar12 = *load_address;\n  pOVar14 = this->output_section_;\n  if (pOVar14 == (Output_section *)0x0) {\nLAB_0010a8a0:\n    if (this->address_ == (Expression *)0x0) {\n      local_98 = (Output_section *)\n                 Script_sections::find_memory_region\n                           (this_00,this,true,false,(Output_section_definition **)0x0);\n      if (local_98 == (Output_section *)0x0) {\n        address = *dot_value;\n      }\n      else {\n        pEVar17 = script_exp_integer(local_98->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n        address = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (Output_section *)\n               Script_sections::find_memory_region\n                         (this_00,this,true,true,(Output_section_definition **)0x0);\n    uVar24 = Expression::eval_with_dot\n                       (this->address_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)0x0,dot_alignment,false);\n    address = uVar24;\n    if (local_98 == (Output_section *)0x0) goto LAB_0010a6d4;\n    uVar26 = Expression::eval(*(Expression **)&(local_98->super_Output_data).field_0x1c,symtab,\n                              layout,false);\n    uVar25 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);\n    local_84._0_4_ = (uint)uVar26;\n    local_7c = (Output_section *)uVar24;\n    local_78 = (uint)(uVar24 >> 0x20);\n    local_84._4_4_ = (uint)(uVar26 >> 0x20);\n    if ((local_78 < local_84._4_4_ || local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84))\n       || (uVar16 = (uint)(uVar25 + uVar26 >> 0x20),\n          uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      pcVar15 = (char *)gettext(pcVar15);\n      gold_error(pcVar15,local_7c,local_78,pcVar23);\n    }\n    else {\n      uVar16 = local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +\n               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_);\n      if (local_78 < uVar16 ||\n          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)) {\n        pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n        pcVar15 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    *(uint *)&local_98->addralign_ = (int)local_7c - (uint)local_84;\n    pEVar17 = this->align_;\n    *(uint *)((int)&local_98->addralign_ + 4) =\n         (local_78 - local_84._4_4_) - (uint)(local_7c < (uint)local_84);\n    if (pEVar17 != (Expression *)0x0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[3];\n      if (p_Var5 != Output_section::do_addralign) {\n        iVar20 = (*p_Var5)(pOVar14);\n        local_8c = CONCAT44(extraout_EDX_00,iVar20);\n        goto LAB_0010a762;\n      }\n      local_8c = pOVar14->addralign_;\n      local_7c = (Output_section *)this->subalign_;\n      if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = (Output_section *)this->subalign_;\n    local_8c = 0;\n    if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n    local_94 = (uint)address;\n    local_90 = address._4_4_;\n    local_84 = 0;\n    *(uint *)dot_value = (uint)address;\n    *(uint *)((int)dot_value + 4) = address._4_4_;\n    local_7c = (Output_section *)0x0;\n  }\n  else {\n    if ((pOVar14->field_0x91 & 2) != 0) {\n      Output_section::sort_attached_input_sections(pOVar14);\n      pOVar14 = this->output_section_;\n      if (pOVar14 == (Output_section *)0x0) goto LAB_0010a8a0;\n    }\n    if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    bVar13 = General_options::section_start(parameters->options_,pOVar14->name_,&address);\n    if (!bVar13) goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (Output_section *)0x0;\nLAB_0010a6de:\n    pEVar17 = this->align_;\n    if (pEVar17 == (Expression *)0x0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    local_8c = Expression::eval_with_dot\n                         (pEVar17,symtab,layout,true,*dot_value,(Output_section *)0x0,&align_section\n                          ,(uint64_t *)0x0,false);\n    if (align_section != (Output_section *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("alignment of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      local_8c._4_4_ = (uint)(local_8c >> 0x20);\n      *(uint *)&pOVar14->addralign_ = (uint)local_8c;\n      *(uint *)((int)&pOVar14->addralign_ + 4) = local_8c._4_4_;\n    }\nLAB_0010a762:\n    local_7c = (Output_section *)this->subalign_;\n    if (local_7c == (Output_section *)0x0) {\nLAB_0010a9e6:\n      local_7c = this->output_section_;\n      local_90 = address._4_4_;\n      local_94 = (uint)address;\n      if (local_8c._4_4_ != 0 || (uint)local_8c != 0) {\n        local_84 = 0;\n        goto LAB_0010a837;\n      }\n      local_84 = local_8c;\n    }\n    else {\nLAB_0010a770:\n      uVar24 = Expression::eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false);\n      if (align_section != (Output_section *)0x0) {\n        pcVar23 = (this->name_)._M_dataplus._M_p;\n        pcVar15 = (char *)gettext("subalign of section %s is not absolute");\n        gold_warning(pcVar15,pcVar23);\n      }\n      local_84._4_4_ = (uint)(uVar24 >> 0x20);\n      local_84._0_4_ = (uint)uVar24;\n      bVar13 = local_84._4_4_ == 0;\n      bVar9 = (uint)local_84 == 0;\n      local_84 = uVar24;\n      if (bVar13 && bVar9) {\n        local_84 = 1;\n      }\n      local_7c = this->output_section_;\n      if ((local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0)) {\n        *(uint *)&local_7c->addralign_ = (uint)local_84;\n        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;\n        local_8c = local_84;\n      }\n      local_94 = (uint)address;\n      local_90 = address._4_4_;\nLAB_0010a837:\n      bVar13 = local_94 != 0;\n      uVar16 = local_94 - 1;\n      local_94 = uVar16 + (uint)local_8c & -(uint)local_8c;\n      local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0));\n    }\n    *(uint *)dot_value = local_94;\n    address = CONCAT44(local_90,local_94);\n    *(uint *)((int)dot_value + 4) = local_90;\n    if ((local_7c != (Output_section *)0x0) &&\n       (((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0)))) {\n      bVar2 = (local_7c->super_Output_data).field_0x1c;\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(uint *)&(local_7c->super_Output_data).address_ = local_94;\n      *(uint *)((int)&(local_7c->super_Output_data).address_ + 4) = local_90;\n      (local_7c->super_Output_data).field_0x1c = bVar2 | 1;\n    }\n  }\n  *(uint *)&this->evaluated_address_ = local_94;\n  *(uint *)((int)&this->evaluated_address_ + 4) = local_90;\n  *(uint *)&this->evaluated_addralign_ = (uint)local_8c;\n  pEVar17 = this->load_address_;\n  *(uint *)((int)&this->evaluated_addralign_ + 4) = local_8c._4_4_;\n  if (pEVar17 == (Expression *)0x0) {\n    local_74 = (Output_section *)\n               Script_sections::find_memory_region\n                         (this_00,this,false,false,(Output_section_definition **)&align_section);\n    pOVar14 = (Output_section *)0x0;\n    uVar24 = address;\n    if (local_74 != (Output_section *)0x0) {\n      if (align_section == (Output_section *)0x0) {\n        pEVar17 = script_exp_integer(local_74->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n        uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      else {\n        local_74 = pOVar14;\n        if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }\n      }\n      pOVar8 = this->output_section_;\n      pOVar14 = local_74;\n      if (pOVar8 != (Output_section *)0x0) {\n        pOVar8->load_address_ = uVar24;\n        pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80;\n      }\n    }\n  }\n  else {\n    uVar24 = Expression::eval_with_dot\n                       (pEVar17,symtab,layout,true,*dot_value,local_7c,(Output_section **)0x0,\n                        (uint64_t *)0x0,false);\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x80;\n      pOVar14->load_address_ = uVar24;\n      local_74 = (Output_section *)0x0;\n      pOVar14 = local_74;\n    }\n  }\n  local_74 = pOVar14;\n  paVar1 = &fill.field_2;\n  this->evaluated_load_address_ = uVar24;\n  fill._M_string_length = 0;\n  fill.field_2._M_local_buf[0] = '\0';\n  fill._M_dataplus._M_p = (pointer)paVar1;\n  if (this->fill_ != (Expression *)0x0) {\n                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */\n    uVar24 = Expression::eval_with_dot\n                       (this->fill_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)&input_sections,(uint64_t *)0x0,false);\n    uVar16 = (uint)uVar24;\n    if (input_sections.\n        super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("fill of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }\n    align_section =\n         (Output_section *)\n         (uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18);\n    std::string::_M_replace((string *)&fill,0,fill._M_string_length,(char *)&align_section,4);\n  }\n  pOVar14 = this->output_section_;\n  input_sections.\n  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node._M_size = 0;\n  input_sections.\n  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)&input_sections;\n  input_sections.\n  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)&input_sections;\n  if (pOVar14 != (Output_section *)0x0) {\n                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */\n    uVar24 = Output_section::get_input_sections\n                       (pOVar14,address,&fill,\n                        (list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                         *)&input_sections);\n    address = uVar24 + address;\n    *dot_value = address;\n    pOVar14 = this->output_section_;\n  }\n  ppOVar21 = (this->elements_).\n             super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n             ._M_impl._M_start;\n  dot_section = pOVar14;\n  if (ppOVar21 !=\n      (this->elements_).\n      super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n      ._M_impl._M_finish) {\n    while( true ) {\n      (*(*ppOVar21)->_vptr_Output_section_element[6])\n                (*ppOVar21,symtab,layout,pOVar14,(uint)local_84,local_84._4_4_,dot_value,\n                 dot_alignment,&dot_section,&fill,(_List_node_base *)&input_sections);\n      ppOVar21 = ppOVar21 + 1;\n      if ((this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl._M_finish == ppOVar21) break;\n      pOVar14 = this->output_section_;\n    }\n  }\n  if (input_sections.\n      super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)&input_sections) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */\n    do_gold_unreachable("../../gold/script-sections.cc",0xa67,"set_section_addresses");\n  }\n  if (local_98 != (Output_section *)0x0) {\n    pEVar17 = script_exp_integer(local_98->addralign_);\n    pEVar17 = script_exp_binary_add\n                        (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n    uVar24 = *dot_value;\n    iVar20 = *(int *)((int)dot_value + 4);\n    uVar26 = Expression::eval(pEVar17,symtab,layout,false);\n    pcVar23 = (this->name_)._M_dataplus._M_p;\n    align_section = (Output_section *)&stack0xffffffd4;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);\n    uVar16 = (uint)uVar24 + (int)local_98->addralign_;\n    uVar18 = uVar16 - (uint)uVar26;\n    uVar16 = ((iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)) - (int)(uVar26 >> 0x20)) -\n             (uint)(uVar16 < (uint)uVar26);\n    *(uint *)&local_98->addralign_ = uVar18;\n    *(uint *)((int)&local_98->addralign_ + 4) = uVar16;\n                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */\n    uVar24 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);\n    pOVar14 = align_section;\n    uVar22 = (uint)(uVar24 >> 0x20);\n    if (uVar22 < uVar16 || uVar22 - uVar16 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }\n    if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }\n  }\n  if ((local_74 != (Output_section *)0x0) && (local_98 != local_74)) {\n    uVar24 = *dot_value;\n    iVar20 = *(int *)((int)dot_value + 4);\n    pcVar23 = (this->name_)._M_dataplus._M_p;\n    uVar16 = (uint)uVar24 - local_94;\n    align_section = (Output_section *)&stack0xffffffd4;\n                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);\n    uVar18 = uVar16 + (int)local_74->addralign_;\n    uVar22 = ((iVar20 - local_90) - (uint)((uint)uVar24 < local_94)) +\n             *(int *)((int)&local_74->addralign_ + 4) +\n             (uint)CARRY4(uVar16,(uint)local_74->addralign_);\n    *(uint *)&local_74->addralign_ = uVar18;\n    *(uint *)((int)&local_74->addralign_ + 4) = uVar22;\n                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */\n    uVar24 = Expression::eval((Expression *)local_74->name_,symtab,layout,false);\n    pOVar14 = align_section;\n    uVar16 = (uint)(uVar24 >> 0x20);\n    if (uVar16 < uVar22 || uVar16 - uVar22 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }\n    if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }\n  }\n  pOVar14 = this->output_section_;\n  if (pOVar14 == (Output_section *)0x0) {\n    uVar11 = *dot_value;\n    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);\n    *(int *)load_address = (int)uVar11;\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;\n    goto joined_r0x0010ae99;\n  }\n  if (this->load_address_ == (Expression *)0x0) {\n    if (local_74 != (Output_section *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      pEVar17 = script_exp_integer(local_74->addralign_);\n      pEVar17 = script_exp_binary_add\n                          (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n      uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      pOVar14 = this->output_section_;\n      *load_address = uVar24;\n      goto LAB_0010ae3d;\n    }\n    uVar24 = *dot_value;\n    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);\n    *(int *)load_address = (int)uVar24;\n  }\n  else {\n    p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[5];\n    if (p_Var5 == Output_section::do_load_address) {\n      if (-1 < (char)pOVar14->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n      }\n      uVar16 = (uint)pOVar14->load_address_;\n      iVar20 = *(int *)((int)&pOVar14->load_address_ + 4);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      uVar16 = (*p_Var5)(pOVar14);\n      pOVar14 = this->output_section_;\n      iVar20 = extraout_EDX;\n    }\n    uVar24 = *dot_value;\n    iVar6 = *(int *)((int)dot_value + 4);\n    uVar18 = (uint)uVar24 - local_94;\n    *(uint *)load_address = uVar16 + uVar18;\n    *(uint *)((int)load_address + 4) =\n         iVar20 + ((iVar6 - local_90) - (uint)((uint)uVar24 < local_94)) +\n         (uint)CARRY4(uVar16,uVar18);\nLAB_0010ae3d:\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;\n    if (pOVar14 == (Output_section *)0x0) goto joined_r0x0010ae99;\n  }\n  pOVar14->field_0x91 = pOVar14->field_0x91 & 0xdf | (byte)((this->is_relro_ & 1) << 5);\n  p_Var10 = input_sections.\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_node.super__List_node_base._M_next;\n  if ((pOVar14->field_0x92 & 8) != 0) {\n    *(int *)dot_value = (int)uVar11;\n    *(undefined4 *)((int)dot_value + 4) = uVar3;\n    *(int *)load_address = (int)uVar12;\n    *(undefined4 *)((int)load_address + 4) = uVar4;\n  }\njoined_r0x0010ae99:\n  while (p_Var10 != (_List_node_base *)&input_sections) {\n    p_Var7 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n    operator_delete(p_Var10);\n    p_Var10 = p_Var7;\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)fill._M_dataplus._M_p != paVar1) {\n    operator_delete(fill._M_dataplus._M_p);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_section_definition::" identifier : : identifier : :) (function_declarator "set_section_addresses\n          (Output_section_definition *this,Symbol_table *symtab,Layout *layout,uint64_t *dot_value,\n          uint64_t *dot_alignment,uint64_t *load_address)" identifier (parameter_list "(Output_section_definition *this,Symbol_table *symtab,Layout *layout,uint64_t *dot_value,\n          uint64_t *dot_alignment,uint64_t *load_address)" ( (parameter_declaration "Output_section_definition *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "uint64_t *dot_value" primitive_type (pointer_declarator "*dot_value" * identifier)) , (parameter_declaration "uint64_t *dot_alignment" primitive_type (pointer_declarator "*dot_alignment" * identifier)) , (parameter_declaration "uint64_t *load_address" primitive_type (pointer_declarator "*load_address" * identifier)) ))) (compound_statement "{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  _func_int_varargs *p_Var5;\n  int iVar6;\n  _List_node_base *p_Var7;\n  Output_section *pOVar8;\n  bool bVar9;\n  _List_node_base *p_Var10;\n  uint64_t uVar11;\n  uint64_t uVar12;\n  bool bVar13;\n  Script_sections *this_00;\n  Output_section *pOVar14;\n  char *pcVar15;\n  uint uVar16;\n  Expression *pEVar17;\n  uint uVar18;\n  Symbol *pSVar19;\n  int iVar20;\n  int extraout_EDX;\n  undefined4 extraout_EDX_00;\n  pointer ppOVar21;\n  uint uVar22;\n  pointer pcVar23;\n  uint64_t uVar24;\n  uint64_t uVar25;\n  uint64_t uVar26;\n  Output_section *local_98;\n  uint local_94;\n  uint local_90;\n  undefined8 local_8c;\n  undefined8 local_84;\n  Output_section *local_7c;\n  uint local_78;\n  Output_section *local_74;\n  Output_section *dot_section;\n  uint64_t address;\n  Input_section_list input_sections;\n  string fill;\n  Output_section *align_section;\n  \n  this_00 = &layout->script_options_->script_sections_;\n  uVar3 = *(undefined4 *)((int)dot_value + 4);\n  uVar11 = *dot_value;\n  uVar4 = *(undefined4 *)((int)load_address + 4);\n  uVar12 = *load_address;\n  pOVar14 = this->output_section_;\n  if (pOVar14 == (Output_section *)0x0) {\nLAB_0010a8a0:\n    if (this->address_ == (Expression *)0x0) {\n      local_98 = (Output_section *)\n                 Script_sections::find_memory_region\n                           (this_00,this,true,false,(Output_section_definition **)0x0);\n      if (local_98 == (Output_section *)0x0) {\n        address = *dot_value;\n      }\n      else {\n        pEVar17 = script_exp_integer(local_98->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n        address = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (Output_section *)\n               Script_sections::find_memory_region\n                         (this_00,this,true,true,(Output_section_definition **)0x0);\n    uVar24 = Expression::eval_with_dot\n                       (this->address_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)0x0,dot_alignment,false);\n    address = uVar24;\n    if (local_98 == (Output_section *)0x0) goto LAB_0010a6d4;\n    uVar26 = Expression::eval(*(Expression **)&(local_98->super_Output_data).field_0x1c,symtab,\n                              layout,false);\n    uVar25 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);\n    local_84._0_4_ = (uint)uVar26;\n    local_7c = (Output_section *)uVar24;\n    local_78 = (uint)(uVar24 >> 0x20);\n    local_84._4_4_ = (uint)(uVar26 >> 0x20);\n    if ((local_78 < local_84._4_4_ || local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84))\n       || (uVar16 = (uint)(uVar25 + uVar26 >> 0x20),\n          uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      pcVar15 = (char *)gettext(pcVar15);\n      gold_error(pcVar15,local_7c,local_78,pcVar23);\n    }\n    else {\n      uVar16 = local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +\n               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_);\n      if (local_78 < uVar16 ||\n          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)) {\n        pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n        pcVar15 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    *(uint *)&local_98->addralign_ = (int)local_7c - (uint)local_84;\n    pEVar17 = this->align_;\n    *(uint *)((int)&local_98->addralign_ + 4) =\n         (local_78 - local_84._4_4_) - (uint)(local_7c < (uint)local_84);\n    if (pEVar17 != (Expression *)0x0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[3];\n      if (p_Var5 != Output_section::do_addralign) {\n        iVar20 = (*p_Var5)(pOVar14);\n        local_8c = CONCAT44(extraout_EDX_00,iVar20);\n        goto LAB_0010a762;\n      }\n      local_8c = pOVar14->addralign_;\n      local_7c = (Output_section *)this->subalign_;\n      if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = (Output_section *)this->subalign_;\n    local_8c = 0;\n    if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n    local_94 = (uint)address;\n    local_90 = address._4_4_;\n    local_84 = 0;\n    *(uint *)dot_value = (uint)address;\n    *(uint *)((int)dot_value + 4) = address._4_4_;\n    local_7c = (Output_section *)0x0;\n  }\n  else {\n    if ((pOVar14->field_0x91 & 2) != 0) {\n      Output_section::sort_attached_input_sections(pOVar14);\n      pOVar14 = this->output_section_;\n      if (pOVar14 == (Output_section *)0x0) goto LAB_0010a8a0;\n    }\n    if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    bVar13 = General_options::section_start(parameters->options_,pOVar14->name_,&address);\n    if (!bVar13) goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (Output_section *)0x0;\nLAB_0010a6de:\n    pEVar17 = this->align_;\n    if (pEVar17 == (Expression *)0x0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    local_8c = Expression::eval_with_dot\n                         (pEVar17,symtab,layout,true,*dot_value,(Output_section *)0x0,&align_section\n                          ,(uint64_t *)0x0,false);\n    if (align_section != (Output_section *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("alignment of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      local_8c._4_4_ = (uint)(local_8c >> 0x20);\n      *(uint *)&pOVar14->addralign_ = (uint)local_8c;\n      *(uint *)((int)&pOVar14->addralign_ + 4) = local_8c._4_4_;\n    }\nLAB_0010a762:\n    local_7c = (Output_section *)this->subalign_;\n    if (local_7c == (Output_section *)0x0) {\nLAB_0010a9e6:\n      local_7c = this->output_section_;\n      local_90 = address._4_4_;\n      local_94 = (uint)address;\n      if (local_8c._4_4_ != 0 || (uint)local_8c != 0) {\n        local_84 = 0;\n        goto LAB_0010a837;\n      }\n      local_84 = local_8c;\n    }\n    else {\nLAB_0010a770:\n      uVar24 = Expression::eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false);\n      if (align_section != (Output_section *)0x0) {\n        pcVar23 = (this->name_)._M_dataplus._M_p;\n        pcVar15 = (char *)gettext("subalign of section %s is not absolute");\n        gold_warning(pcVar15,pcVar23);\n      }\n      local_84._4_4_ = (uint)(uVar24 >> 0x20);\n      local_84._0_4_ = (uint)uVar24;\n      bVar13 = local_84._4_4_ == 0;\n      bVar9 = (uint)local_84 == 0;\n      local_84 = uVar24;\n      if (bVar13 && bVar9) {\n        local_84 = 1;\n      }\n      local_7c = this->output_section_;\n      if ((local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0)) {\n        *(uint *)&local_7c->addralign_ = (uint)local_84;\n        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;\n        local_8c = local_84;\n      }\n      local_94 = (uint)address;\n      local_90 = address._4_4_;\nLAB_0010a837:\n      bVar13 = local_94 != 0;\n      uVar16 = local_94 - 1;\n      local_94 = uVar16 + (uint)local_8c & -(uint)local_8c;\n      local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0));\n    }\n    *(uint *)dot_value = local_94;\n    address = CONCAT44(local_90,local_94);\n    *(uint *)((int)dot_value + 4) = local_90;\n    if ((local_7c != (Output_section *)0x0) &&\n       (((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0)))) {\n      bVar2 = (local_7c->super_Output_data).field_0x1c;\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(uint *)&(local_7c->super_Output_data).address_ = local_94;\n      *(uint *)((int)&(local_7c->super_Output_data).address_ + 4) = local_90;\n      (local_7c->super_Output_data).field_0x1c = bVar2 | 1;\n    }\n  }\n  *(uint *)&this->evaluated_address_ = local_94;\n  *(uint *)((int)&this->evaluated_address_ + 4) = local_90;\n  *(uint *)&this->evaluated_addralign_ = (uint)local_8c;\n  pEVar17 = this->load_address_;\n  *(uint *)((int)&this->evaluated_addralign_ + 4) = local_8c._4_4_;\n  if (pEVar17 == (Expression *)0x0) {\n    local_74 = (Output_section *)\n               Script_sections::find_memory_region\n                         (this_00,this,false,false,(Output_section_definition **)&align_section);\n    pOVar14 = (Output_section *)0x0;\n    uVar24 = address;\n    if (local_74 != (Output_section *)0x0) {\n      if (align_section == (Output_section *)0x0) {\n        pEVar17 = script_exp_integer(local_74->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n        uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      else {\n        local_74 = pOVar14;\n        if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }\n      }\n      pOVar8 = this->output_section_;\n      pOVar14 = local_74;\n      if (pOVar8 != (Output_section *)0x0) {\n        pOVar8->load_address_ = uVar24;\n        pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80;\n      }\n    }\n  }\n  else {\n    uVar24 = Expression::eval_with_dot\n                       (pEVar17,symtab,layout,true,*dot_value,local_7c,(Output_section **)0x0,\n                        (uint64_t *)0x0,false);\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x80;\n      pOVar14->load_address_ = uVar24;\n      local_74 = (Output_section *)0x0;\n      pOVar14 = local_74;\n    }\n  }\n  local_74 = pOVar14;\n  paVar1 = &fill.field_2;\n  this->evaluated_load_address_ = uVar24;\n  fill._M_string_length = 0;\n  fill.field_2._M_local_buf[0] = '\0';\n  fill._M_dataplus._M_p = (pointer)paVar1;\n  if (this->fill_ != (Expression *)0x0) {\n                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */\n    uVar24 = Expression::eval_with_dot\n                       (this->fill_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)&input_sections,(uint64_t *)0x0,false);\n    uVar16 = (uint)uVar24;\n    if (input_sections.\n        super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("fill of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }\n    align_section =\n         (Output_section *)\n         (uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18);\n    std::string::_M_replace((string *)&fill,0,fill._M_string_length,(char *)&align_section,4);\n  }\n  pOVar14 = this->output_section_;\n  input_sections.\n  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node._M_size = 0;\n  input_sections.\n  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)&input_sections;\n  input_sections.\n  super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)&input_sections;\n  if (pOVar14 != (Output_section *)0x0) {\n                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */\n    uVar24 = Output_section::get_input_sections\n                       (pOVar14,address,&fill,\n                        (list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                         *)&input_sections);\n    address = uVar24 + address;\n    *dot_value = address;\n    pOVar14 = this->output_section_;\n  }\n  ppOVar21 = (this->elements_).\n             super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n             ._M_impl._M_start;\n  dot_section = pOVar14;\n  if (ppOVar21 !=\n      (this->elements_).\n      super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n      ._M_impl._M_finish) {\n    while( true ) {\n      (*(*ppOVar21)->_vptr_Output_section_element[6])\n                (*ppOVar21,symtab,layout,pOVar14,(uint)local_84,local_84._4_4_,dot_value,\n                 dot_alignment,&dot_section,&fill,(_List_node_base *)&input_sections);\n      ppOVar21 = ppOVar21 + 1;\n      if ((this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl._M_finish == ppOVar21) break;\n      pOVar14 = this->output_section_;\n    }\n  }\n  if (input_sections.\n      super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)&input_sections) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */\n    do_gold_unreachable("../../gold/script-sections.cc",0xa67,"set_section_addresses");\n  }\n  if (local_98 != (Output_section *)0x0) {\n    pEVar17 = script_exp_integer(local_98->addralign_);\n    pEVar17 = script_exp_binary_add\n                        (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n    uVar24 = *dot_value;\n    iVar20 = *(int *)((int)dot_value + 4);\n    uVar26 = Expression::eval(pEVar17,symtab,layout,false);\n    pcVar23 = (this->name_)._M_dataplus._M_p;\n    align_section = (Output_section *)&stack0xffffffd4;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);\n    uVar16 = (uint)uVar24 + (int)local_98->addralign_;\n    uVar18 = uVar16 - (uint)uVar26;\n    uVar16 = ((iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)) - (int)(uVar26 >> 0x20)) -\n             (uint)(uVar16 < (uint)uVar26);\n    *(uint *)&local_98->addralign_ = uVar18;\n    *(uint *)((int)&local_98->addralign_ + 4) = uVar16;\n                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */\n    uVar24 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);\n    pOVar14 = align_section;\n    uVar22 = (uint)(uVar24 >> 0x20);\n    if (uVar22 < uVar16 || uVar22 - uVar16 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }\n    if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }\n  }\n  if ((local_74 != (Output_section *)0x0) && (local_98 != local_74)) {\n    uVar24 = *dot_value;\n    iVar20 = *(int *)((int)dot_value + 4);\n    pcVar23 = (this->name_)._M_dataplus._M_p;\n    uVar16 = (uint)uVar24 - local_94;\n    align_section = (Output_section *)&stack0xffffffd4;\n                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);\n    uVar18 = uVar16 + (int)local_74->addralign_;\n    uVar22 = ((iVar20 - local_90) - (uint)((uint)uVar24 < local_94)) +\n             *(int *)((int)&local_74->addralign_ + 4) +\n             (uint)CARRY4(uVar16,(uint)local_74->addralign_);\n    *(uint *)&local_74->addralign_ = uVar18;\n    *(uint *)((int)&local_74->addralign_ + 4) = uVar22;\n                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */\n    uVar24 = Expression::eval((Expression *)local_74->name_,symtab,layout,false);\n    pOVar14 = align_section;\n    uVar16 = (uint)(uVar24 >> 0x20);\n    if (uVar16 < uVar22 || uVar16 - uVar22 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }\n    if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }\n  }\n  pOVar14 = this->output_section_;\n  if (pOVar14 == (Output_section *)0x0) {\n    uVar11 = *dot_value;\n    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);\n    *(int *)load_address = (int)uVar11;\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;\n    goto joined_r0x0010ae99;\n  }\n  if (this->load_address_ == (Expression *)0x0) {\n    if (local_74 != (Output_section *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      pEVar17 = script_exp_integer(local_74->addralign_);\n      pEVar17 = script_exp_binary_add\n                          (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n      uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      pOVar14 = this->output_section_;\n      *load_address = uVar24;\n      goto LAB_0010ae3d;\n    }\n    uVar24 = *dot_value;\n    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);\n    *(int *)load_address = (int)uVar24;\n  }\n  else {\n    p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[5];\n    if (p_Var5 == Output_section::do_load_address) {\n      if (-1 < (char)pOVar14->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n      }\n      uVar16 = (uint)pOVar14->load_address_;\n      iVar20 = *(int *)((int)&pOVar14->load_address_ + 4);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      uVar16 = (*p_Var5)(pOVar14);\n      pOVar14 = this->output_section_;\n      iVar20 = extraout_EDX;\n    }\n    uVar24 = *dot_value;\n    iVar6 = *(int *)((int)dot_value + 4);\n    uVar18 = (uint)uVar24 - local_94;\n    *(uint *)load_address = uVar16 + uVar18;\n    *(uint *)((int)load_address + 4) =\n         iVar20 + ((iVar6 - local_90) - (uint)((uint)uVar24 < local_94)) +\n         (uint)CARRY4(uVar16,uVar18);\nLAB_0010ae3d:\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;\n    if (pOVar14 == (Output_section *)0x0) goto joined_r0x0010ae99;\n  }\n  pOVar14->field_0x91 = pOVar14->field_0x91 & 0xdf | (byte)((this->is_relro_ & 1) << 5);\n  p_Var10 = input_sections.\n            super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_node.super__List_node_base._M_next;\n  if ((pOVar14->field_0x92 & 8) != 0) {\n    *(int *)dot_value = (int)uVar11;\n    *(undefined4 *)((int)dot_value + 4) = uVar3;\n    *(int *)load_address = (int)uVar12;\n    *(undefined4 *)((int)load_address + 4) = uVar4;\n  }\njoined_r0x0010ae99:\n  while (p_Var10 != (_List_node_base *)&input_sections) {\n    p_Var7 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n    operator_delete(p_Var10);\n    p_Var10 = p_Var7;\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)fill._M_dataplus._M_p != paVar1) {\n    operator_delete(fill._M_dataplus._M_p);\n  }\n  return;\n}" { (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar1;" (binary_expression "allocator<char>_>_9\n  *paVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar1" identifier * identifier)) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "_func_int_varargs *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "_List_node_base *p_Var7;" type_identifier (pointer_declarator "*p_Var7" * identifier) ;) (declaration "Output_section *pOVar8;" type_identifier (pointer_declarator "*pOVar8" * identifier) ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "_List_node_base *p_Var10;" type_identifier (pointer_declarator "*p_Var10" * identifier) ;) (declaration "uint64_t uVar11;" primitive_type identifier ;) (declaration "uint64_t uVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "Script_sections *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "Output_section *pOVar14;" type_identifier (pointer_declarator "*pOVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "Expression *pEVar17;" type_identifier (pointer_declarator "*pEVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "Symbol *pSVar19;" type_identifier (pointer_declarator "*pSVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "pointer ppOVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "pointer pcVar23;" type_identifier identifier ;) (declaration "uint64_t uVar24;" primitive_type identifier ;) (declaration "uint64_t uVar25;" primitive_type identifier ;) (declaration "uint64_t uVar26;" primitive_type identifier ;) (declaration "Output_section *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "undefined8 local_8c;" type_identifier identifier ;) (declaration "undefined8 local_84;" type_identifier identifier ;) (declaration "Output_section *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "Output_section *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "Output_section *dot_section;" type_identifier (pointer_declarator "*dot_section" * identifier) ;) (declaration "uint64_t address;" primitive_type identifier ;) (declaration "Input_section_list input_sections;" type_identifier identifier ;) (declaration "string fill;" type_identifier identifier ;) (declaration "Output_section *align_section;" type_identifier (pointer_declarator "*align_section" * identifier) ;) (expression_statement "this_00 = &layout->script_options_->script_sections_;" (assignment_expression "this_00 = &layout->script_options_->script_sections_" identifier = (pointer_expression "&layout->script_options_->script_sections_" & (field_expression "layout->script_options_->script_sections_" (field_expression "layout->script_options_" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "uVar3 = *(undefined4 *)((int)dot_value + 4);" (assignment_expression "uVar3 = *(undefined4 *)((int)dot_value + 4)" identifier = (pointer_expression "*(undefined4 *)((int)dot_value + 4)" * (cast_expression "(undefined4 *)((int)dot_value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar11 = *dot_value;" (assignment_expression "uVar11 = *dot_value" identifier = (pointer_expression "*dot_value" * identifier)) ;) (expression_statement "uVar4 = *(undefined4 *)((int)load_address + 4);" (assignment_expression "uVar4 = *(undefined4 *)((int)load_address + 4)" identifier = (pointer_expression "*(undefined4 *)((int)load_address + 4)" * (cast_expression "(undefined4 *)((int)load_address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)load_address + 4)" ( (binary_expression "(int)load_address + 4" (cast_expression "(int)load_address" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar12 = *load_address;" (assignment_expression "uVar12 = *load_address" identifier = (pointer_expression "*load_address" * identifier)) ;) (expression_statement "pOVar14 = this->output_section_;" (assignment_expression "pOVar14 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) (if_statement "if (pOVar14 == (Output_section *)0x0) {\nLAB_0010a8a0:\n    if (this->address_ == (Expression *)0x0) {\n      local_98 = (Output_section *)\n                 Script_sections::find_memory_region\n                           (this_00,this,true,false,(Output_section_definition **)0x0);\n      if (local_98 == (Output_section *)0x0) {\n        address = *dot_value;\n      }\n      else {\n        pEVar17 = script_exp_integer(local_98->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n        address = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (Output_section *)\n               Script_sections::find_memory_region\n                         (this_00,this,true,true,(Output_section_definition **)0x0);\n    uVar24 = Expression::eval_with_dot\n                       (this->address_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)0x0,dot_alignment,false);\n    address = uVar24;\n    if (local_98 == (Output_section *)0x0) goto LAB_0010a6d4;\n    uVar26 = Expression::eval(*(Expression **)&(local_98->super_Output_data).field_0x1c,symtab,\n                              layout,false);\n    uVar25 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);\n    local_84._0_4_ = (uint)uVar26;\n    local_7c = (Output_section *)uVar24;\n    local_78 = (uint)(uVar24 >> 0x20);\n    local_84._4_4_ = (uint)(uVar26 >> 0x20);\n    if ((local_78 < local_84._4_4_ || local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84))\n       || (uVar16 = (uint)(uVar25 + uVar26 >> 0x20),\n          uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      pcVar15 = (char *)gettext(pcVar15);\n      gold_error(pcVar15,local_7c,local_78,pcVar23);\n    }\n    else {\n      uVar16 = local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +\n               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_);\n      if (local_78 < uVar16 ||\n          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)) {\n        pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n        pcVar15 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    *(uint *)&local_98->addralign_ = (int)local_7c - (uint)local_84;\n    pEVar17 = this->align_;\n    *(uint *)((int)&local_98->addralign_ + 4) =\n         (local_78 - local_84._4_4_) - (uint)(local_7c < (uint)local_84);\n    if (pEVar17 != (Expression *)0x0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[3];\n      if (p_Var5 != Output_section::do_addralign) {\n        iVar20 = (*p_Var5)(pOVar14);\n        local_8c = CONCAT44(extraout_EDX_00,iVar20);\n        goto LAB_0010a762;\n      }\n      local_8c = pOVar14->addralign_;\n      local_7c = (Output_section *)this->subalign_;\n      if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = (Output_section *)this->subalign_;\n    local_8c = 0;\n    if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n    local_94 = (uint)address;\n    local_90 = address._4_4_;\n    local_84 = 0;\n    *(uint *)dot_value = (uint)address;\n    *(uint *)((int)dot_value + 4) = address._4_4_;\n    local_7c = (Output_section *)0x0;\n  }\n  else {\n    if ((pOVar14->field_0x91 & 2) != 0) {\n      Output_section::sort_attached_input_sections(pOVar14);\n      pOVar14 = this->output_section_;\n      if (pOVar14 == (Output_section *)0x0) goto LAB_0010a8a0;\n    }\n    if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    bVar13 = General_options::section_start(parameters->options_,pOVar14->name_,&address);\n    if (!bVar13) goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (Output_section *)0x0;\nLAB_0010a6de:\n    pEVar17 = this->align_;\n    if (pEVar17 == (Expression *)0x0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    local_8c = Expression::eval_with_dot\n                         (pEVar17,symtab,layout,true,*dot_value,(Output_section *)0x0,&align_section\n                          ,(uint64_t *)0x0,false);\n    if (align_section != (Output_section *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("alignment of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      local_8c._4_4_ = (uint)(local_8c >> 0x20);\n      *(uint *)&pOVar14->addralign_ = (uint)local_8c;\n      *(uint *)((int)&pOVar14->addralign_ + 4) = local_8c._4_4_;\n    }\nLAB_0010a762:\n    local_7c = (Output_section *)this->subalign_;\n    if (local_7c == (Output_section *)0x0) {\nLAB_0010a9e6:\n      local_7c = this->output_section_;\n      local_90 = address._4_4_;\n      local_94 = (uint)address;\n      if (local_8c._4_4_ != 0 || (uint)local_8c != 0) {\n        local_84 = 0;\n        goto LAB_0010a837;\n      }\n      local_84 = local_8c;\n    }\n    else {\nLAB_0010a770:\n      uVar24 = Expression::eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false);\n      if (align_section != (Output_section *)0x0) {\n        pcVar23 = (this->name_)._M_dataplus._M_p;\n        pcVar15 = (char *)gettext("subalign of section %s is not absolute");\n        gold_warning(pcVar15,pcVar23);\n      }\n      local_84._4_4_ = (uint)(uVar24 >> 0x20);\n      local_84._0_4_ = (uint)uVar24;\n      bVar13 = local_84._4_4_ == 0;\n      bVar9 = (uint)local_84 == 0;\n      local_84 = uVar24;\n      if (bVar13 && bVar9) {\n        local_84 = 1;\n      }\n      local_7c = this->output_section_;\n      if ((local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0)) {\n        *(uint *)&local_7c->addralign_ = (uint)local_84;\n        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;\n        local_8c = local_84;\n      }\n      local_94 = (uint)address;\n      local_90 = address._4_4_;\nLAB_0010a837:\n      bVar13 = local_94 != 0;\n      uVar16 = local_94 - 1;\n      local_94 = uVar16 + (uint)local_8c & -(uint)local_8c;\n      local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0));\n    }\n    *(uint *)dot_value = local_94;\n    address = CONCAT44(local_90,local_94);\n    *(uint *)((int)dot_value + 4) = local_90;\n    if ((local_7c != (Output_section *)0x0) &&\n       (((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0)))) {\n      bVar2 = (local_7c->super_Output_data).field_0x1c;\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(uint *)&(local_7c->super_Output_data).address_ = local_94;\n      *(uint *)((int)&(local_7c->super_Output_data).address_ + 4) = local_90;\n      (local_7c->super_Output_data).field_0x1c = bVar2 | 1;\n    }\n  }" if (parenthesized_expression "(pOVar14 == (Output_section *)0x0)" ( (binary_expression "pOVar14 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0010a8a0:\n    if (this->address_ == (Expression *)0x0) {\n      local_98 = (Output_section *)\n                 Script_sections::find_memory_region\n                           (this_00,this,true,false,(Output_section_definition **)0x0);\n      if (local_98 == (Output_section *)0x0) {\n        address = *dot_value;\n      }\n      else {\n        pEVar17 = script_exp_integer(local_98->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n        address = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (Output_section *)\n               Script_sections::find_memory_region\n                         (this_00,this,true,true,(Output_section_definition **)0x0);\n    uVar24 = Expression::eval_with_dot\n                       (this->address_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)0x0,dot_alignment,false);\n    address = uVar24;\n    if (local_98 == (Output_section *)0x0) goto LAB_0010a6d4;\n    uVar26 = Expression::eval(*(Expression **)&(local_98->super_Output_data).field_0x1c,symtab,\n                              layout,false);\n    uVar25 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);\n    local_84._0_4_ = (uint)uVar26;\n    local_7c = (Output_section *)uVar24;\n    local_78 = (uint)(uVar24 >> 0x20);\n    local_84._4_4_ = (uint)(uVar26 >> 0x20);\n    if ((local_78 < local_84._4_4_ || local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84))\n       || (uVar16 = (uint)(uVar25 + uVar26 >> 0x20),\n          uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      pcVar15 = (char *)gettext(pcVar15);\n      gold_error(pcVar15,local_7c,local_78,pcVar23);\n    }\n    else {\n      uVar16 = local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +\n               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_);\n      if (local_78 < uVar16 ||\n          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)) {\n        pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n        pcVar15 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    *(uint *)&local_98->addralign_ = (int)local_7c - (uint)local_84;\n    pEVar17 = this->align_;\n    *(uint *)((int)&local_98->addralign_ + 4) =\n         (local_78 - local_84._4_4_) - (uint)(local_7c < (uint)local_84);\n    if (pEVar17 != (Expression *)0x0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[3];\n      if (p_Var5 != Output_section::do_addralign) {\n        iVar20 = (*p_Var5)(pOVar14);\n        local_8c = CONCAT44(extraout_EDX_00,iVar20);\n        goto LAB_0010a762;\n      }\n      local_8c = pOVar14->addralign_;\n      local_7c = (Output_section *)this->subalign_;\n      if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = (Output_section *)this->subalign_;\n    local_8c = 0;\n    if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n    local_94 = (uint)address;\n    local_90 = address._4_4_;\n    local_84 = 0;\n    *(uint *)dot_value = (uint)address;\n    *(uint *)((int)dot_value + 4) = address._4_4_;\n    local_7c = (Output_section *)0x0;\n  }" { (labeled_statement "LAB_0010a8a0:\n    if (this->address_ == (Expression *)0x0) {\n      local_98 = (Output_section *)\n                 Script_sections::find_memory_region\n                           (this_00,this,true,false,(Output_section_definition **)0x0);\n      if (local_98 == (Output_section *)0x0) {\n        address = *dot_value;\n      }\n      else {\n        pEVar17 = script_exp_integer(local_98->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n        address = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      goto LAB_0010a6de;\n    }" statement_identifier : (if_statement "if (this->address_ == (Expression *)0x0) {\n      local_98 = (Output_section *)\n                 Script_sections::find_memory_region\n                           (this_00,this,true,false,(Output_section_definition **)0x0);\n      if (local_98 == (Output_section *)0x0) {\n        address = *dot_value;\n      }\n      else {\n        pEVar17 = script_exp_integer(local_98->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n        address = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      goto LAB_0010a6de;\n    }" if (parenthesized_expression "(this->address_ == (Expression *)0x0)" ( (binary_expression "this->address_ == (Expression *)0x0" (field_expression "this->address_" identifier -> field_identifier) == (cast_expression "(Expression *)0x0" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_98 = (Output_section *)\n                 Script_sections::find_memory_region\n                           (this_00,this,true,false,(Output_section_definition **)0x0);\n      if (local_98 == (Output_section *)0x0) {\n        address = *dot_value;\n      }\n      else {\n        pEVar17 = script_exp_integer(local_98->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n        address = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      goto LAB_0010a6de;\n    }" { (ERROR "local_98 = (Output_section *)\n                 Script_sections::" (assignment_expression "local_98 = (Output_section *)\n                 Script_sections" identifier = (cast_expression "(Output_section *)\n                 Script_sections" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "find_memory_region\n                           (this_00,this,true,false,(Output_section_definition **)0x0);" (call_expression "find_memory_region\n                           (this_00,this,true,false,(Output_section_definition **)0x0)" identifier (argument_list "(this_00,this,true,false,(Output_section_definition **)0x0)" ( identifier , identifier , true , false , (cast_expression "(Output_section_definition **)0x0" ( (type_descriptor "Output_section_definition **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) ))) ;) (if_statement "if (local_98 == (Output_section *)0x0) {\n        address = *dot_value;\n      }\n      else {\n        pEVar17 = script_exp_integer(local_98->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n        address = Expression::eval(pEVar17,symtab,layout,false);\n      }" if (parenthesized_expression "(local_98 == (Output_section *)0x0)" ( (binary_expression "local_98 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        address = *dot_value;\n      }" { (expression_statement "address = *dot_value;" (assignment_expression "address = *dot_value" identifier = (pointer_expression "*dot_value" * identifier)) ;) }) (else_clause "else {\n        pEVar17 = script_exp_integer(local_98->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n        address = Expression::eval(pEVar17,symtab,layout,false);\n      }" else (compound_statement "{\n        pEVar17 = script_exp_integer(local_98->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n        address = Expression::eval(pEVar17,symtab,layout,false);\n      }" { (expression_statement "pEVar17 = script_exp_integer(local_98->addralign_);" (assignment_expression "pEVar17 = script_exp_integer(local_98->addralign_)" identifier = (call_expression "script_exp_integer(local_98->addralign_)" identifier (argument_list "(local_98->addralign_)" ( (field_expression "local_98->addralign_" identifier -> field_identifier) )))) ;) (expression_statement "pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);" (assignment_expression "pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17)" identifier = (call_expression "script_exp_binary_add\n                            (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17)" identifier (argument_list "(*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17)" ( (pointer_expression "*(Expression **)&(local_98->super_Output_data).field_0x1c" * (cast_expression "(Expression **)&(local_98->super_Output_data).field_0x1c" ( (type_descriptor "Expression **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(local_98->super_Output_data).field_0x1c" & (field_expression "(local_98->super_Output_data).field_0x1c" (parenthesized_expression "(local_98->super_Output_data)" ( (field_expression "local_98->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) , identifier )))) ;) (ERROR "address = Expression::" (assignment_expression "address = Expression" identifier = identifier) : :) (expression_statement "eval(pEVar17,symtab,layout,false);" (call_expression "eval(pEVar17,symtab,layout,false)" identifier (argument_list "(pEVar17,symtab,layout,false)" ( identifier , identifier , identifier , false ))) ;) }))) (goto_statement "goto LAB_0010a6de;" goto statement_identifier ;) }))) (ERROR "local_98 = (Output_section *)\n               Script_sections::" (assignment_expression "local_98 = (Output_section *)\n               Script_sections" identifier = (cast_expression "(Output_section *)\n               Script_sections" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "find_memory_region\n                         (this_00,this,true,true,(Output_section_definition **)0x0);" (call_expression "find_memory_region\n                         (this_00,this,true,true,(Output_section_definition **)0x0)" identifier (argument_list "(this_00,this,true,true,(Output_section_definition **)0x0)" ( identifier , identifier , true , true , (cast_expression "(Output_section_definition **)0x0" ( (type_descriptor "Output_section_definition **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) ))) ;) (ERROR "uVar24 = Expression::" (assignment_expression "uVar24 = Expression" identifier = identifier) : :) (expression_statement "eval_with_dot\n                       (this->address_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)0x0,dot_alignment,false);" (call_expression "eval_with_dot\n                       (this->address_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)0x0,dot_alignment,false)" identifier (argument_list "(this->address_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)0x0,dot_alignment,false)" ( (field_expression "this->address_" identifier -> field_identifier) , identifier , identifier , true , (pointer_expression "*dot_value" * identifier) , (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier , false ))) ;) (expression_statement "address = uVar24;" (assignment_expression "address = uVar24" identifier = identifier) ;) (if_statement "if (local_98 == (Output_section *)0x0) goto LAB_0010a6d4;" if (parenthesized_expression "(local_98 == (Output_section *)0x0)" ( (binary_expression "local_98 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0010a6d4;" goto statement_identifier ;)) (ERROR "uVar26 = Expression::" (assignment_expression "uVar26 = Expression" identifier = identifier) : :) (expression_statement "eval(*(Expression **)&(local_98->super_Output_data).field_0x1c,symtab,\n                              layout,false);" (call_expression "eval(*(Expression **)&(local_98->super_Output_data).field_0x1c,symtab,\n                              layout,false)" identifier (argument_list "(*(Expression **)&(local_98->super_Output_data).field_0x1c,symtab,\n                              layout,false)" ( (pointer_expression "*(Expression **)&(local_98->super_Output_data).field_0x1c" * (cast_expression "(Expression **)&(local_98->super_Output_data).field_0x1c" ( (type_descriptor "Expression **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(local_98->super_Output_data).field_0x1c" & (field_expression "(local_98->super_Output_data).field_0x1c" (parenthesized_expression "(local_98->super_Output_data)" ( (field_expression "local_98->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) , identifier , identifier , false ))) ;) (ERROR "uVar25 = Expression::" (assignment_expression "uVar25 = Expression" identifier = identifier) : :) (expression_statement "eval((Expression *)local_98->name_,symtab,layout,false);" (call_expression "eval((Expression *)local_98->name_,symtab,layout,false)" identifier (argument_list "((Expression *)local_98->name_,symtab,layout,false)" ( (cast_expression "(Expression *)local_98->name_" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_98->name_" identifier -> field_identifier)) , identifier , identifier , false ))) ;) (expression_statement "local_84._0_4_ = (uint)uVar26;" (assignment_expression "local_84._0_4_ = (uint)uVar26" (field_expression "local_84._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_7c = (Output_section *)uVar24;" (assignment_expression "local_7c = (Output_section *)uVar24" identifier = (cast_expression "(Output_section *)uVar24" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_78 = (uint)(uVar24 >> 0x20);" (assignment_expression "local_78 = (uint)(uVar24 >> 0x20)" identifier = (call_expression "(uint)(uVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 >> 0x20)" ( (binary_expression "uVar24 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_84._4_4_ = (uint)(uVar26 >> 0x20);" (assignment_expression "local_84._4_4_ = (uint)(uVar26 >> 0x20)" (field_expression "local_84._4_4_" identifier . field_identifier) = (call_expression "(uint)(uVar26 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar26 >> 0x20)" ( (binary_expression "uVar26 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if ((local_78 < local_84._4_4_ || local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84))\n       || (uVar16 = (uint)(uVar25 + uVar26 >> 0x20),\n          uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      pcVar15 = (char *)gettext(pcVar15);\n      gold_error(pcVar15,local_7c,local_78,pcVar23);\n    }\n    else {\n      uVar16 = local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +\n               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_);\n      if (local_78 < uVar16 ||\n          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)) {\n        pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n        pcVar15 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" if (parenthesized_expression "((local_78 < local_84._4_4_ || local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84))\n       || (uVar16 = (uint)(uVar25 + uVar26 >> 0x20),\n          uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16))" ( (binary_expression "(local_78 < local_84._4_4_ || local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84))\n       || (uVar16 = (uint)(uVar25 + uVar26 >> 0x20),\n          uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16)" (parenthesized_expression "(local_78 < local_84._4_4_ || local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84))" ( (binary_expression "local_78 < local_84._4_4_ || local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84)" (binary_expression "local_78 < local_84._4_4_" identifier < (field_expression "local_84._4_4_" identifier . field_identifier)) || (binary_expression "local_78 - local_84._4_4_ < (uint)(local_7c < (uint)local_84)" (binary_expression "local_78 - local_84._4_4_" identifier - (field_expression "local_84._4_4_" identifier . field_identifier)) < (call_expression "(uint)(local_7c < (uint)local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c < (uint)local_84)" ( (binary_expression "local_7c < (uint)local_84" identifier < (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) || (parenthesized_expression "(uVar16 = (uint)(uVar25 + uVar26 >> 0x20),\n          uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16)" ( (comma_expression "uVar16 = (uint)(uVar25 + uVar26 >> 0x20),\n          uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16" (assignment_expression "uVar16 = (uint)(uVar25 + uVar26 >> 0x20)" identifier = (call_expression "(uint)(uVar25 + uVar26 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar25 + uVar26 >> 0x20)" ( (binary_expression "uVar25 + uVar26 >> 0x20" (binary_expression "uVar25 + uVar26" identifier + identifier) >> number_literal) )))) , (binary_expression "uVar16 <= local_78 && (uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16" (binary_expression "uVar16 <= local_78" identifier <= identifier) && (binary_expression "(uint)(local_7c < (uint)(uVar25 + uVar26)) <= local_78 - uVar16" (call_expression "(uint)(local_7c < (uint)(uVar25 + uVar26))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c < (uint)(uVar25 + uVar26))" ( (binary_expression "local_7c < (uint)(uVar25 + uVar26)" identifier < (call_expression "(uint)(uVar25 + uVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar25 + uVar26)" ( (binary_expression "uVar25 + uVar26" identifier + identifier) )))) ))) <= (binary_expression "local_78 - uVar16" identifier - identifier)))) ))) )) (compound_statement "{\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      pcVar15 = (char *)gettext(pcVar15);\n      gold_error(pcVar15,local_7c,local_78,pcVar23);\n    }" { (expression_statement "pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;" (assignment_expression "pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p" identifier = (field_expression "((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p" (parenthesized_expression "((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)" ( (cast_expression "(_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data" ( (type_descriptor "_Alloc_hider *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_98->super_Output_data)._vptr_Output_data" & (field_expression "(local_98->super_Output_data)._vptr_Output_data" (parenthesized_expression "(local_98->super_Output_data)" ( (field_expression "local_98->super_Output_data" identifier -> field_identifier) )) . field_identifier))) )) -> field_identifier)) ;) (expression_statement "pcVar15 = "address 0x%llx is not within region %s";" (assignment_expression "pcVar15 = "address 0x%llx is not within region %s"" identifier = (string_literal ""address 0x%llx is not within region %s"" " string_content ")) ;) (labeled_statement "LAB_0010b0ad:\n      pcVar15 = (char *)gettext(pcVar15);" statement_identifier : (expression_statement "pcVar15 = (char *)gettext(pcVar15);" (assignment_expression "pcVar15 = (char *)gettext(pcVar15)" identifier = (cast_expression "(char *)gettext(pcVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier ))))) ;)) (expression_statement "gold_error(pcVar15,local_7c,local_78,pcVar23);" (call_expression "gold_error(pcVar15,local_7c,local_78,pcVar23)" identifier (argument_list "(pcVar15,local_7c,local_78,pcVar23)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n      uVar16 = local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +\n               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_);\n      if (local_78 < uVar16 ||\n          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)) {\n        pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n        pcVar15 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" else (compound_statement "{\n      uVar16 = local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +\n               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_);\n      if (local_78 < uVar16 ||\n          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)) {\n        pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n        pcVar15 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" { (expression_statement "uVar16 = local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +\n               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_);" (assignment_expression "uVar16 = local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +\n               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_)" identifier = (binary_expression "local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4) +\n               (uint)CARRY4((uint)local_84,(uint)local_98->addralign_)" (binary_expression "local_84._4_4_ + *(int *)((int)&local_98->addralign_ + 4)" (field_expression "local_84._4_4_" identifier . field_identifier) + (pointer_expression "*(int *)((int)&local_98->addralign_ + 4)" * (cast_expression "(int *)((int)&local_98->addralign_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_98->addralign_ + 4)" ( (binary_expression "(int)&local_98->addralign_ + 4" (cast_expression "(int)&local_98->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_98->addralign_" & (field_expression "local_98->addralign_" identifier -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)local_84,(uint)local_98->addralign_)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_84,(uint)local_98->addralign_)" identifier (argument_list "((uint)local_84,(uint)local_98->addralign_)" ( (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_98->addralign_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_98->addralign_" identifier -> field_identifier)) )))))) ;) (if_statement "if (local_78 < uVar16 ||\n          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)) {\n        pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n        pcVar15 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }" if (parenthesized_expression "(local_78 < uVar16 ||\n          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_))" ( (binary_expression "local_78 < uVar16 ||\n          local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)" (binary_expression "local_78 < uVar16" identifier < identifier) || (binary_expression "local_78 - uVar16 < (uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)" (binary_expression "local_78 - uVar16" identifier - identifier) < (call_expression "(uint)(local_7c < (uint)local_84 + (int)local_98->addralign_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c < (uint)local_84 + (int)local_98->addralign_)" ( (binary_expression "local_7c < (uint)local_84 + (int)local_98->addralign_" identifier < (binary_expression "(uint)local_84 + (int)local_98->addralign_" (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) + (cast_expression "(int)local_98->addralign_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_98->addralign_" identifier -> field_identifier)))) ))))) )) (compound_statement "{\n        pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n        pcVar15 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }" { (expression_statement "pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;" (assignment_expression "pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p" identifier = (field_expression "((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p" (parenthesized_expression "((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)" ( (cast_expression "(_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data" ( (type_descriptor "_Alloc_hider *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_98->super_Output_data)._vptr_Output_data" & (field_expression "(local_98->super_Output_data)._vptr_Output_data" (parenthesized_expression "(local_98->super_Output_data)" ( (field_expression "local_98->super_Output_data" identifier -> field_identifier) )) . field_identifier))) )) -> field_identifier)) ;) (expression_statement "pcVar15 = "address 0x%llx moves dot backwards in region %s";" (assignment_expression "pcVar15 = "address 0x%llx moves dot backwards in region %s"" identifier = (string_literal ""address 0x%llx moves dot backwards in region %s"" " string_content ")) ;) (goto_statement "goto LAB_0010b0ad;" goto statement_identifier ;) })) }))) (expression_statement "*(uint *)&local_98->addralign_ = (int)local_7c - (uint)local_84;" (assignment_expression "*(uint *)&local_98->addralign_ = (int)local_7c - (uint)local_84" (pointer_expression "*(uint *)&local_98->addralign_" * (cast_expression "(uint *)&local_98->addralign_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_98->addralign_" & (field_expression "local_98->addralign_" identifier -> field_identifier)))) = (binary_expression "(int)local_7c - (uint)local_84" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pEVar17 = this->align_;" (assignment_expression "pEVar17 = this->align_" identifier = (field_expression "this->align_" identifier -> field_identifier)) ;) (expression_statement "*(uint *)((int)&local_98->addralign_ + 4) =\n         (local_78 - local_84._4_4_) - (uint)(local_7c < (uint)local_84);" (assignment_expression "*(uint *)((int)&local_98->addralign_ + 4) =\n         (local_78 - local_84._4_4_) - (uint)(local_7c < (uint)local_84)" (pointer_expression "*(uint *)((int)&local_98->addralign_ + 4)" * (cast_expression "(uint *)((int)&local_98->addralign_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_98->addralign_ + 4)" ( (binary_expression "(int)&local_98->addralign_ + 4" (cast_expression "(int)&local_98->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_98->addralign_" & (field_expression "local_98->addralign_" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "(local_78 - local_84._4_4_) - (uint)(local_7c < (uint)local_84)" (parenthesized_expression "(local_78 - local_84._4_4_)" ( (binary_expression "local_78 - local_84._4_4_" identifier - (field_expression "local_84._4_4_" identifier . field_identifier)) )) - (call_expression "(uint)(local_7c < (uint)local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c < (uint)local_84)" ( (binary_expression "local_7c < (uint)local_84" identifier < (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ;) (if_statement "if (pEVar17 != (Expression *)0x0) goto LAB_0010a6e9;" if (parenthesized_expression "(pEVar17 != (Expression *)0x0)" ( (binary_expression "pEVar17 != (Expression *)0x0" identifier != (cast_expression "(Expression *)0x0" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0010a6e9;" goto statement_identifier ;)) (labeled_statement "LAB_0010a9a5:\n    pOVar14 = this->output_section_;" statement_identifier : (expression_statement "pOVar14 = this->output_section_;" (assignment_expression "pOVar14 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;)) (if_statement "if (pOVar14 != (Output_section *)0x0) {\n      p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[3];\n      if (p_Var5 != Output_section::do_addralign) {\n        iVar20 = (*p_Var5)(pOVar14);\n        local_8c = CONCAT44(extraout_EDX_00,iVar20);\n        goto LAB_0010a762;\n      }\n      local_8c = pOVar14->addralign_;\n      local_7c = (Output_section *)this->subalign_;\n      if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }" if (parenthesized_expression "(pOVar14 != (Output_section *)0x0)" ( (binary_expression "pOVar14 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[3];\n      if (p_Var5 != Output_section::do_addralign) {\n        iVar20 = (*p_Var5)(pOVar14);\n        local_8c = CONCAT44(extraout_EDX_00,iVar20);\n        goto LAB_0010a762;\n      }\n      local_8c = pOVar14->addralign_;\n      local_7c = (Output_section *)this->subalign_;\n      if (local_7c != (Output_section *)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }" { (expression_statement "p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[3];" (assignment_expression "p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[3]" identifier = (subscript_expression "(pOVar14->super_Output_data)._vptr_Output_data[3]" (field_expression "(pOVar14->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var5 != Output_section::do_addralign) {\n        iVar20 = (*p_Var5)(pOVar14);\n        local_8c = CONCAT44(extraout_EDX_00,iVar20);\n        goto LAB_0010a762;\n      }" if (parenthesized_expression "(p_Var5 != Output_section::do_addralign)" ( (binary_expression "p_Var5 != Output_section" identifier != identifier) (ERROR "::do_addralign" : : identifier) )) (compound_statement "{\n        iVar20 = (*p_Var5)(pOVar14);\n        local_8c = CONCAT44(extraout_EDX_00,iVar20);\n        goto LAB_0010a762;\n      }" { (expression_statement "iVar20 = (*p_Var5)(pOVar14);" (assignment_expression "iVar20 = (*p_Var5)(pOVar14)" identifier = (call_expression "(*p_Var5)(pOVar14)" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "(pOVar14)" ( identifier )))) ;) (expression_statement "local_8c = CONCAT44(extraout_EDX_00,iVar20);" (assignment_expression "local_8c = CONCAT44(extraout_EDX_00,iVar20)" identifier = (call_expression "CONCAT44(extraout_EDX_00,iVar20)" identifier (argument_list "(extraout_EDX_00,iVar20)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_0010a762;" goto statement_identifier ;) })) (expression_statement "local_8c = pOVar14->addralign_;" (assignment_expression "local_8c = pOVar14->addralign_" identifier = (field_expression "pOVar14->addralign_" identifier -> field_identifier)) ;) (expression_statement "local_7c = (Output_section *)this->subalign_;" (assignment_expression "local_7c = (Output_section *)this->subalign_" identifier = (cast_expression "(Output_section *)this->subalign_" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->subalign_" identifier -> field_identifier))) ;) (if_statement "if (local_7c != (Output_section *)0x0) goto LAB_0010a770;" if (parenthesized_expression "(local_7c != (Output_section *)0x0)" ( (binary_expression "local_7c != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0010a770;" goto statement_identifier ;)) (goto_statement "goto LAB_0010a9e6;" goto statement_identifier ;) })) (expression_statement "local_7c = (Output_section *)this->subalign_;" (assignment_expression "local_7c = (Output_section *)this->subalign_" identifier = (cast_expression "(Output_section *)this->subalign_" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->subalign_" identifier -> field_identifier))) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (if_statement "if (local_7c != (Output_section *)0x0) goto LAB_0010a770;" if (parenthesized_expression "(local_7c != (Output_section *)0x0)" ( (binary_expression "local_7c != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0010a770;" goto statement_identifier ;)) (expression_statement "local_94 = (uint)address;" (assignment_expression "local_94 = (uint)address" identifier = (cast_expression "(uint)address" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_90 = address._4_4_;" (assignment_expression "local_90 = address._4_4_" identifier = (field_expression "address._4_4_" identifier . field_identifier)) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "*(uint *)dot_value = (uint)address;" (assignment_expression "*(uint *)dot_value = (uint)address" (pointer_expression "*(uint *)dot_value" * (cast_expression "(uint *)dot_value" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(uint)address" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)dot_value + 4) = address._4_4_;" (assignment_expression "*(uint *)((int)dot_value + 4) = address._4_4_" (pointer_expression "*(uint *)((int)dot_value + 4)" * (cast_expression "(uint *)((int)dot_value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "address._4_4_" identifier . field_identifier)) ;) (expression_statement "local_7c = (Output_section *)0x0;" (assignment_expression "local_7c = (Output_section *)0x0" identifier = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if ((pOVar14->field_0x91 & 2) != 0) {\n      Output_section::sort_attached_input_sections(pOVar14);\n      pOVar14 = this->output_section_;\n      if (pOVar14 == (Output_section *)0x0) goto LAB_0010a8a0;\n    }\n    if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    bVar13 = General_options::section_start(parameters->options_,pOVar14->name_,&address);\n    if (!bVar13) goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (Output_section *)0x0;\nLAB_0010a6de:\n    pEVar17 = this->align_;\n    if (pEVar17 == (Expression *)0x0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    local_8c = Expression::eval_with_dot\n                         (pEVar17,symtab,layout,true,*dot_value,(Output_section *)0x0,&align_section\n                          ,(uint64_t *)0x0,false);\n    if (align_section != (Output_section *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("alignment of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      local_8c._4_4_ = (uint)(local_8c >> 0x20);\n      *(uint *)&pOVar14->addralign_ = (uint)local_8c;\n      *(uint *)((int)&pOVar14->addralign_ + 4) = local_8c._4_4_;\n    }\nLAB_0010a762:\n    local_7c = (Output_section *)this->subalign_;\n    if (local_7c == (Output_section *)0x0) {\nLAB_0010a9e6:\n      local_7c = this->output_section_;\n      local_90 = address._4_4_;\n      local_94 = (uint)address;\n      if (local_8c._4_4_ != 0 || (uint)local_8c != 0) {\n        local_84 = 0;\n        goto LAB_0010a837;\n      }\n      local_84 = local_8c;\n    }\n    else {\nLAB_0010a770:\n      uVar24 = Expression::eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false);\n      if (align_section != (Output_section *)0x0) {\n        pcVar23 = (this->name_)._M_dataplus._M_p;\n        pcVar15 = (char *)gettext("subalign of section %s is not absolute");\n        gold_warning(pcVar15,pcVar23);\n      }\n      local_84._4_4_ = (uint)(uVar24 >> 0x20);\n      local_84._0_4_ = (uint)uVar24;\n      bVar13 = local_84._4_4_ == 0;\n      bVar9 = (uint)local_84 == 0;\n      local_84 = uVar24;\n      if (bVar13 && bVar9) {\n        local_84 = 1;\n      }\n      local_7c = this->output_section_;\n      if ((local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0)) {\n        *(uint *)&local_7c->addralign_ = (uint)local_84;\n        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;\n        local_8c = local_84;\n      }\n      local_94 = (uint)address;\n      local_90 = address._4_4_;\nLAB_0010a837:\n      bVar13 = local_94 != 0;\n      uVar16 = local_94 - 1;\n      local_94 = uVar16 + (uint)local_8c & -(uint)local_8c;\n      local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0));\n    }\n    *(uint *)dot_value = local_94;\n    address = CONCAT44(local_90,local_94);\n    *(uint *)((int)dot_value + 4) = local_90;\n    if ((local_7c != (Output_section *)0x0) &&\n       (((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0)))) {\n      bVar2 = (local_7c->super_Output_data).field_0x1c;\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(uint *)&(local_7c->super_Output_data).address_ = local_94;\n      *(uint *)((int)&(local_7c->super_Output_data).address_ + 4) = local_90;\n      (local_7c->super_Output_data).field_0x1c = bVar2 | 1;\n    }\n  }" else (compound_statement "{\n    if ((pOVar14->field_0x91 & 2) != 0) {\n      Output_section::sort_attached_input_sections(pOVar14);\n      pOVar14 = this->output_section_;\n      if (pOVar14 == (Output_section *)0x0) goto LAB_0010a8a0;\n    }\n    if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    bVar13 = General_options::section_start(parameters->options_,pOVar14->name_,&address);\n    if (!bVar13) goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (Output_section *)0x0;\nLAB_0010a6de:\n    pEVar17 = this->align_;\n    if (pEVar17 == (Expression *)0x0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    local_8c = Expression::eval_with_dot\n                         (pEVar17,symtab,layout,true,*dot_value,(Output_section *)0x0,&align_section\n                          ,(uint64_t *)0x0,false);\n    if (align_section != (Output_section *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("alignment of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      local_8c._4_4_ = (uint)(local_8c >> 0x20);\n      *(uint *)&pOVar14->addralign_ = (uint)local_8c;\n      *(uint *)((int)&pOVar14->addralign_ + 4) = local_8c._4_4_;\n    }\nLAB_0010a762:\n    local_7c = (Output_section *)this->subalign_;\n    if (local_7c == (Output_section *)0x0) {\nLAB_0010a9e6:\n      local_7c = this->output_section_;\n      local_90 = address._4_4_;\n      local_94 = (uint)address;\n      if (local_8c._4_4_ != 0 || (uint)local_8c != 0) {\n        local_84 = 0;\n        goto LAB_0010a837;\n      }\n      local_84 = local_8c;\n    }\n    else {\nLAB_0010a770:\n      uVar24 = Expression::eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false);\n      if (align_section != (Output_section *)0x0) {\n        pcVar23 = (this->name_)._M_dataplus._M_p;\n        pcVar15 = (char *)gettext("subalign of section %s is not absolute");\n        gold_warning(pcVar15,pcVar23);\n      }\n      local_84._4_4_ = (uint)(uVar24 >> 0x20);\n      local_84._0_4_ = (uint)uVar24;\n      bVar13 = local_84._4_4_ == 0;\n      bVar9 = (uint)local_84 == 0;\n      local_84 = uVar24;\n      if (bVar13 && bVar9) {\n        local_84 = 1;\n      }\n      local_7c = this->output_section_;\n      if ((local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0)) {\n        *(uint *)&local_7c->addralign_ = (uint)local_84;\n        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;\n        local_8c = local_84;\n      }\n      local_94 = (uint)address;\n      local_90 = address._4_4_;\nLAB_0010a837:\n      bVar13 = local_94 != 0;\n      uVar16 = local_94 - 1;\n      local_94 = uVar16 + (uint)local_8c & -(uint)local_8c;\n      local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0));\n    }\n    *(uint *)dot_value = local_94;\n    address = CONCAT44(local_90,local_94);\n    *(uint *)((int)dot_value + 4) = local_90;\n    if ((local_7c != (Output_section *)0x0) &&\n       (((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0)))) {\n      bVar2 = (local_7c->super_Output_data).field_0x1c;\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(uint *)&(local_7c->super_Output_data).address_ = local_94;\n      *(uint *)((int)&(local_7c->super_Output_data).address_ + 4) = local_90;\n      (local_7c->super_Output_data).field_0x1c = bVar2 | 1;\n    }\n  }" { (if_statement "if ((pOVar14->field_0x91 & 2) != 0) {\n      Output_section::sort_attached_input_sections(pOVar14);\n      pOVar14 = this->output_section_;\n      if (pOVar14 == (Output_section *)0x0) goto LAB_0010a8a0;\n    }" if (parenthesized_expression "((pOVar14->field_0x91 & 2) != 0)" ( (binary_expression "(pOVar14->field_0x91 & 2) != 0" (parenthesized_expression "(pOVar14->field_0x91 & 2)" ( (binary_expression "pOVar14->field_0x91 & 2" (field_expression "pOVar14->field_0x91" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      Output_section::sort_attached_input_sections(pOVar14);\n      pOVar14 = this->output_section_;\n      if (pOVar14 == (Output_section *)0x0) goto LAB_0010a8a0;\n    }" { (labeled_statement "Output_section::sort_attached_input_sections(pOVar14);" statement_identifier : (ERROR ":" :) (expression_statement "sort_attached_input_sections(pOVar14);" (call_expression "sort_attached_input_sections(pOVar14)" identifier (argument_list "(pOVar14)" ( identifier ))) ;)) (expression_statement "pOVar14 = this->output_section_;" (assignment_expression "pOVar14 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) (if_statement "if (pOVar14 == (Output_section *)0x0) goto LAB_0010a8a0;" if (parenthesized_expression "(pOVar14 == (Output_section *)0x0)" ( (binary_expression "pOVar14 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0010a8a0;" goto statement_identifier ;)) })) (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" if (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)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (ERROR "bVar13 = General_options::" (assignment_expression "bVar13 = General_options" identifier = identifier) : :) (expression_statement "section_start(parameters->options_,pOVar14->name_,&address);" (call_expression "section_start(parameters->options_,pOVar14->name_,&address)" identifier (argument_list "(parameters->options_,pOVar14->name_,&address)" ( (field_expression "parameters->options_" identifier -> field_identifier) , (field_expression "pOVar14->name_" identifier -> field_identifier) , (pointer_expression "&address" & identifier) ))) ;) (if_statement "if (!bVar13) goto LAB_0010a8a0;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_0010a8a0;" goto statement_identifier ;)) (labeled_statement "LAB_0010a6d4:\n    local_98 = (Output_section *)0x0;" statement_identifier : (expression_statement "local_98 = (Output_section *)0x0;" (assignment_expression "local_98 = (Output_section *)0x0" identifier = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_0010a6de:\n    pEVar17 = this->align_;" statement_identifier : (expression_statement "pEVar17 = this->align_;" (assignment_expression "pEVar17 = this->align_" identifier = (field_expression "this->align_" identifier -> field_identifier)) ;)) (if_statement "if (pEVar17 == (Expression *)0x0) goto LAB_0010a9a5;" if (parenthesized_expression "(pEVar17 == (Expression *)0x0)" ( (binary_expression "pEVar17 == (Expression *)0x0" identifier == (cast_expression "(Expression *)0x0" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0010a9a5;" goto statement_identifier ;)) (labeled_statement "LAB_0010a6e9:\n    local_8c = Expression::eval_with_dot\n                         (pEVar17,symtab,layout,true,*dot_value,(Output_section *)0x0,&align_section\n                          ,(uint64_t *)0x0,false);" statement_identifier : (ERROR "local_8c = Expression::" (assignment_expression "local_8c = Expression" identifier = identifier) : :) (expression_statement "eval_with_dot\n                         (pEVar17,symtab,layout,true,*dot_value,(Output_section *)0x0,&align_section\n                          ,(uint64_t *)0x0,false);" (call_expression "eval_with_dot\n                         (pEVar17,symtab,layout,true,*dot_value,(Output_section *)0x0,&align_section\n                          ,(uint64_t *)0x0,false)" identifier (argument_list "(pEVar17,symtab,layout,true,*dot_value,(Output_section *)0x0,&align_section\n                          ,(uint64_t *)0x0,false)" ( identifier , identifier , identifier , true , (pointer_expression "*dot_value" * identifier) , (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&align_section" & identifier) , (cast_expression "(uint64_t *)0x0" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , false ))) ;)) (if_statement "if (align_section != (Output_section *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("alignment of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }" if (parenthesized_expression "(align_section != (Output_section *)0x0)" ( (binary_expression "align_section != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("alignment of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }" { (expression_statement "pcVar23 = (this->name_)._M_dataplus._M_p;" (assignment_expression "pcVar23 = (this->name_)._M_dataplus._M_p" identifier = (field_expression "(this->name_)._M_dataplus._M_p" (field_expression "(this->name_)._M_dataplus" (parenthesized_expression "(this->name_)" ( (field_expression "this->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar15 = (char *)gettext("alignment of section %s is not absolute");" (assignment_expression "pcVar15 = (char *)gettext("alignment of section %s is not absolute")" identifier = (cast_expression "(char *)gettext("alignment of section %s is not absolute")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("alignment of section %s is not absolute")" identifier (argument_list "("alignment of section %s is not absolute")" ( (string_literal ""alignment of section %s is not absolute"" " string_content ") ))))) ;) (expression_statement "gold_warning(pcVar15,pcVar23);" (call_expression "gold_warning(pcVar15,pcVar23)" identifier (argument_list "(pcVar15,pcVar23)" ( identifier , identifier ))) ;) })) (expression_statement "pOVar14 = this->output_section_;" (assignment_expression "pOVar14 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) (if_statement "if (pOVar14 != (Output_section *)0x0) {\n      local_8c._4_4_ = (uint)(local_8c >> 0x20);\n      *(uint *)&pOVar14->addralign_ = (uint)local_8c;\n      *(uint *)((int)&pOVar14->addralign_ + 4) = local_8c._4_4_;\n    }" if (parenthesized_expression "(pOVar14 != (Output_section *)0x0)" ( (binary_expression "pOVar14 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_8c._4_4_ = (uint)(local_8c >> 0x20);\n      *(uint *)&pOVar14->addralign_ = (uint)local_8c;\n      *(uint *)((int)&pOVar14->addralign_ + 4) = local_8c._4_4_;\n    }" { (expression_statement "local_8c._4_4_ = (uint)(local_8c >> 0x20);" (assignment_expression "local_8c._4_4_ = (uint)(local_8c >> 0x20)" (field_expression "local_8c._4_4_" identifier . field_identifier) = (call_expression "(uint)(local_8c >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_8c >> 0x20)" ( (binary_expression "local_8c >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "*(uint *)&pOVar14->addralign_ = (uint)local_8c;" (assignment_expression "*(uint *)&pOVar14->addralign_ = (uint)local_8c" (pointer_expression "*(uint *)&pOVar14->addralign_" * (cast_expression "(uint *)&pOVar14->addralign_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar14->addralign_" & (field_expression "pOVar14->addralign_" identifier -> field_identifier)))) = (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)&pOVar14->addralign_ + 4) = local_8c._4_4_;" (assignment_expression "*(uint *)((int)&pOVar14->addralign_ + 4) = local_8c._4_4_" (pointer_expression "*(uint *)((int)&pOVar14->addralign_ + 4)" * (cast_expression "(uint *)((int)&pOVar14->addralign_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar14->addralign_ + 4)" ( (binary_expression "(int)&pOVar14->addralign_ + 4" (cast_expression "(int)&pOVar14->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar14->addralign_" & (field_expression "pOVar14->addralign_" identifier -> field_identifier))) + number_literal) )))) = (field_expression "local_8c._4_4_" identifier . field_identifier)) ;) })) (labeled_statement "LAB_0010a762:\n    local_7c = (Output_section *)this->subalign_;" statement_identifier : (expression_statement "local_7c = (Output_section *)this->subalign_;" (assignment_expression "local_7c = (Output_section *)this->subalign_" identifier = (cast_expression "(Output_section *)this->subalign_" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->subalign_" identifier -> field_identifier))) ;)) (if_statement "if (local_7c == (Output_section *)0x0) {\nLAB_0010a9e6:\n      local_7c = this->output_section_;\n      local_90 = address._4_4_;\n      local_94 = (uint)address;\n      if (local_8c._4_4_ != 0 || (uint)local_8c != 0) {\n        local_84 = 0;\n        goto LAB_0010a837;\n      }\n      local_84 = local_8c;\n    }\n    else {\nLAB_0010a770:\n      uVar24 = Expression::eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false);\n      if (align_section != (Output_section *)0x0) {\n        pcVar23 = (this->name_)._M_dataplus._M_p;\n        pcVar15 = (char *)gettext("subalign of section %s is not absolute");\n        gold_warning(pcVar15,pcVar23);\n      }\n      local_84._4_4_ = (uint)(uVar24 >> 0x20);\n      local_84._0_4_ = (uint)uVar24;\n      bVar13 = local_84._4_4_ == 0;\n      bVar9 = (uint)local_84 == 0;\n      local_84 = uVar24;\n      if (bVar13 && bVar9) {\n        local_84 = 1;\n      }\n      local_7c = this->output_section_;\n      if ((local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0)) {\n        *(uint *)&local_7c->addralign_ = (uint)local_84;\n        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;\n        local_8c = local_84;\n      }\n      local_94 = (uint)address;\n      local_90 = address._4_4_;\nLAB_0010a837:\n      bVar13 = local_94 != 0;\n      uVar16 = local_94 - 1;\n      local_94 = uVar16 + (uint)local_8c & -(uint)local_8c;\n      local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0));\n    }" if (parenthesized_expression "(local_7c == (Output_section *)0x0)" ( (binary_expression "local_7c == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0010a9e6:\n      local_7c = this->output_section_;\n      local_90 = address._4_4_;\n      local_94 = (uint)address;\n      if (local_8c._4_4_ != 0 || (uint)local_8c != 0) {\n        local_84 = 0;\n        goto LAB_0010a837;\n      }\n      local_84 = local_8c;\n    }" { (labeled_statement "LAB_0010a9e6:\n      local_7c = this->output_section_;" statement_identifier : (expression_statement "local_7c = this->output_section_;" (assignment_expression "local_7c = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;)) (expression_statement "local_90 = address._4_4_;" (assignment_expression "local_90 = address._4_4_" identifier = (field_expression "address._4_4_" identifier . field_identifier)) ;) (expression_statement "local_94 = (uint)address;" (assignment_expression "local_94 = (uint)address" identifier = (cast_expression "(uint)address" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_8c._4_4_ != 0 || (uint)local_8c != 0) {\n        local_84 = 0;\n        goto LAB_0010a837;\n      }" if (parenthesized_expression "(local_8c._4_4_ != 0 || (uint)local_8c != 0)" ( (binary_expression "local_8c._4_4_ != 0 || (uint)local_8c != 0" (binary_expression "local_8c._4_4_ != 0" (field_expression "local_8c._4_4_" identifier . field_identifier) != number_literal) || (binary_expression "(uint)local_8c != 0" (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal)) )) (compound_statement "{\n        local_84 = 0;\n        goto LAB_0010a837;\n      }" { (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0010a837;" goto statement_identifier ;) })) (expression_statement "local_84 = local_8c;" (assignment_expression "local_84 = local_8c" identifier = identifier) ;) }) (else_clause "else {\nLAB_0010a770:\n      uVar24 = Expression::eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false);\n      if (align_section != (Output_section *)0x0) {\n        pcVar23 = (this->name_)._M_dataplus._M_p;\n        pcVar15 = (char *)gettext("subalign of section %s is not absolute");\n        gold_warning(pcVar15,pcVar23);\n      }\n      local_84._4_4_ = (uint)(uVar24 >> 0x20);\n      local_84._0_4_ = (uint)uVar24;\n      bVar13 = local_84._4_4_ == 0;\n      bVar9 = (uint)local_84 == 0;\n      local_84 = uVar24;\n      if (bVar13 && bVar9) {\n        local_84 = 1;\n      }\n      local_7c = this->output_section_;\n      if ((local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0)) {\n        *(uint *)&local_7c->addralign_ = (uint)local_84;\n        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;\n        local_8c = local_84;\n      }\n      local_94 = (uint)address;\n      local_90 = address._4_4_;\nLAB_0010a837:\n      bVar13 = local_94 != 0;\n      uVar16 = local_94 - 1;\n      local_94 = uVar16 + (uint)local_8c & -(uint)local_8c;\n      local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0));\n    }" else (compound_statement "{\nLAB_0010a770:\n      uVar24 = Expression::eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false);\n      if (align_section != (Output_section *)0x0) {\n        pcVar23 = (this->name_)._M_dataplus._M_p;\n        pcVar15 = (char *)gettext("subalign of section %s is not absolute");\n        gold_warning(pcVar15,pcVar23);\n      }\n      local_84._4_4_ = (uint)(uVar24 >> 0x20);\n      local_84._0_4_ = (uint)uVar24;\n      bVar13 = local_84._4_4_ == 0;\n      bVar9 = (uint)local_84 == 0;\n      local_84 = uVar24;\n      if (bVar13 && bVar9) {\n        local_84 = 1;\n      }\n      local_7c = this->output_section_;\n      if ((local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0)) {\n        *(uint *)&local_7c->addralign_ = (uint)local_84;\n        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;\n        local_8c = local_84;\n      }\n      local_94 = (uint)address;\n      local_90 = address._4_4_;\nLAB_0010a837:\n      bVar13 = local_94 != 0;\n      uVar16 = local_94 - 1;\n      local_94 = uVar16 + (uint)local_8c & -(uint)local_8c;\n      local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0));\n    }" { (labeled_statement "LAB_0010a770:\n      uVar24 = Expression::eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false);" statement_identifier : (ERROR "uVar24 = Expression::" (assignment_expression "uVar24 = Expression" identifier = identifier) : :) (expression_statement "eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false);" (call_expression "eval_with_dot\n                         ((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false)" identifier (argument_list "((Expression *)local_7c,symtab,layout,true,*dot_value,(Output_section *)0x0\n                          ,&align_section,(uint64_t *)0x0,false)" ( (cast_expression "(Expression *)local_7c" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , true , (pointer_expression "*dot_value" * identifier) , (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&align_section" & identifier) , (cast_expression "(uint64_t *)0x0" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , false ))) ;)) (if_statement "if (align_section != (Output_section *)0x0) {\n        pcVar23 = (this->name_)._M_dataplus._M_p;\n        pcVar15 = (char *)gettext("subalign of section %s is not absolute");\n        gold_warning(pcVar15,pcVar23);\n      }" if (parenthesized_expression "(align_section != (Output_section *)0x0)" ( (binary_expression "align_section != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar23 = (this->name_)._M_dataplus._M_p;\n        pcVar15 = (char *)gettext("subalign of section %s is not absolute");\n        gold_warning(pcVar15,pcVar23);\n      }" { (expression_statement "pcVar23 = (this->name_)._M_dataplus._M_p;" (assignment_expression "pcVar23 = (this->name_)._M_dataplus._M_p" identifier = (field_expression "(this->name_)._M_dataplus._M_p" (field_expression "(this->name_)._M_dataplus" (parenthesized_expression "(this->name_)" ( (field_expression "this->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar15 = (char *)gettext("subalign of section %s is not absolute");" (assignment_expression "pcVar15 = (char *)gettext("subalign of section %s is not absolute")" identifier = (cast_expression "(char *)gettext("subalign of section %s is not absolute")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("subalign of section %s is not absolute")" identifier (argument_list "("subalign of section %s is not absolute")" ( (string_literal ""subalign of section %s is not absolute"" " string_content ") ))))) ;) (expression_statement "gold_warning(pcVar15,pcVar23);" (call_expression "gold_warning(pcVar15,pcVar23)" identifier (argument_list "(pcVar15,pcVar23)" ( identifier , identifier ))) ;) })) (expression_statement "local_84._4_4_ = (uint)(uVar24 >> 0x20);" (assignment_expression "local_84._4_4_ = (uint)(uVar24 >> 0x20)" (field_expression "local_84._4_4_" identifier . field_identifier) = (call_expression "(uint)(uVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 >> 0x20)" ( (binary_expression "uVar24 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_84._0_4_ = (uint)uVar24;" (assignment_expression "local_84._0_4_ = (uint)uVar24" (field_expression "local_84._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar13 = local_84._4_4_ == 0;" (assignment_expression "bVar13 = local_84._4_4_ == 0" identifier = (binary_expression "local_84._4_4_ == 0" (field_expression "local_84._4_4_" identifier . field_identifier) == number_literal)) ;) (expression_statement "bVar9 = (uint)local_84 == 0;" (assignment_expression "bVar9 = (uint)local_84 == 0" identifier = (binary_expression "(uint)local_84 == 0" (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal)) ;) (expression_statement "local_84 = uVar24;" (assignment_expression "local_84 = uVar24" identifier = identifier) ;) (if_statement "if (bVar13 && bVar9) {\n        local_84 = 1;\n      }" if (parenthesized_expression "(bVar13 && bVar9)" ( (binary_expression "bVar13 && bVar9" identifier && identifier) )) (compound_statement "{\n        local_84 = 1;\n      }" { (expression_statement "local_84 = 1;" (assignment_expression "local_84 = 1" identifier = number_literal) ;) })) (expression_statement "local_7c = this->output_section_;" (assignment_expression "local_7c = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) (if_statement "if ((local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0)) {\n        *(uint *)&local_7c->addralign_ = (uint)local_84;\n        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;\n        local_8c = local_84;\n      }" if (parenthesized_expression "((local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0))" ( (binary_expression "(local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)) ||\n         (this->align_ == (Expression *)0x0)" (parenthesized_expression "(local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84))" ( (binary_expression "local_8c._4_4_ < local_84._4_4_ ||\n           local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)" (binary_expression "local_8c._4_4_ < local_84._4_4_" (field_expression "local_8c._4_4_" identifier . field_identifier) < (field_expression "local_84._4_4_" identifier . field_identifier)) || (binary_expression "local_8c._4_4_ - local_84._4_4_ < (uint)((uint)local_8c < (uint)local_84)" (binary_expression "local_8c._4_4_ - local_84._4_4_" (field_expression "local_8c._4_4_" identifier . field_identifier) - (field_expression "local_84._4_4_" identifier . field_identifier)) < (call_expression "(uint)((uint)local_8c < (uint)local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)local_8c < (uint)local_84)" ( (binary_expression "(uint)local_8c < (uint)local_84" (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) || (parenthesized_expression "(this->align_ == (Expression *)0x0)" ( (binary_expression "this->align_ == (Expression *)0x0" (field_expression "this->align_" identifier -> field_identifier) == (cast_expression "(Expression *)0x0" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        *(uint *)&local_7c->addralign_ = (uint)local_84;\n        *(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;\n        local_8c = local_84;\n      }" { (expression_statement "*(uint *)&local_7c->addralign_ = (uint)local_84;" (assignment_expression "*(uint *)&local_7c->addralign_ = (uint)local_84" (pointer_expression "*(uint *)&local_7c->addralign_" * (cast_expression "(uint *)&local_7c->addralign_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c->addralign_" & (field_expression "local_7c->addralign_" identifier -> field_identifier)))) = (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_;" (assignment_expression "*(uint *)((int)&local_7c->addralign_ + 4) = local_84._4_4_" (pointer_expression "*(uint *)((int)&local_7c->addralign_ + 4)" * (cast_expression "(uint *)((int)&local_7c->addralign_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_7c->addralign_ + 4)" ( (binary_expression "(int)&local_7c->addralign_ + 4" (cast_expression "(int)&local_7c->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_7c->addralign_" & (field_expression "local_7c->addralign_" identifier -> field_identifier))) + number_literal) )))) = (field_expression "local_84._4_4_" identifier . field_identifier)) ;) (expression_statement "local_8c = local_84;" (assignment_expression "local_8c = local_84" identifier = identifier) ;) })) (expression_statement "local_94 = (uint)address;" (assignment_expression "local_94 = (uint)address" identifier = (cast_expression "(uint)address" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_90 = address._4_4_;" (assignment_expression "local_90 = address._4_4_" identifier = (field_expression "address._4_4_" identifier . field_identifier)) ;) (labeled_statement "LAB_0010a837:\n      bVar13 = local_94 != 0;" statement_identifier : (expression_statement "bVar13 = local_94 != 0;" (assignment_expression "bVar13 = local_94 != 0" identifier = (binary_expression "local_94 != 0" identifier != number_literal)) ;)) (expression_statement "uVar16 = local_94 - 1;" (assignment_expression "uVar16 = local_94 - 1" identifier = (binary_expression "local_94 - 1" identifier - number_literal)) ;) (expression_statement "local_94 = uVar16 + (uint)local_8c & -(uint)local_8c;" (assignment_expression "local_94 = uVar16 + (uint)local_8c & -(uint)local_8c" identifier = (binary_expression "uVar16 + (uint)local_8c & -(uint)local_8c" (binary_expression "uVar16 + (uint)local_8c" identifier + (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) & (unary_expression "-(uint)local_8c" - (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (expression_statement "local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0));" (assignment_expression "local_90 = (local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0))" identifier = (binary_expression "(local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c) & -(local_8c._4_4_ + ((uint)local_8c != 0))" (binary_expression "(local_90 - 1) + (uint)bVar13 + local_8c._4_4_ +\n                 (uint)CARRY4(uVar16,(uint)local_8c)" (binary_expression "(local_90 - 1) + (uint)bVar13 + local_8c._4_4_" (binary_expression "(local_90 - 1) + (uint)bVar13" (parenthesized_expression "(local_90 - 1)" ( (binary_expression "local_90 - 1" identifier - number_literal) )) + (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) + (field_expression "local_8c._4_4_" identifier . field_identifier)) + (cast_expression "(uint)CARRY4(uVar16,(uint)local_8c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,(uint)local_8c)" identifier (argument_list "(uVar16,(uint)local_8c)" ( identifier , (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) & (unary_expression "-(local_8c._4_4_ + ((uint)local_8c != 0))" - (parenthesized_expression "(local_8c._4_4_ + ((uint)local_8c != 0))" ( (binary_expression "local_8c._4_4_ + ((uint)local_8c != 0)" (field_expression "local_8c._4_4_" identifier . field_identifier) + (parenthesized_expression "((uint)local_8c != 0)" ( (binary_expression "(uint)local_8c != 0" (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal) ))) ))))) ;) }))) (expression_statement "*(uint *)dot_value = local_94;" (assignment_expression "*(uint *)dot_value = local_94" (pointer_expression "*(uint *)dot_value" * (cast_expression "(uint *)dot_value" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "address = CONCAT44(local_90,local_94);" (assignment_expression "address = CONCAT44(local_90,local_94)" identifier = (call_expression "CONCAT44(local_90,local_94)" identifier (argument_list "(local_90,local_94)" ( identifier , identifier )))) ;) (expression_statement "*(uint *)((int)dot_value + 4) = local_90;" (assignment_expression "*(uint *)((int)dot_value + 4) = local_90" (pointer_expression "*(uint *)((int)dot_value + 4)" * (cast_expression "(uint *)((int)dot_value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if ((local_7c != (Output_section *)0x0) &&\n       (((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0)))) {\n      bVar2 = (local_7c->super_Output_data).field_0x1c;\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(uint *)&(local_7c->super_Output_data).address_ = local_94;\n      *(uint *)((int)&(local_7c->super_Output_data).address_ + 4) = local_90;\n      (local_7c->super_Output_data).field_0x1c = bVar2 | 1;\n    }" if (parenthesized_expression "((local_7c != (Output_section *)0x0) &&\n       (((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0))))" ( (binary_expression "(local_7c != (Output_section *)0x0) &&\n       (((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0)))" (parenthesized_expression "(local_7c != (Output_section *)0x0)" ( (binary_expression "local_7c != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0)))" ( (parenthesized_expression "((local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0))" ( (binary_expression "(local_7c->flags_ & 2) != 0 || ((local_7c->field_0x92 & 8) != 0)" (binary_expression "(local_7c->flags_ & 2) != 0" (parenthesized_expression "(local_7c->flags_ & 2)" ( (binary_expression "local_7c->flags_ & 2" (field_expression "local_7c->flags_" identifier -> field_identifier) & number_literal) )) != number_literal) || (parenthesized_expression "((local_7c->field_0x92 & 8) != 0)" ( (binary_expression "(local_7c->field_0x92 & 8) != 0" (parenthesized_expression "(local_7c->field_0x92 & 8)" ( (binary_expression "local_7c->field_0x92 & 8" (field_expression "local_7c->field_0x92" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n      bVar2 = (local_7c->super_Output_data).field_0x1c;\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(uint *)&(local_7c->super_Output_data).address_ = local_94;\n      *(uint *)((int)&(local_7c->super_Output_data).address_ + 4) = local_90;\n      (local_7c->super_Output_data).field_0x1c = bVar2 | 1;\n    }" { (expression_statement "bVar2 = (local_7c->super_Output_data).field_0x1c;" (assignment_expression "bVar2 = (local_7c->super_Output_data).field_0x1c" identifier = (field_expression "(local_7c->super_Output_data).field_0x1c" (parenthesized_expression "(local_7c->super_Output_data)" ( (field_expression "local_7c->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }" if (parenthesized_expression "((bVar2 & 1) != 0)" ( (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }" { 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 "*(uint *)&(local_7c->super_Output_data).address_ = local_94;" (assignment_expression "*(uint *)&(local_7c->super_Output_data).address_ = local_94" (pointer_expression "*(uint *)&(local_7c->super_Output_data).address_" * (cast_expression "(uint *)&(local_7c->super_Output_data).address_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_7c->super_Output_data).address_" & (field_expression "(local_7c->super_Output_data).address_" (parenthesized_expression "(local_7c->super_Output_data)" ( (field_expression "local_7c->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&(local_7c->super_Output_data).address_ + 4) = local_90;" (assignment_expression "*(uint *)((int)&(local_7c->super_Output_data).address_ + 4) = local_90" (pointer_expression "*(uint *)((int)&(local_7c->super_Output_data).address_ + 4)" * (cast_expression "(uint *)((int)&(local_7c->super_Output_data).address_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_7c->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(local_7c->super_Output_data).address_ + 4" (cast_expression "(int)&(local_7c->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_7c->super_Output_data).address_" & (field_expression "(local_7c->super_Output_data).address_" (parenthesized_expression "(local_7c->super_Output_data)" ( (field_expression "local_7c->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "(local_7c->super_Output_data).field_0x1c = bVar2 | 1;" (assignment_expression "(local_7c->super_Output_data).field_0x1c = bVar2 | 1" (field_expression "(local_7c->super_Output_data).field_0x1c" (parenthesized_expression "(local_7c->super_Output_data)" ( (field_expression "local_7c->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar2 | 1" identifier | number_literal)) ;) })) }))) (expression_statement "*(uint *)&this->evaluated_address_ = local_94;" (assignment_expression "*(uint *)&this->evaluated_address_ = local_94" (pointer_expression "*(uint *)&this->evaluated_address_" * (cast_expression "(uint *)&this->evaluated_address_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->evaluated_address_" & (field_expression "this->evaluated_address_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&this->evaluated_address_ + 4) = local_90;" (assignment_expression "*(uint *)((int)&this->evaluated_address_ + 4) = local_90" (pointer_expression "*(uint *)((int)&this->evaluated_address_ + 4)" * (cast_expression "(uint *)((int)&this->evaluated_address_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->evaluated_address_ + 4)" ( (binary_expression "(int)&this->evaluated_address_ + 4" (cast_expression "(int)&this->evaluated_address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->evaluated_address_" & (field_expression "this->evaluated_address_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)&this->evaluated_addralign_ = (uint)local_8c;" (assignment_expression "*(uint *)&this->evaluated_addralign_ = (uint)local_8c" (pointer_expression "*(uint *)&this->evaluated_addralign_" * (cast_expression "(uint *)&this->evaluated_addralign_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->evaluated_addralign_" & (field_expression "this->evaluated_addralign_" identifier -> field_identifier)))) = (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pEVar17 = this->load_address_;" (assignment_expression "pEVar17 = this->load_address_" identifier = (field_expression "this->load_address_" identifier -> field_identifier)) ;) (expression_statement "*(uint *)((int)&this->evaluated_addralign_ + 4) = local_8c._4_4_;" (assignment_expression "*(uint *)((int)&this->evaluated_addralign_ + 4) = local_8c._4_4_" (pointer_expression "*(uint *)((int)&this->evaluated_addralign_ + 4)" * (cast_expression "(uint *)((int)&this->evaluated_addralign_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->evaluated_addralign_ + 4)" ( (binary_expression "(int)&this->evaluated_addralign_ + 4" (cast_expression "(int)&this->evaluated_addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->evaluated_addralign_" & (field_expression "this->evaluated_addralign_" identifier -> field_identifier))) + number_literal) )))) = (field_expression "local_8c._4_4_" identifier . field_identifier)) ;) (if_statement "if (pEVar17 == (Expression *)0x0) {\n    local_74 = (Output_section *)\n               Script_sections::find_memory_region\n                         (this_00,this,false,false,(Output_section_definition **)&align_section);\n    pOVar14 = (Output_section *)0x0;\n    uVar24 = address;\n    if (local_74 != (Output_section *)0x0) {\n      if (align_section == (Output_section *)0x0) {\n        pEVar17 = script_exp_integer(local_74->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n        uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      else {\n        local_74 = pOVar14;\n        if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }\n      }\n      pOVar8 = this->output_section_;\n      pOVar14 = local_74;\n      if (pOVar8 != (Output_section *)0x0) {\n        pOVar8->load_address_ = uVar24;\n        pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80;\n      }\n    }\n  }\n  else {\n    uVar24 = Expression::eval_with_dot\n                       (pEVar17,symtab,layout,true,*dot_value,local_7c,(Output_section **)0x0,\n                        (uint64_t *)0x0,false);\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x80;\n      pOVar14->load_address_ = uVar24;\n      local_74 = (Output_section *)0x0;\n      pOVar14 = local_74;\n    }\n  }" if (parenthesized_expression "(pEVar17 == (Expression *)0x0)" ( (binary_expression "pEVar17 == (Expression *)0x0" identifier == (cast_expression "(Expression *)0x0" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_74 = (Output_section *)\n               Script_sections::find_memory_region\n                         (this_00,this,false,false,(Output_section_definition **)&align_section);\n    pOVar14 = (Output_section *)0x0;\n    uVar24 = address;\n    if (local_74 != (Output_section *)0x0) {\n      if (align_section == (Output_section *)0x0) {\n        pEVar17 = script_exp_integer(local_74->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n        uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      else {\n        local_74 = pOVar14;\n        if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }\n      }\n      pOVar8 = this->output_section_;\n      pOVar14 = local_74;\n      if (pOVar8 != (Output_section *)0x0) {\n        pOVar8->load_address_ = uVar24;\n        pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80;\n      }\n    }\n  }" { (ERROR "local_74 = (Output_section *)\n               Script_sections::" (assignment_expression "local_74 = (Output_section *)\n               Script_sections" identifier = (cast_expression "(Output_section *)\n               Script_sections" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "find_memory_region\n                         (this_00,this,false,false,(Output_section_definition **)&align_section);" (call_expression "find_memory_region\n                         (this_00,this,false,false,(Output_section_definition **)&align_section)" identifier (argument_list "(this_00,this,false,false,(Output_section_definition **)&align_section)" ( identifier , identifier , false , false , (cast_expression "(Output_section_definition **)&align_section" ( (type_descriptor "Output_section_definition **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&align_section" & identifier)) ))) ;) (expression_statement "pOVar14 = (Output_section *)0x0;" (assignment_expression "pOVar14 = (Output_section *)0x0" identifier = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar24 = address;" (assignment_expression "uVar24 = address" identifier = identifier) ;) (if_statement "if (local_74 != (Output_section *)0x0) {\n      if (align_section == (Output_section *)0x0) {\n        pEVar17 = script_exp_integer(local_74->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n        uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      else {\n        local_74 = pOVar14;\n        if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }\n      }\n      pOVar8 = this->output_section_;\n      pOVar14 = local_74;\n      if (pOVar8 != (Output_section *)0x0) {\n        pOVar8->load_address_ = uVar24;\n        pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80;\n      }\n    }" if (parenthesized_expression "(local_74 != (Output_section *)0x0)" ( (binary_expression "local_74 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (align_section == (Output_section *)0x0) {\n        pEVar17 = script_exp_integer(local_74->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n        uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      else {\n        local_74 = pOVar14;\n        if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }\n      }\n      pOVar8 = this->output_section_;\n      pOVar14 = local_74;\n      if (pOVar8 != (Output_section *)0x0) {\n        pOVar8->load_address_ = uVar24;\n        pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80;\n      }\n    }" { (if_statement "if (align_section == (Output_section *)0x0) {\n        pEVar17 = script_exp_integer(local_74->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n        uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      }\n      else {\n        local_74 = pOVar14;\n        if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }\n      }" if (parenthesized_expression "(align_section == (Output_section *)0x0)" ( (binary_expression "align_section == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pEVar17 = script_exp_integer(local_74->addralign_);\n        pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n        uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      }" { (expression_statement "pEVar17 = script_exp_integer(local_74->addralign_);" (assignment_expression "pEVar17 = script_exp_integer(local_74->addralign_)" identifier = (call_expression "script_exp_integer(local_74->addralign_)" identifier (argument_list "(local_74->addralign_)" ( (field_expression "local_74->addralign_" identifier -> field_identifier) )))) ;) (expression_statement "pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);" (assignment_expression "pEVar17 = script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17)" identifier = (call_expression "script_exp_binary_add\n                            (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17)" identifier (argument_list "(*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17)" ( (pointer_expression "*(Expression **)&(local_74->super_Output_data).field_0x1c" * (cast_expression "(Expression **)&(local_74->super_Output_data).field_0x1c" ( (type_descriptor "Expression **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(local_74->super_Output_data).field_0x1c" & (field_expression "(local_74->super_Output_data).field_0x1c" (parenthesized_expression "(local_74->super_Output_data)" ( (field_expression "local_74->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) , identifier )))) ;) (ERROR "uVar24 = Expression::" (assignment_expression "uVar24 = Expression" identifier = identifier) : :) (expression_statement "eval(pEVar17,symtab,layout,false);" (call_expression "eval(pEVar17,symtab,layout,false)" identifier (argument_list "(pEVar17,symtab,layout,false)" ( identifier , identifier , identifier , false ))) ;) }) (else_clause "else {\n        local_74 = pOVar14;\n        if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }\n      }" else (compound_statement "{\n        local_74 = pOVar14;\n        if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }\n      }" { (expression_statement "local_74 = pOVar14;" (assignment_expression "local_74 = pOVar14" identifier = identifier) ;) (if_statement "if ((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)) {\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }" if (parenthesized_expression "((this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this))" ( (binary_expression "(this->address_ == (Expression *)0x0) && (align_section != (Output_section *)this)" (parenthesized_expression "(this->address_ == (Expression *)0x0)" ( (binary_expression "this->address_ == (Expression *)0x0" (field_expression "this->address_" identifier -> field_identifier) == (cast_expression "(Expression *)0x0" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(align_section != (Output_section *)this)" ( (binary_expression "align_section != (Output_section *)this" identifier != (cast_expression "(Output_section *)this" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) )) (compound_statement "{\n          pSVar19 = (Symbol *)((uint)address + align_section->type_);\n          uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);\n        }" { (expression_statement "pSVar19 = (Symbol *)((uint)address + align_section->type_);" (assignment_expression "pSVar19 = (Symbol *)((uint)address + align_section->type_)" identifier = (cast_expression "(Symbol *)((uint)address + align_section->type_)" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)address + align_section->type_)" ( (binary_expression "(uint)address + align_section->type_" (cast_expression "(uint)address" ( (type_descriptor "uint" type_identifier) ) identifier) + (field_expression "align_section->type_" identifier -> field_identifier)) )))) ;) (expression_statement "uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_);" (assignment_expression "uVar24 = CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_)" identifier = (call_expression "CONCAT44(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_)" identifier (argument_list "(((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_),\n                            (int)pSVar19 - (int)align_section->info_symndx_)" ( (binary_expression "((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_) - (uint)(pSVar19 < align_section->info_symndx_)" (parenthesized_expression "((address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_)" ( (binary_expression "(address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)) -\n                            align_section->info_" (parenthesized_expression "(address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_))" ( (binary_expression "address._4_4_ + (int)align_section->flags_ +\n                             (uint)CARRY4((uint)address,align_section->type_)" (binary_expression "address._4_4_ + (int)align_section->flags_" (field_expression "address._4_4_" identifier . field_identifier) + (cast_expression "(int)align_section->flags_" ( (type_descriptor "int" primitive_type) ) (field_expression "align_section->flags_" identifier -> field_identifier))) + (cast_expression "(uint)CARRY4((uint)address,align_section->type_)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)address,align_section->type_)" identifier (argument_list "((uint)address,align_section->type_)" ( (cast_expression "(uint)address" ( (type_descriptor "uint" type_identifier) ) identifier) , (field_expression "align_section->type_" identifier -> field_identifier) ))))) )) - (field_expression "align_section->info_" identifier -> field_identifier)) )) - (call_expression "(uint)(pSVar19 < align_section->info_symndx_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pSVar19 < align_section->info_symndx_)" ( (binary_expression "pSVar19 < align_section->info_symndx_" identifier < (field_expression "align_section->info_symndx_" identifier -> field_identifier)) )))) , (binary_expression "(int)pSVar19 - (int)align_section->info_symndx_" (cast_expression "(int)pSVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)align_section->info_symndx_" ( (type_descriptor "int" primitive_type) ) (field_expression "align_section->info_symndx_" identifier -> field_identifier))) )))) ;) })) }))) (expression_statement "pOVar8 = this->output_section_;" (assignment_expression "pOVar8 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) (expression_statement "pOVar14 = local_74;" (assignment_expression "pOVar14 = local_74" identifier = identifier) ;) (if_statement "if (pOVar8 != (Output_section *)0x0) {\n        pOVar8->load_address_ = uVar24;\n        pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80;\n      }" if (parenthesized_expression "(pOVar8 != (Output_section *)0x0)" ( (binary_expression "pOVar8 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pOVar8->load_address_ = uVar24;\n        pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80;\n      }" { (expression_statement "pOVar8->load_address_ = uVar24;" (assignment_expression "pOVar8->load_address_ = uVar24" (field_expression "pOVar8->load_address_" identifier -> field_identifier) = identifier) ;) (expression_statement "pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80;" (assignment_expression "pOVar8->field_0x90 = pOVar8->field_0x90 | 0x80" (field_expression "pOVar8->field_0x90" identifier -> field_identifier) = (binary_expression "pOVar8->field_0x90 | 0x80" (field_expression "pOVar8->field_0x90" identifier -> field_identifier) | number_literal)) ;) })) })) }) (else_clause "else {\n    uVar24 = Expression::eval_with_dot\n                       (pEVar17,symtab,layout,true,*dot_value,local_7c,(Output_section **)0x0,\n                        (uint64_t *)0x0,false);\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x80;\n      pOVar14->load_address_ = uVar24;\n      local_74 = (Output_section *)0x0;\n      pOVar14 = local_74;\n    }\n  }" else (compound_statement "{\n    uVar24 = Expression::eval_with_dot\n                       (pEVar17,symtab,layout,true,*dot_value,local_7c,(Output_section **)0x0,\n                        (uint64_t *)0x0,false);\n    pOVar14 = this->output_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x80;\n      pOVar14->load_address_ = uVar24;\n      local_74 = (Output_section *)0x0;\n      pOVar14 = local_74;\n    }\n  }" { (ERROR "uVar24 = Expression::" (assignment_expression "uVar24 = Expression" identifier = identifier) : :) (expression_statement "eval_with_dot\n                       (pEVar17,symtab,layout,true,*dot_value,local_7c,(Output_section **)0x0,\n                        (uint64_t *)0x0,false);" (call_expression "eval_with_dot\n                       (pEVar17,symtab,layout,true,*dot_value,local_7c,(Output_section **)0x0,\n                        (uint64_t *)0x0,false)" identifier (argument_list "(pEVar17,symtab,layout,true,*dot_value,local_7c,(Output_section **)0x0,\n                        (uint64_t *)0x0,false)" ( identifier , identifier , identifier , true , (pointer_expression "*dot_value" * identifier) , identifier , (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(uint64_t *)0x0" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , false ))) ;) (expression_statement "pOVar14 = this->output_section_;" (assignment_expression "pOVar14 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) (if_statement "if (pOVar14 != (Output_section *)0x0) {\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x80;\n      pOVar14->load_address_ = uVar24;\n      local_74 = (Output_section *)0x0;\n      pOVar14 = local_74;\n    }" if (parenthesized_expression "(pOVar14 != (Output_section *)0x0)" ( (binary_expression "pOVar14 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x80;\n      pOVar14->load_address_ = uVar24;\n      local_74 = (Output_section *)0x0;\n      pOVar14 = local_74;\n    }" { (expression_statement "pOVar14->field_0x90 = pOVar14->field_0x90 | 0x80;" (assignment_expression "pOVar14->field_0x90 = pOVar14->field_0x90 | 0x80" (field_expression "pOVar14->field_0x90" identifier -> field_identifier) = (binary_expression "pOVar14->field_0x90 | 0x80" (field_expression "pOVar14->field_0x90" identifier -> field_identifier) | number_literal)) ;) (expression_statement "pOVar14->load_address_ = uVar24;" (assignment_expression "pOVar14->load_address_ = uVar24" (field_expression "pOVar14->load_address_" identifier -> field_identifier) = identifier) ;) (expression_statement "local_74 = (Output_section *)0x0;" (assignment_expression "local_74 = (Output_section *)0x0" identifier = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pOVar14 = local_74;" (assignment_expression "pOVar14 = local_74" identifier = identifier) ;) })) }))) (expression_statement "local_74 = pOVar14;" (assignment_expression "local_74 = pOVar14" identifier = identifier) ;) (expression_statement "paVar1 = &fill.field_2;" (assignment_expression "paVar1 = &fill.field_2" identifier = (pointer_expression "&fill.field_2" & (field_expression "fill.field_2" identifier . field_identifier))) ;) (expression_statement "this->evaluated_load_address_ = uVar24;" (assignment_expression "this->evaluated_load_address_ = uVar24" (field_expression "this->evaluated_load_address_" identifier -> field_identifier) = identifier) ;) (expression_statement "fill._M_string_length = 0;" (assignment_expression "fill._M_string_length = 0" (field_expression "fill._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "fill.field_2._M_local_buf[0] = '\0';" (assignment_expression "fill.field_2._M_local_buf[0] = '\0'" (subscript_expression "fill.field_2._M_local_buf[0]" (field_expression "fill.field_2._M_local_buf" (field_expression "fill.field_2" identifier . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "fill._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "fill._M_dataplus._M_p = (pointer)paVar1" (field_expression "fill._M_dataplus._M_p" (field_expression "fill._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (this->fill_ != (Expression *)0x0) {\n                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */\n    uVar24 = Expression::eval_with_dot\n                       (this->fill_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)&input_sections,(uint64_t *)0x0,false);\n    uVar16 = (uint)uVar24;\n    if (input_sections.\n        super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("fill of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }\n    align_section =\n         (Output_section *)\n         (uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18);\n    std::string::_M_replace((string *)&fill,0,fill._M_string_length,(char *)&align_section,4);\n  }" if (parenthesized_expression "(this->fill_ != (Expression *)0x0)" ( (binary_expression "this->fill_ != (Expression *)0x0" (field_expression "this->fill_" identifier -> field_identifier) != (cast_expression "(Expression *)0x0" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */\n    uVar24 = Expression::eval_with_dot\n                       (this->fill_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)&input_sections,(uint64_t *)0x0,false);\n    uVar16 = (uint)uVar24;\n    if (input_sections.\n        super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("fill of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }\n    align_section =\n         (Output_section *)\n         (uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18);\n    std::string::_M_replace((string *)&fill,0,fill._M_string_length,(char *)&align_section,4);\n  }" { comment (ERROR "uVar24 = Expression::" (assignment_expression "uVar24 = Expression" identifier = identifier) : :) (expression_statement "eval_with_dot\n                       (this->fill_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)&input_sections,(uint64_t *)0x0,false);" (call_expression "eval_with_dot\n                       (this->fill_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)&input_sections,(uint64_t *)0x0,false)" identifier (argument_list "(this->fill_,symtab,layout,true,*dot_value,(Output_section *)0x0,\n                        (Output_section **)&input_sections,(uint64_t *)0x0,false)" ( (field_expression "this->fill_" identifier -> field_identifier) , identifier , identifier , true , (pointer_expression "*dot_value" * identifier) , (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Output_section **)&input_sections" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&input_sections" & identifier)) , (cast_expression "(uint64_t *)0x0" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , false ))) ;) (expression_statement "uVar16 = (uint)uVar24;" (assignment_expression "uVar16 = (uint)uVar24" identifier = (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (input_sections.\n        super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)0x0) {\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("fill of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }" if (parenthesized_expression "(input_sections.\n        super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)0x0)" ( (ERROR "input_sections.\n        super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "input_sections.\n        super__List_base<gold::Output_section::Input_section,_std" (binary_expression "input_sections.\n        super__List_base<gold" (field_expression "input_sections.\n        super__List_base" identifier . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>\n        ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)0x0" (field_expression "Input_section>_>\n        ._M_impl._M_node.super__List_node_base._M_next" (field_expression "Input_section>_>\n        ._M_impl._M_node.super__List_node_base" (field_expression "Input_section>_>\n        ._M_impl._M_node" (field_expression "Input_section>_>\n        ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) != (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar23 = (this->name_)._M_dataplus._M_p;\n      pcVar15 = (char *)gettext("fill of section %s is not absolute");\n      gold_warning(pcVar15,pcVar23);\n    }" { (expression_statement "pcVar23 = (this->name_)._M_dataplus._M_p;" (assignment_expression "pcVar23 = (this->name_)._M_dataplus._M_p" identifier = (field_expression "(this->name_)._M_dataplus._M_p" (field_expression "(this->name_)._M_dataplus" (parenthesized_expression "(this->name_)" ( (field_expression "this->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar15 = (char *)gettext("fill of section %s is not absolute");" (assignment_expression "pcVar15 = (char *)gettext("fill of section %s is not absolute")" identifier = (cast_expression "(char *)gettext("fill of section %s is not absolute")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("fill of section %s is not absolute")" identifier (argument_list "("fill of section %s is not absolute")" ( (string_literal ""fill of section %s is not absolute"" " string_content ") ))))) ;) (expression_statement "gold_warning(pcVar15,pcVar23);" (call_expression "gold_warning(pcVar15,pcVar23)" identifier (argument_list "(pcVar15,pcVar23)" ( identifier , identifier ))) ;) })) (expression_statement "align_section =\n         (Output_section *)\n         (uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18);" (assignment_expression "align_section =\n         (Output_section *)\n         (uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18)" identifier = (cast_expression "(Output_section *)\n         (uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18)" ( (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal)) )))) ;) (labeled_statement "std::string::_M_replace((string *)&fill,0,fill._M_string_length,(char *)&align_section,4);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_replace((string *)&fill,0,fill._M_string_length,(char *)&align_section,4);" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace((string *)&fill,0,fill._M_string_length,(char *)&align_section,4);" (call_expression "_M_replace((string *)&fill,0,fill._M_string_length,(char *)&align_section,4)" identifier (argument_list "((string *)&fill,0,fill._M_string_length,(char *)&align_section,4)" ( (cast_expression "(string *)&fill" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&fill" & identifier)) , number_literal , (field_expression "fill._M_string_length" identifier . field_identifier) , (cast_expression "(char *)&align_section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&align_section" & identifier)) , number_literal ))) ;))) })) (expression_statement "pOVar14 = this->output_section_;" (assignment_expression "pOVar14 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) (ERROR "input_sections.\n  super__List_base<gold::" (binary_expression "input_sections.\n  super__List_base<gold" (field_expression "input_sections.\n  super__List_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node._M_size = 0;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n  ._M_impl._M_node._M_size = 0;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n  ._M_impl._M_node._M_size = 0;" (assignment_expression "Input_section>_>\n  ._M_impl._M_node._M_size = 0" (field_expression "Input_section>_>\n  ._M_impl._M_node._M_size" (field_expression "Input_section>_>\n  ._M_impl._M_node" (field_expression "Input_section>_>\n  ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;))) (ERROR "input_sections.\n  super__List_base<gold::" (binary_expression "input_sections.\n  super__List_base<gold" (field_expression "input_sections.\n  super__List_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)&input_sections;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)&input_sections;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)&input_sections;" (assignment_expression "Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_next = (_List_node_base *)&input_sections" (field_expression "Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_next" (field_expression "Input_section>_>\n  ._M_impl._M_node.super__List_node_base" (field_expression "Input_section>_>\n  ._M_impl._M_node" (field_expression "Input_section>_>\n  ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)&input_sections" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&input_sections" & identifier))) ;))) (ERROR "input_sections.\n  super__List_base<gold::" (binary_expression "input_sections.\n  super__List_base<gold" (field_expression "input_sections.\n  super__List_base" identifier . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)&input_sections;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)&input_sections;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)&input_sections;" (assignment_expression "Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_prev = (_List_node_base *)&input_sections" (field_expression "Input_section>_>\n  ._M_impl._M_node.super__List_node_base._M_prev" (field_expression "Input_section>_>\n  ._M_impl._M_node.super__List_node_base" (field_expression "Input_section>_>\n  ._M_impl._M_node" (field_expression "Input_section>_>\n  ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)&input_sections" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&input_sections" & identifier))) ;))) (if_statement "if (pOVar14 != (Output_section *)0x0) {\n                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */\n    uVar24 = Output_section::get_input_sections\n                       (pOVar14,address,&fill,\n                        (list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                         *)&input_sections);\n    address = uVar24 + address;\n    *dot_value = address;\n    pOVar14 = this->output_section_;\n  }" if (parenthesized_expression "(pOVar14 != (Output_section *)0x0)" ( (binary_expression "pOVar14 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */\n    uVar24 = Output_section::get_input_sections\n                       (pOVar14,address,&fill,\n                        (list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                         *)&input_sections);\n    address = uVar24 + address;\n    *dot_value = address;\n    pOVar14 = this->output_section_;\n  }" { comment (ERROR "uVar24 = Output_section::" (assignment_expression "uVar24 = Output_section" identifier = identifier) : :) (expression_statement "get_input_sections\n                       (pOVar14,address,&fill,\n                        (list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                         *)&input_sections);" (call_expression "get_input_sections\n                       (pOVar14,address,&fill,\n                        (list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                         *)&input_sections)" identifier (argument_list "(pOVar14,address,&fill,\n                        (list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                         *)&input_sections)" ( identifier , identifier , (pointer_expression "&fill" & identifier) , (binary_expression "(list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                         *)&input_sections" (parenthesized_expression "(list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                         *)" ( (ERROR "list<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (binary_expression "list<gold" identifier < identifier) : : identifier : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>\n                         *" (binary_expression "Input_section>_" identifier > identifier) > (pointer_expression "*" * identifier)) )) & identifier) ))) ;) (expression_statement "address = uVar24 + address;" (assignment_expression "address = uVar24 + address" identifier = (binary_expression "uVar24 + address" identifier + identifier)) ;) (expression_statement "*dot_value = address;" (assignment_expression "*dot_value = address" (pointer_expression "*dot_value" * identifier) = identifier) ;) (expression_statement "pOVar14 = this->output_section_;" (assignment_expression "pOVar14 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) })) (expression_statement "ppOVar21 = (this->elements_).\n             super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n             ._M_impl._M_start;" (field_expression "ppOVar21 = (this->elements_).\n             super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n             ._M_impl._M_start" (field_expression "ppOVar21 = (this->elements_).\n             super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n             ._M_impl" (binary_expression "ppOVar21 = (this->elements_).\n             super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_" (binary_expression "ppOVar21 = (this->elements_).\n             super__Vector_base<gold::Output_section_element*,_std::allocator<gold" (binary_expression "ppOVar21 = (this->elements_).\n             super__Vector_base<gold::Output_section_element*,_std" (assignment_expression "ppOVar21 = (this->elements_).\n             super__Vector_base<gold" identifier = (binary_expression "(this->elements_).\n             super__Vector_base<gold" (field_expression "(this->elements_).\n             super__Vector_base" (parenthesized_expression "(this->elements_)" ( (field_expression "this->elements_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section_element" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_element" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "dot_section = pOVar14;" (assignment_expression "dot_section = pOVar14" identifier = identifier) ;) (if_statement "if (ppOVar21 !=\n      (this->elements_).\n      super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n      ._M_impl._M_finish) {\n    while( true ) {\n      (*(*ppOVar21)->_vptr_Output_section_element[6])\n                (*ppOVar21,symtab,layout,pOVar14,(uint)local_84,local_84._4_4_,dot_value,\n                 dot_alignment,&dot_section,&fill,(_List_node_base *)&input_sections);\n      ppOVar21 = ppOVar21 + 1;\n      if ((this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl._M_finish == ppOVar21) break;\n      pOVar14 = this->output_section_;\n    }\n  }" if (parenthesized_expression "(ppOVar21 !=\n      (this->elements_).\n      super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n      ._M_impl._M_finish)" ( (field_expression "ppOVar21 !=\n      (this->elements_).\n      super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n      ._M_impl._M_finish" (field_expression "ppOVar21 !=\n      (this->elements_).\n      super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n      ._M_impl" (binary_expression "ppOVar21 !=\n      (this->elements_).\n      super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_" (binary_expression "ppOVar21 !=\n      (this->elements_).\n      super__Vector_base<gold::Output_section_element*,_std::allocator<gold" (binary_expression "ppOVar21 !=\n      (this->elements_).\n      super__Vector_base<gold::Output_section_element*,_std" (binary_expression "ppOVar21 !=\n      (this->elements_).\n      super__Vector_base<gold" identifier != (binary_expression "(this->elements_).\n      super__Vector_base<gold" (field_expression "(this->elements_).\n      super__Vector_base" (parenthesized_expression "(this->elements_)" ( (field_expression "this->elements_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section_element" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_element" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    while( true ) {\n      (*(*ppOVar21)->_vptr_Output_section_element[6])\n                (*ppOVar21,symtab,layout,pOVar14,(uint)local_84,local_84._4_4_,dot_value,\n                 dot_alignment,&dot_section,&fill,(_List_node_base *)&input_sections);\n      ppOVar21 = ppOVar21 + 1;\n      if ((this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl._M_finish == ppOVar21) break;\n      pOVar14 = this->output_section_;\n    }\n  }" { (while_statement "while( true ) {\n      (*(*ppOVar21)->_vptr_Output_section_element[6])\n                (*ppOVar21,symtab,layout,pOVar14,(uint)local_84,local_84._4_4_,dot_value,\n                 dot_alignment,&dot_section,&fill,(_List_node_base *)&input_sections);\n      ppOVar21 = ppOVar21 + 1;\n      if ((this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl._M_finish == ppOVar21) break;\n      pOVar14 = this->output_section_;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      (*(*ppOVar21)->_vptr_Output_section_element[6])\n                (*ppOVar21,symtab,layout,pOVar14,(uint)local_84,local_84._4_4_,dot_value,\n                 dot_alignment,&dot_section,&fill,(_List_node_base *)&input_sections);\n      ppOVar21 = ppOVar21 + 1;\n      if ((this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl._M_finish == ppOVar21) break;\n      pOVar14 = this->output_section_;\n    }" { (expression_statement "(*(*ppOVar21)->_vptr_Output_section_element[6])\n                (*ppOVar21,symtab,layout,pOVar14,(uint)local_84,local_84._4_4_,dot_value,\n                 dot_alignment,&dot_section,&fill,(_List_node_base *)&input_sections);" (call_expression "(*(*ppOVar21)->_vptr_Output_section_element[6])\n                (*ppOVar21,symtab,layout,pOVar14,(uint)local_84,local_84._4_4_,dot_value,\n                 dot_alignment,&dot_section,&fill,(_List_node_base *)&input_sections)" (parenthesized_expression "(*(*ppOVar21)->_vptr_Output_section_element[6])" ( (pointer_expression "*(*ppOVar21)->_vptr_Output_section_element[6]" * (subscript_expression "(*ppOVar21)->_vptr_Output_section_element[6]" (field_expression "(*ppOVar21)->_vptr_Output_section_element" (parenthesized_expression "(*ppOVar21)" ( (pointer_expression "*ppOVar21" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "(*ppOVar21,symtab,layout,pOVar14,(uint)local_84,local_84._4_4_,dot_value,\n                 dot_alignment,&dot_section,&fill,(_List_node_base *)&input_sections)" ( (pointer_expression "*ppOVar21" * identifier) , identifier , identifier , identifier , (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) , (field_expression "local_84._4_4_" identifier . field_identifier) , identifier , identifier , (pointer_expression "&dot_section" & identifier) , (pointer_expression "&fill" & identifier) , (cast_expression "(_List_node_base *)&input_sections" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&input_sections" & identifier)) ))) ;) (expression_statement "ppOVar21 = ppOVar21 + 1;" (assignment_expression "ppOVar21 = ppOVar21 + 1" identifier = (binary_expression "ppOVar21 + 1" identifier + number_literal)) ;) (if_statement "if ((this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl._M_finish == ppOVar21) break;" if (parenthesized_expression "((this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl._M_finish == ppOVar21)" ( (binary_expression "(this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl._M_finish == ppOVar21" (field_expression "(this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl._M_finish" (field_expression "(this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>\n          ._M_impl" (binary_expression "(this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_" (binary_expression "(this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std::allocator<gold" (binary_expression "(this->elements_).\n          super__Vector_base<gold::Output_section_element*,_std" (binary_expression "(this->elements_).\n          super__Vector_base<gold" (field_expression "(this->elements_).\n          super__Vector_base" (parenthesized_expression "(this->elements_)" ( (field_expression "this->elements_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section_element" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_element" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "pOVar14 = this->output_section_;" (assignment_expression "pOVar14 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) })) })) (if_statement "if (input_sections.\n      super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)&input_sections) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */\n    do_gold_unreachable("../../gold/script-sections.cc",0xa67,"set_section_addresses");\n  }" if (parenthesized_expression "(input_sections.\n      super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)&input_sections)" ( (ERROR "input_sections.\n      super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "input_sections.\n      super__List_base<gold::Output_section::Input_section,_std" (binary_expression "input_sections.\n      super__List_base<gold" (field_expression "input_sections.\n      super__List_base" identifier . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>\n      ._M_impl._M_node.super__List_node_base._M_next != (_List_node_base *)&input_sections" (field_expression "Input_section>_>\n      ._M_impl._M_node.super__List_node_base._M_next" (field_expression "Input_section>_>\n      ._M_impl._M_node.super__List_node_base" (field_expression "Input_section>_>\n      ._M_impl._M_node" (field_expression "Input_section>_>\n      ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) != (cast_expression "(_List_node_base *)&input_sections" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&input_sections" & identifier))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */\n    do_gold_unreachable("../../gold/script-sections.cc",0xa67,"set_section_addresses");\n  }" { comment comment (expression_statement "do_gold_unreachable("../../gold/script-sections.cc",0xa67,"set_section_addresses");" (call_expression "do_gold_unreachable("../../gold/script-sections.cc",0xa67,"set_section_addresses")" identifier (argument_list "("../../gold/script-sections.cc",0xa67,"set_section_addresses")" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""set_section_addresses"" " string_content ") ))) ;) })) (if_statement "if (local_98 != (Output_section *)0x0) {\n    pEVar17 = script_exp_integer(local_98->addralign_);\n    pEVar17 = script_exp_binary_add\n                        (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n    uVar24 = *dot_value;\n    iVar20 = *(int *)((int)dot_value + 4);\n    uVar26 = Expression::eval(pEVar17,symtab,layout,false);\n    pcVar23 = (this->name_)._M_dataplus._M_p;\n    align_section = (Output_section *)&stack0xffffffd4;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);\n    uVar16 = (uint)uVar24 + (int)local_98->addralign_;\n    uVar18 = uVar16 - (uint)uVar26;\n    uVar16 = ((iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)) - (int)(uVar26 >> 0x20)) -\n             (uint)(uVar16 < (uint)uVar26);\n    *(uint *)&local_98->addralign_ = uVar18;\n    *(uint *)((int)&local_98->addralign_ + 4) = uVar16;\n                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */\n    uVar24 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);\n    pOVar14 = align_section;\n    uVar22 = (uint)(uVar24 >> 0x20);\n    if (uVar22 < uVar16 || uVar22 - uVar16 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }\n    if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }\n  }" if (parenthesized_expression "(local_98 != (Output_section *)0x0)" ( (binary_expression "local_98 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pEVar17 = script_exp_integer(local_98->addralign_);\n    pEVar17 = script_exp_binary_add\n                        (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);\n    uVar24 = *dot_value;\n    iVar20 = *(int *)((int)dot_value + 4);\n    uVar26 = Expression::eval(pEVar17,symtab,layout,false);\n    pcVar23 = (this->name_)._M_dataplus._M_p;\n    align_section = (Output_section *)&stack0xffffffd4;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);\n    uVar16 = (uint)uVar24 + (int)local_98->addralign_;\n    uVar18 = uVar16 - (uint)uVar26;\n    uVar16 = ((iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)) - (int)(uVar26 >> 0x20)) -\n             (uint)(uVar16 < (uint)uVar26);\n    *(uint *)&local_98->addralign_ = uVar18;\n    *(uint *)((int)&local_98->addralign_ + 4) = uVar16;\n                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */\n    uVar24 = Expression::eval((Expression *)local_98->name_,symtab,layout,false);\n    pOVar14 = align_section;\n    uVar22 = (uint)(uVar24 >> 0x20);\n    if (uVar22 < uVar16 || uVar22 - uVar16 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }\n    if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }\n  }" { (expression_statement "pEVar17 = script_exp_integer(local_98->addralign_);" (assignment_expression "pEVar17 = script_exp_integer(local_98->addralign_)" identifier = (call_expression "script_exp_integer(local_98->addralign_)" identifier (argument_list "(local_98->addralign_)" ( (field_expression "local_98->addralign_" identifier -> field_identifier) )))) ;) (expression_statement "pEVar17 = script_exp_binary_add\n                        (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17);" (assignment_expression "pEVar17 = script_exp_binary_add\n                        (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17)" identifier = (call_expression "script_exp_binary_add\n                        (*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17)" identifier (argument_list "(*(Expression **)&(local_98->super_Output_data).field_0x1c,pEVar17)" ( (pointer_expression "*(Expression **)&(local_98->super_Output_data).field_0x1c" * (cast_expression "(Expression **)&(local_98->super_Output_data).field_0x1c" ( (type_descriptor "Expression **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(local_98->super_Output_data).field_0x1c" & (field_expression "(local_98->super_Output_data).field_0x1c" (parenthesized_expression "(local_98->super_Output_data)" ( (field_expression "local_98->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) , identifier )))) ;) (expression_statement "uVar24 = *dot_value;" (assignment_expression "uVar24 = *dot_value" identifier = (pointer_expression "*dot_value" * identifier)) ;) (expression_statement "iVar20 = *(int *)((int)dot_value + 4);" (assignment_expression "iVar20 = *(int *)((int)dot_value + 4)" identifier = (pointer_expression "*(int *)((int)dot_value + 4)" * (cast_expression "(int *)((int)dot_value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (ERROR "uVar26 = Expression::" (assignment_expression "uVar26 = Expression" identifier = identifier) : :) (expression_statement "eval(pEVar17,symtab,layout,false);" (call_expression "eval(pEVar17,symtab,layout,false)" identifier (argument_list "(pEVar17,symtab,layout,false)" ( identifier , identifier , identifier , false ))) ;) (expression_statement "pcVar23 = (this->name_)._M_dataplus._M_p;" (assignment_expression "pcVar23 = (this->name_)._M_dataplus._M_p" identifier = (field_expression "(this->name_)._M_dataplus._M_p" (field_expression "(this->name_)._M_dataplus" (parenthesized_expression "(this->name_)" ( (field_expression "this->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "align_section = (Output_section *)&stack0xffffffd4;" (assignment_expression "align_section = (Output_section *)&stack0xffffffd4" identifier = (cast_expression "(Output_section *)&stack0xffffffd4" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffd4" & identifier))) ;) (ERROR "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::" (comma_expression "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > : : (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > ( ( (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);" (comma_expression "allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0" (binary_expression "allocator<char>_> *)\n                        &align_section" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)\n                        &align_section" * (ERROR ")" )) (pointer_expression "&align_section" & identifier))) , (comma_expression "pcVar23,pcVar23 + (this->name_)._M_string_length,0" identifier , (comma_expression "pcVar23 + (this->name_)._M_string_length,0" (binary_expression "pcVar23 + (this->name_)._M_string_length" identifier + (field_expression "(this->name_)._M_string_length" (parenthesized_expression "(this->name_)" ( (field_expression "this->name_" identifier -> field_identifier) )) . field_identifier)) , number_literal))) (ERROR ")" )) ;) (expression_statement "uVar16 = (uint)uVar24 + (int)local_98->addralign_;" (assignment_expression "uVar16 = (uint)uVar24 + (int)local_98->addralign_" identifier = (binary_expression "(uint)uVar24 + (int)local_98->addralign_" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) + (cast_expression "(int)local_98->addralign_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_98->addralign_" identifier -> field_identifier)))) ;) (expression_statement "uVar18 = uVar16 - (uint)uVar26;" (assignment_expression "uVar18 = uVar16 - (uint)uVar26" identifier = (binary_expression "uVar16 - (uint)uVar26" identifier - (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar16 = ((iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)) - (int)(uVar26 >> 0x20)) -\n             (uint)(uVar16 < (uint)uVar26);" (assignment_expression "uVar16 = ((iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)) - (int)(uVar26 >> 0x20)) -\n             (uint)(uVar16 < (uint)uVar26)" identifier = (binary_expression "((iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)) - (int)(uVar26 >> 0x20)) -\n             (uint)(uVar16 < (uint)uVar26)" (parenthesized_expression "((iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)) - (int)(uVar26 >> 0x20))" ( (binary_expression "(iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)) - (int)(uVar26 >> 0x20)" (parenthesized_expression "(iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_))" ( (binary_expression "iVar20 + *(int *)((int)&local_98->addralign_ + 4) +\n              (uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)" (binary_expression "iVar20 + *(int *)((int)&local_98->addralign_ + 4)" identifier + (pointer_expression "*(int *)((int)&local_98->addralign_ + 4)" * (cast_expression "(int *)((int)&local_98->addralign_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_98->addralign_ + 4)" ( (binary_expression "(int)&local_98->addralign_ + 4" (cast_expression "(int)&local_98->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_98->addralign_" & (field_expression "local_98->addralign_" identifier -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)uVar24,(uint)local_98->addralign_)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)uVar24,(uint)local_98->addralign_)" identifier (argument_list "((uint)uVar24,(uint)local_98->addralign_)" ( (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_98->addralign_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_98->addralign_" identifier -> field_identifier)) ))))) )) - (cast_expression "(int)(uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar26 >> 0x20)" ( (binary_expression "uVar26 >> 0x20" identifier >> number_literal) )))) )) - (call_expression "(uint)(uVar16 < (uint)uVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < (uint)uVar26)" ( (binary_expression "uVar16 < (uint)uVar26" identifier < (cast_expression "(uint)uVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ;) (expression_statement "*(uint *)&local_98->addralign_ = uVar18;" (assignment_expression "*(uint *)&local_98->addralign_ = uVar18" (pointer_expression "*(uint *)&local_98->addralign_" * (cast_expression "(uint *)&local_98->addralign_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_98->addralign_" & (field_expression "local_98->addralign_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&local_98->addralign_ + 4) = uVar16;" (assignment_expression "*(uint *)((int)&local_98->addralign_ + 4) = uVar16" (pointer_expression "*(uint *)((int)&local_98->addralign_ + 4)" * (cast_expression "(uint *)((int)&local_98->addralign_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_98->addralign_ + 4)" ( (binary_expression "(int)&local_98->addralign_ + 4" (cast_expression "(int)&local_98->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_98->addralign_" & (field_expression "local_98->addralign_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) comment (ERROR "uVar24 = Expression::" (assignment_expression "uVar24 = Expression" identifier = identifier) : :) (expression_statement "eval((Expression *)local_98->name_,symtab,layout,false);" (call_expression "eval((Expression *)local_98->name_,symtab,layout,false)" identifier (argument_list "((Expression *)local_98->name_,symtab,layout,false)" ( (cast_expression "(Expression *)local_98->name_" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_98->name_" identifier -> field_identifier)) , identifier , identifier , false ))) ;) (expression_statement "pOVar14 = align_section;" (assignment_expression "pOVar14 = align_section" identifier = identifier) ;) (expression_statement "uVar22 = (uint)(uVar24 >> 0x20);" (assignment_expression "uVar22 = (uint)(uVar24 >> 0x20)" identifier = (call_expression "(uint)(uVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 >> 0x20)" ( (binary_expression "uVar24 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar22 < uVar16 || uVar22 - uVar16 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }" if (parenthesized_expression "(uVar22 < uVar16 || uVar22 - uVar16 < (uint)((uint)uVar24 < uVar18))" ( (binary_expression "uVar22 < uVar16 || uVar22 - uVar16 < (uint)((uint)uVar24 < uVar18)" (binary_expression "uVar22 < uVar16" identifier < identifier) || (binary_expression "uVar22 - uVar16 < (uint)((uint)uVar24 < uVar18)" (binary_expression "uVar22 - uVar16" identifier - identifier) < (call_expression "(uint)((uint)uVar24 < uVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar24 < uVar18)" ( (binary_expression "(uint)uVar24 < uVar18" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n      pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }" { (expression_statement "pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p;" (assignment_expression "pcVar23 = ((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p" identifier = (field_expression "((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)->_M_p" (parenthesized_expression "((_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data)" ( (cast_expression "(_Alloc_hider *)&(local_98->super_Output_data)._vptr_Output_data" ( (type_descriptor "_Alloc_hider *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_98->super_Output_data)._vptr_Output_data" & (field_expression "(local_98->super_Output_data)._vptr_Output_data" (parenthesized_expression "(local_98->super_Output_data)" ( (field_expression "local_98->super_Output_data" identifier -> field_identifier) )) . field_identifier))) )) -> field_identifier)) ;) (expression_statement "pcVar15 = (char *)gettext("section %s overflows end of region %s");" (assignment_expression "pcVar15 = (char *)gettext("section %s overflows end of region %s")" identifier = (cast_expression "(char *)gettext("section %s overflows end of region %s")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("section %s overflows end of region %s")" identifier (argument_list "("section %s overflows end of region %s")" ( (string_literal ""section %s overflows end of region %s"" " string_content ") ))))) ;) comment (expression_statement "gold_error(pcVar15,pOVar14,pcVar23);" (call_expression "gold_error(pcVar15,pOVar14,pcVar23)" identifier (argument_list "(pcVar15,pOVar14,pcVar23)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }" if (parenthesized_expression "(align_section != (Output_section *)&stack0xffffffd4)" ( (binary_expression "align_section != (Output_section *)&stack0xffffffd4" identifier != (cast_expression "(Output_section *)&stack0xffffffd4" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffd4" & identifier))) )) (compound_statement "{\n      operator_delete(align_section);\n    }" { (expression_statement "operator_delete(align_section);" (call_expression "operator_delete(align_section)" identifier (argument_list "(align_section)" ( identifier ))) ;) })) })) (if_statement "if ((local_74 != (Output_section *)0x0) && (local_98 != local_74)) {\n    uVar24 = *dot_value;\n    iVar20 = *(int *)((int)dot_value + 4);\n    pcVar23 = (this->name_)._M_dataplus._M_p;\n    uVar16 = (uint)uVar24 - local_94;\n    align_section = (Output_section *)&stack0xffffffd4;\n                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);\n    uVar18 = uVar16 + (int)local_74->addralign_;\n    uVar22 = ((iVar20 - local_90) - (uint)((uint)uVar24 < local_94)) +\n             *(int *)((int)&local_74->addralign_ + 4) +\n             (uint)CARRY4(uVar16,(uint)local_74->addralign_);\n    *(uint *)&local_74->addralign_ = uVar18;\n    *(uint *)((int)&local_74->addralign_ + 4) = uVar22;\n                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */\n    uVar24 = Expression::eval((Expression *)local_74->name_,symtab,layout,false);\n    pOVar14 = align_section;\n    uVar16 = (uint)(uVar24 >> 0x20);\n    if (uVar16 < uVar22 || uVar16 - uVar22 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }\n    if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }\n  }" if (parenthesized_expression "((local_74 != (Output_section *)0x0) && (local_98 != local_74))" ( (binary_expression "(local_74 != (Output_section *)0x0) && (local_98 != local_74)" (parenthesized_expression "(local_74 != (Output_section *)0x0)" ( (binary_expression "local_74 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_98 != local_74)" ( (binary_expression "local_98 != local_74" identifier != identifier) ))) )) (compound_statement "{\n    uVar24 = *dot_value;\n    iVar20 = *(int *)((int)dot_value + 4);\n    pcVar23 = (this->name_)._M_dataplus._M_p;\n    uVar16 = (uint)uVar24 - local_94;\n    align_section = (Output_section *)&stack0xffffffd4;\n                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);\n    uVar18 = uVar16 + (int)local_74->addralign_;\n    uVar22 = ((iVar20 - local_90) - (uint)((uint)uVar24 < local_94)) +\n             *(int *)((int)&local_74->addralign_ + 4) +\n             (uint)CARRY4(uVar16,(uint)local_74->addralign_);\n    *(uint *)&local_74->addralign_ = uVar18;\n    *(uint *)((int)&local_74->addralign_ + 4) = uVar22;\n                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */\n    uVar24 = Expression::eval((Expression *)local_74->name_,symtab,layout,false);\n    pOVar14 = align_section;\n    uVar16 = (uint)(uVar24 >> 0x20);\n    if (uVar16 < uVar22 || uVar16 - uVar22 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }\n    if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }\n  }" { (expression_statement "uVar24 = *dot_value;" (assignment_expression "uVar24 = *dot_value" identifier = (pointer_expression "*dot_value" * identifier)) ;) (expression_statement "iVar20 = *(int *)((int)dot_value + 4);" (assignment_expression "iVar20 = *(int *)((int)dot_value + 4)" identifier = (pointer_expression "*(int *)((int)dot_value + 4)" * (cast_expression "(int *)((int)dot_value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar23 = (this->name_)._M_dataplus._M_p;" (assignment_expression "pcVar23 = (this->name_)._M_dataplus._M_p" identifier = (field_expression "(this->name_)._M_dataplus._M_p" (field_expression "(this->name_)._M_dataplus" (parenthesized_expression "(this->name_)" ( (field_expression "this->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar16 = (uint)uVar24 - local_94;" (assignment_expression "uVar16 = (uint)uVar24 - local_94" identifier = (binary_expression "(uint)uVar24 - local_94" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) - identifier)) ;) (expression_statement "align_section = (Output_section *)&stack0xffffffd4;" (assignment_expression "align_section = (Output_section *)&stack0xffffffd4" identifier = (cast_expression "(Output_section *)&stack0xffffffd4" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffd4" & identifier))) ;) comment (ERROR "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::" (comma_expression "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>((basic_string<char,_std::char_traits<char>" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > : : (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > ( ( (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0);" (comma_expression "allocator<char>_> *)\n                        &align_section,pcVar23,pcVar23 + (this->name_)._M_string_length,0" (binary_expression "allocator<char>_> *)\n                        &align_section" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)\n                        &align_section" * (ERROR ")" )) (pointer_expression "&align_section" & identifier))) , (comma_expression "pcVar23,pcVar23 + (this->name_)._M_string_length,0" identifier , (comma_expression "pcVar23 + (this->name_)._M_string_length,0" (binary_expression "pcVar23 + (this->name_)._M_string_length" identifier + (field_expression "(this->name_)._M_string_length" (parenthesized_expression "(this->name_)" ( (field_expression "this->name_" identifier -> field_identifier) )) . field_identifier)) , number_literal))) (ERROR ")" )) ;) (expression_statement "uVar18 = uVar16 + (int)local_74->addralign_;" (assignment_expression "uVar18 = uVar16 + (int)local_74->addralign_" identifier = (binary_expression "uVar16 + (int)local_74->addralign_" identifier + (cast_expression "(int)local_74->addralign_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_74->addralign_" identifier -> field_identifier)))) ;) (expression_statement "uVar22 = ((iVar20 - local_90) - (uint)((uint)uVar24 < local_94)) +\n             *(int *)((int)&local_74->addralign_ + 4) +\n             (uint)CARRY4(uVar16,(uint)local_74->addralign_);" (assignment_expression "uVar22 = ((iVar20 - local_90) - (uint)((uint)uVar24 < local_94)) +\n             *(int *)((int)&local_74->addralign_ + 4) +\n             (uint)CARRY4(uVar16,(uint)local_74->addralign_)" identifier = (binary_expression "((iVar20 - local_90) - (uint)((uint)uVar24 < local_94)) +\n             *(int *)((int)&local_74->addralign_ + 4) +\n             (uint)CARRY4(uVar16,(uint)local_74->addralign_)" (binary_expression "((iVar20 - local_90) - (uint)((uint)uVar24 < local_94)) +\n             *(int *)((int)&local_74->addralign_ + 4)" (parenthesized_expression "((iVar20 - local_90) - (uint)((uint)uVar24 < local_94))" ( (binary_expression "(iVar20 - local_90) - (uint)((uint)uVar24 < local_94)" (parenthesized_expression "(iVar20 - local_90)" ( (binary_expression "iVar20 - local_90" identifier - identifier) )) - (call_expression "(uint)((uint)uVar24 < local_94)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar24 < local_94)" ( (binary_expression "(uint)uVar24 < local_94" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) )) + (pointer_expression "*(int *)((int)&local_74->addralign_ + 4)" * (cast_expression "(int *)((int)&local_74->addralign_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_74->addralign_ + 4)" ( (binary_expression "(int)&local_74->addralign_ + 4" (cast_expression "(int)&local_74->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_74->addralign_" & (field_expression "local_74->addralign_" identifier -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar16,(uint)local_74->addralign_)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,(uint)local_74->addralign_)" identifier (argument_list "(uVar16,(uint)local_74->addralign_)" ( identifier , (cast_expression "(uint)local_74->addralign_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_74->addralign_" identifier -> field_identifier)) )))))) ;) (expression_statement "*(uint *)&local_74->addralign_ = uVar18;" (assignment_expression "*(uint *)&local_74->addralign_ = uVar18" (pointer_expression "*(uint *)&local_74->addralign_" * (cast_expression "(uint *)&local_74->addralign_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_74->addralign_" & (field_expression "local_74->addralign_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&local_74->addralign_ + 4) = uVar22;" (assignment_expression "*(uint *)((int)&local_74->addralign_ + 4) = uVar22" (pointer_expression "*(uint *)((int)&local_74->addralign_ + 4)" * (cast_expression "(uint *)((int)&local_74->addralign_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_74->addralign_ + 4)" ( (binary_expression "(int)&local_74->addralign_ + 4" (cast_expression "(int)&local_74->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_74->addralign_" & (field_expression "local_74->addralign_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) comment (ERROR "uVar24 = Expression::" (assignment_expression "uVar24 = Expression" identifier = identifier) : :) (expression_statement "eval((Expression *)local_74->name_,symtab,layout,false);" (call_expression "eval((Expression *)local_74->name_,symtab,layout,false)" identifier (argument_list "((Expression *)local_74->name_,symtab,layout,false)" ( (cast_expression "(Expression *)local_74->name_" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_74->name_" identifier -> field_identifier)) , identifier , identifier , false ))) ;) (expression_statement "pOVar14 = align_section;" (assignment_expression "pOVar14 = align_section" identifier = identifier) ;) (expression_statement "uVar16 = (uint)(uVar24 >> 0x20);" (assignment_expression "uVar16 = (uint)(uVar24 >> 0x20)" identifier = (call_expression "(uint)(uVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 >> 0x20)" ( (binary_expression "uVar24 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar16 < uVar22 || uVar16 - uVar22 < (uint)((uint)uVar24 < uVar18)) {\n      pcVar23 = ((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }" if (parenthesized_expression "(uVar16 < uVar22 || uVar16 - uVar22 < (uint)((uint)uVar24 < uVar18))" ( (binary_expression "uVar16 < uVar22 || uVar16 - uVar22 < (uint)((uint)uVar24 < uVar18)" (binary_expression "uVar16 < uVar22" identifier < identifier) || (binary_expression "uVar16 - uVar22 < (uint)((uint)uVar24 < uVar18)" (binary_expression "uVar16 - uVar22" identifier - identifier) < (call_expression "(uint)((uint)uVar24 < uVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar24 < uVar18)" ( (binary_expression "(uint)uVar24 < uVar18" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n      pcVar23 = ((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)->_M_p;\n      pcVar15 = (char *)gettext("section %s overflows end of region %s");\n                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */\n      gold_error(pcVar15,pOVar14,pcVar23);\n    }" { (expression_statement "pcVar23 = ((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)->_M_p;" (assignment_expression "pcVar23 = ((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)->_M_p" identifier = (field_expression "((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)->_M_p" (parenthesized_expression "((_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data)" ( (cast_expression "(_Alloc_hider *)&(local_74->super_Output_data)._vptr_Output_data" ( (type_descriptor "_Alloc_hider *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_74->super_Output_data)._vptr_Output_data" & (field_expression "(local_74->super_Output_data)._vptr_Output_data" (parenthesized_expression "(local_74->super_Output_data)" ( (field_expression "local_74->super_Output_data" identifier -> field_identifier) )) . field_identifier))) )) -> field_identifier)) ;) (expression_statement "pcVar15 = (char *)gettext("section %s overflows end of region %s");" (assignment_expression "pcVar15 = (char *)gettext("section %s overflows end of region %s")" identifier = (cast_expression "(char *)gettext("section %s overflows end of region %s")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("section %s overflows end of region %s")" identifier (argument_list "("section %s overflows end of region %s")" ( (string_literal ""section %s overflows end of region %s"" " string_content ") ))))) ;) comment (expression_statement "gold_error(pcVar15,pOVar14,pcVar23);" (call_expression "gold_error(pcVar15,pOVar14,pcVar23)" identifier (argument_list "(pcVar15,pOVar14,pcVar23)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (align_section != (Output_section *)&stack0xffffffd4) {\n      operator_delete(align_section);\n    }" if (parenthesized_expression "(align_section != (Output_section *)&stack0xffffffd4)" ( (binary_expression "align_section != (Output_section *)&stack0xffffffd4" identifier != (cast_expression "(Output_section *)&stack0xffffffd4" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffd4" & identifier))) )) (compound_statement "{\n      operator_delete(align_section);\n    }" { (expression_statement "operator_delete(align_section);" (call_expression "operator_delete(align_section)" identifier (argument_list "(align_section)" ( identifier ))) ;) })) })) (expression_statement "pOVar14 = this->output_section_;" (assignment_expression "pOVar14 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) (if_statement "if (pOVar14 == (Output_section *)0x0) {\n    uVar11 = *dot_value;\n    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);\n    *(int *)load_address = (int)uVar11;\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;\n    goto joined_r0x0010ae99;\n  }" if (parenthesized_expression "(pOVar14 == (Output_section *)0x0)" ( (binary_expression "pOVar14 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar11 = *dot_value;\n    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);\n    *(int *)load_address = (int)uVar11;\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;\n    goto joined_r0x0010ae99;\n  }" { (expression_statement "uVar11 = *dot_value;" (assignment_expression "uVar11 = *dot_value" identifier = (pointer_expression "*dot_value" * identifier)) ;) (expression_statement "*(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);" (assignment_expression "*(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4)" (pointer_expression "*(undefined4 *)((int)load_address + 4)" * (cast_expression "(undefined4 *)((int)load_address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)load_address + 4)" ( (binary_expression "(int)load_address + 4" (cast_expression "(int)load_address" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)dot_value + 4)" * (cast_expression "(undefined4 *)((int)dot_value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)load_address = (int)uVar11;" (assignment_expression "*(int *)load_address = (int)uVar11" (pointer_expression "*(int *)load_address" * (cast_expression "(int *)load_address" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (ERROR "p_Var10 = input_sections.\n              super__List_base<gold::" (assignment_expression "p_Var10 = input_sections.\n              super__List_base<gold" identifier = (binary_expression "input_sections.\n              super__List_base<gold" (field_expression "input_sections.\n              super__List_base" identifier . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;" (field_expression "Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next" (field_expression "Input_section>_>\n              ._M_impl._M_node.super__List_node_base" (field_expression "Input_section>_>\n              ._M_impl._M_node" (field_expression "Input_section>_>\n              ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) ;))) (goto_statement "goto joined_r0x0010ae99;" goto statement_identifier ;) })) (if_statement "if (this->load_address_ == (Expression *)0x0) {\n    if (local_74 != (Output_section *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      pEVar17 = script_exp_integer(local_74->addralign_);\n      pEVar17 = script_exp_binary_add\n                          (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n      uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      pOVar14 = this->output_section_;\n      *load_address = uVar24;\n      goto LAB_0010ae3d;\n    }\n    uVar24 = *dot_value;\n    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);\n    *(int *)load_address = (int)uVar24;\n  }\n  else {\n    p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[5];\n    if (p_Var5 == Output_section::do_load_address) {\n      if (-1 < (char)pOVar14->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n      }\n      uVar16 = (uint)pOVar14->load_address_;\n      iVar20 = *(int *)((int)&pOVar14->load_address_ + 4);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      uVar16 = (*p_Var5)(pOVar14);\n      pOVar14 = this->output_section_;\n      iVar20 = extraout_EDX;\n    }\n    uVar24 = *dot_value;\n    iVar6 = *(int *)((int)dot_value + 4);\n    uVar18 = (uint)uVar24 - local_94;\n    *(uint *)load_address = uVar16 + uVar18;\n    *(uint *)((int)load_address + 4) =\n         iVar20 + ((iVar6 - local_90) - (uint)((uint)uVar24 < local_94)) +\n         (uint)CARRY4(uVar16,uVar18);\nLAB_0010ae3d:\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;\n    if (pOVar14 == (Output_section *)0x0) goto joined_r0x0010ae99;\n  }" if (parenthesized_expression "(this->load_address_ == (Expression *)0x0)" ( (binary_expression "this->load_address_ == (Expression *)0x0" (field_expression "this->load_address_" identifier -> field_identifier) == (cast_expression "(Expression *)0x0" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (local_74 != (Output_section *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      pEVar17 = script_exp_integer(local_74->addralign_);\n      pEVar17 = script_exp_binary_add\n                          (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n      uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      pOVar14 = this->output_section_;\n      *load_address = uVar24;\n      goto LAB_0010ae3d;\n    }\n    uVar24 = *dot_value;\n    *(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);\n    *(int *)load_address = (int)uVar24;\n  }" { (if_statement "if (local_74 != (Output_section *)0x0) {\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      pEVar17 = script_exp_integer(local_74->addralign_);\n      pEVar17 = script_exp_binary_add\n                          (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n      uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      pOVar14 = this->output_section_;\n      *load_address = uVar24;\n      goto LAB_0010ae3d;\n    }" if (parenthesized_expression "(local_74 != (Output_section *)0x0)" ( (binary_expression "local_74 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */\n      pEVar17 = script_exp_integer(local_74->addralign_);\n      pEVar17 = script_exp_binary_add\n                          (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);\n      uVar24 = Expression::eval(pEVar17,symtab,layout,false);\n      pOVar14 = this->output_section_;\n      *load_address = uVar24;\n      goto LAB_0010ae3d;\n    }" { comment (expression_statement "pEVar17 = script_exp_integer(local_74->addralign_);" (assignment_expression "pEVar17 = script_exp_integer(local_74->addralign_)" identifier = (call_expression "script_exp_integer(local_74->addralign_)" identifier (argument_list "(local_74->addralign_)" ( (field_expression "local_74->addralign_" identifier -> field_identifier) )))) ;) (expression_statement "pEVar17 = script_exp_binary_add\n                          (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17);" (assignment_expression "pEVar17 = script_exp_binary_add\n                          (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17)" identifier = (call_expression "script_exp_binary_add\n                          (*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17)" identifier (argument_list "(*(Expression **)&(local_74->super_Output_data).field_0x1c,pEVar17)" ( (pointer_expression "*(Expression **)&(local_74->super_Output_data).field_0x1c" * (cast_expression "(Expression **)&(local_74->super_Output_data).field_0x1c" ( (type_descriptor "Expression **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(local_74->super_Output_data).field_0x1c" & (field_expression "(local_74->super_Output_data).field_0x1c" (parenthesized_expression "(local_74->super_Output_data)" ( (field_expression "local_74->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) , identifier )))) ;) (ERROR "uVar24 = Expression::" (assignment_expression "uVar24 = Expression" identifier = identifier) : :) (expression_statement "eval(pEVar17,symtab,layout,false);" (call_expression "eval(pEVar17,symtab,layout,false)" identifier (argument_list "(pEVar17,symtab,layout,false)" ( identifier , identifier , identifier , false ))) ;) (expression_statement "pOVar14 = this->output_section_;" (assignment_expression "pOVar14 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) (expression_statement "*load_address = uVar24;" (assignment_expression "*load_address = uVar24" (pointer_expression "*load_address" * identifier) = identifier) ;) (goto_statement "goto LAB_0010ae3d;" goto statement_identifier ;) })) (expression_statement "uVar24 = *dot_value;" (assignment_expression "uVar24 = *dot_value" identifier = (pointer_expression "*dot_value" * identifier)) ;) (expression_statement "*(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4);" (assignment_expression "*(undefined4 *)((int)load_address + 4) = *(undefined4 *)((int)dot_value + 4)" (pointer_expression "*(undefined4 *)((int)load_address + 4)" * (cast_expression "(undefined4 *)((int)load_address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)load_address + 4)" ( (binary_expression "(int)load_address + 4" (cast_expression "(int)load_address" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)dot_value + 4)" * (cast_expression "(undefined4 *)((int)dot_value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)load_address = (int)uVar24;" (assignment_expression "*(int *)load_address = (int)uVar24" (pointer_expression "*(int *)load_address" * (cast_expression "(int *)load_address" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)uVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n    p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[5];\n    if (p_Var5 == Output_section::do_load_address) {\n      if (-1 < (char)pOVar14->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n      }\n      uVar16 = (uint)pOVar14->load_address_;\n      iVar20 = *(int *)((int)&pOVar14->load_address_ + 4);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      uVar16 = (*p_Var5)(pOVar14);\n      pOVar14 = this->output_section_;\n      iVar20 = extraout_EDX;\n    }\n    uVar24 = *dot_value;\n    iVar6 = *(int *)((int)dot_value + 4);\n    uVar18 = (uint)uVar24 - local_94;\n    *(uint *)load_address = uVar16 + uVar18;\n    *(uint *)((int)load_address + 4) =\n         iVar20 + ((iVar6 - local_90) - (uint)((uint)uVar24 < local_94)) +\n         (uint)CARRY4(uVar16,uVar18);\nLAB_0010ae3d:\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;\n    if (pOVar14 == (Output_section *)0x0) goto joined_r0x0010ae99;\n  }" else (compound_statement "{\n    p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[5];\n    if (p_Var5 == Output_section::do_load_address) {\n      if (-1 < (char)pOVar14->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n      }\n      uVar16 = (uint)pOVar14->load_address_;\n      iVar20 = *(int *)((int)&pOVar14->load_address_ + 4);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      uVar16 = (*p_Var5)(pOVar14);\n      pOVar14 = this->output_section_;\n      iVar20 = extraout_EDX;\n    }\n    uVar24 = *dot_value;\n    iVar6 = *(int *)((int)dot_value + 4);\n    uVar18 = (uint)uVar24 - local_94;\n    *(uint *)load_address = uVar16 + uVar18;\n    *(uint *)((int)load_address + 4) =\n         iVar20 + ((iVar6 - local_90) - (uint)((uint)uVar24 < local_94)) +\n         (uint)CARRY4(uVar16,uVar18);\nLAB_0010ae3d:\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;\n    if (pOVar14 == (Output_section *)0x0) goto joined_r0x0010ae99;\n  }" { (expression_statement "p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[5];" (assignment_expression "p_Var5 = (pOVar14->super_Output_data)._vptr_Output_data[5]" identifier = (subscript_expression "(pOVar14->super_Output_data)._vptr_Output_data[5]" (field_expression "(pOVar14->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var5 == Output_section::do_load_address) {\n      if (-1 < (char)pOVar14->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n      }\n      uVar16 = (uint)pOVar14->load_address_;\n      iVar20 = *(int *)((int)&pOVar14->load_address_ + 4);\n    }\n    else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      uVar16 = (*p_Var5)(pOVar14);\n      pOVar14 = this->output_section_;\n      iVar20 = extraout_EDX;\n    }" if (parenthesized_expression "(p_Var5 == Output_section::do_load_address)" ( (binary_expression "p_Var5 == Output_section" identifier == identifier) (ERROR "::do_load_address" : : identifier) )) (compound_statement "{\n      if (-1 < (char)pOVar14->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n      }\n      uVar16 = (uint)pOVar14->load_address_;\n      iVar20 = *(int *)((int)&pOVar14->load_address_ + 4);\n    }" { (if_statement "if (-1 < (char)pOVar14->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n      }" if (parenthesized_expression "(-1 < (char)pOVar14->field_0x90)" ( (binary_expression "-1 < (char)pOVar14->field_0x90" number_literal < (cast_expression "(char)pOVar14->field_0x90" ( (type_descriptor "char" primitive_type) ) (field_expression "pOVar14->field_0x90" identifier -> field_identifier))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */\n        do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n      }" { comment comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");" (call_expression "do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address")" identifier (argument_list "("../../gold/output.h",0x107b,"do_load_address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_load_address"" " string_content ") ))) ;) })) (expression_statement "uVar16 = (uint)pOVar14->load_address_;" (assignment_expression "uVar16 = (uint)pOVar14->load_address_" identifier = (cast_expression "(uint)pOVar14->load_address_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar14->load_address_" identifier -> field_identifier))) ;) (expression_statement "iVar20 = *(int *)((int)&pOVar14->load_address_ + 4);" (assignment_expression "iVar20 = *(int *)((int)&pOVar14->load_address_ + 4)" identifier = (pointer_expression "*(int *)((int)&pOVar14->load_address_ + 4)" * (cast_expression "(int *)((int)&pOVar14->load_address_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar14->load_address_ + 4)" ( (binary_expression "(int)&pOVar14->load_address_ + 4" (cast_expression "(int)&pOVar14->load_address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar14->load_address_" & (field_expression "pOVar14->load_address_" identifier -> field_identifier))) + number_literal) ))))) ;) }) (else_clause "else {\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      uVar16 = (*p_Var5)(pOVar14);\n      pOVar14 = this->output_section_;\n      iVar20 = extraout_EDX;\n    }" else (compound_statement "{\n                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */\n      uVar16 = (*p_Var5)(pOVar14);\n      pOVar14 = this->output_section_;\n      iVar20 = extraout_EDX;\n    }" { comment (expression_statement "uVar16 = (*p_Var5)(pOVar14);" (assignment_expression "uVar16 = (*p_Var5)(pOVar14)" identifier = (call_expression "(*p_Var5)(pOVar14)" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "(pOVar14)" ( identifier )))) ;) (expression_statement "pOVar14 = this->output_section_;" (assignment_expression "pOVar14 = this->output_section_" identifier = (field_expression "this->output_section_" identifier -> field_identifier)) ;) (expression_statement "iVar20 = extraout_EDX;" (assignment_expression "iVar20 = extraout_EDX" identifier = identifier) ;) }))) (expression_statement "uVar24 = *dot_value;" (assignment_expression "uVar24 = *dot_value" identifier = (pointer_expression "*dot_value" * identifier)) ;) (expression_statement "iVar6 = *(int *)((int)dot_value + 4);" (assignment_expression "iVar6 = *(int *)((int)dot_value + 4)" identifier = (pointer_expression "*(int *)((int)dot_value + 4)" * (cast_expression "(int *)((int)dot_value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar18 = (uint)uVar24 - local_94;" (assignment_expression "uVar18 = (uint)uVar24 - local_94" identifier = (binary_expression "(uint)uVar24 - local_94" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) - identifier)) ;) (expression_statement "*(uint *)load_address = uVar16 + uVar18;" (assignment_expression "*(uint *)load_address = uVar16 + uVar18" (pointer_expression "*(uint *)load_address" * (cast_expression "(uint *)load_address" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar16 + uVar18" identifier + identifier)) ;) (expression_statement "*(uint *)((int)load_address + 4) =\n         iVar20 + ((iVar6 - local_90) - (uint)((uint)uVar24 < local_94)) +\n         (uint)CARRY4(uVar16,uVar18);" (assignment_expression "*(uint *)((int)load_address + 4) =\n         iVar20 + ((iVar6 - local_90) - (uint)((uint)uVar24 < local_94)) +\n         (uint)CARRY4(uVar16,uVar18)" (pointer_expression "*(uint *)((int)load_address + 4)" * (cast_expression "(uint *)((int)load_address + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)load_address + 4)" ( (binary_expression "(int)load_address + 4" (cast_expression "(int)load_address" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar20 + ((iVar6 - local_90) - (uint)((uint)uVar24 < local_94)) +\n         (uint)CARRY4(uVar16,uVar18)" (binary_expression "iVar20 + ((iVar6 - local_90) - (uint)((uint)uVar24 < local_94))" identifier + (parenthesized_expression "((iVar6 - local_90) - (uint)((uint)uVar24 < local_94))" ( (binary_expression "(iVar6 - local_90) - (uint)((uint)uVar24 < local_94)" (parenthesized_expression "(iVar6 - local_90)" ( (binary_expression "iVar6 - local_90" identifier - identifier) )) - (call_expression "(uint)((uint)uVar24 < local_94)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar24 < local_94)" ( (binary_expression "(uint)uVar24 < local_94" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) ))) + (cast_expression "(uint)CARRY4(uVar16,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,uVar18)" identifier (argument_list "(uVar16,uVar18)" ( identifier , identifier )))))) ;) (labeled_statement "LAB_0010ae3d:\n    p_Var10 = input_sections.\n              super__List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;" statement_identifier : (ERROR "p_Var10 = input_sections.\n              super__List_base<gold::" (assignment_expression "p_Var10 = input_sections.\n              super__List_base<gold" identifier = (binary_expression "input_sections.\n              super__List_base<gold" (field_expression "input_sections.\n              super__List_base" identifier . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next;" (field_expression "Input_section>_>\n              ._M_impl._M_node.super__List_node_base._M_next" (field_expression "Input_section>_>\n              ._M_impl._M_node.super__List_node_base" (field_expression "Input_section>_>\n              ._M_impl._M_node" (field_expression "Input_section>_>\n              ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) ;)))) (if_statement "if (pOVar14 == (Output_section *)0x0) goto joined_r0x0010ae99;" if (parenthesized_expression "(pOVar14 == (Output_section *)0x0)" ( (binary_expression "pOVar14 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x0010ae99;" goto statement_identifier ;)) }))) (expression_statement "pOVar14->field_0x91 = pOVar14->field_0x91 & 0xdf | (byte)((this->is_relro_ & 1) << 5);" (assignment_expression "pOVar14->field_0x91 = pOVar14->field_0x91 & 0xdf | (byte)((this->is_relro_ & 1) << 5)" (field_expression "pOVar14->field_0x91" identifier -> field_identifier) = (binary_expression "pOVar14->field_0x91 & 0xdf | (byte)((this->is_relro_ & 1) << 5)" (binary_expression "pOVar14->field_0x91 & 0xdf" (field_expression "pOVar14->field_0x91" identifier -> field_identifier) & number_literal) | (call_expression "(byte)((this->is_relro_ & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((this->is_relro_ & 1) << 5)" ( (binary_expression "(this->is_relro_ & 1) << 5" (parenthesized_expression "(this->is_relro_ & 1)" ( (binary_expression "this->is_relro_ & 1" (field_expression "this->is_relro_" identifier -> field_identifier) & number_literal) )) << number_literal) ))))) ;) (ERROR "p_Var10 = input_sections.\n            super__List_base<gold::" (assignment_expression "p_Var10 = input_sections.\n            super__List_base<gold" identifier = (binary_expression "input_sections.\n            super__List_base<gold" (field_expression "input_sections.\n            super__List_base" identifier . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ._M_impl._M_node.super__List_node_base._M_next;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n            ._M_impl._M_node.super__List_node_base._M_next;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n            ._M_impl._M_node.super__List_node_base._M_next;" (field_expression "Input_section>_>\n            ._M_impl._M_node.super__List_node_base._M_next" (field_expression "Input_section>_>\n            ._M_impl._M_node.super__List_node_base" (field_expression "Input_section>_>\n            ._M_impl._M_node" (field_expression "Input_section>_>\n            ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) ;))) (if_statement "if ((pOVar14->field_0x92 & 8) != 0) {\n    *(int *)dot_value = (int)uVar11;\n    *(undefined4 *)((int)dot_value + 4) = uVar3;\n    *(int *)load_address = (int)uVar12;\n    *(undefined4 *)((int)load_address + 4) = uVar4;\n  }" if (parenthesized_expression "((pOVar14->field_0x92 & 8) != 0)" ( (binary_expression "(pOVar14->field_0x92 & 8) != 0" (parenthesized_expression "(pOVar14->field_0x92 & 8)" ( (binary_expression "pOVar14->field_0x92 & 8" (field_expression "pOVar14->field_0x92" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(int *)dot_value = (int)uVar11;\n    *(undefined4 *)((int)dot_value + 4) = uVar3;\n    *(int *)load_address = (int)uVar12;\n    *(undefined4 *)((int)load_address + 4) = uVar4;\n  }" { (expression_statement "*(int *)dot_value = (int)uVar11;" (assignment_expression "*(int *)dot_value = (int)uVar11" (pointer_expression "*(int *)dot_value" * (cast_expression "(int *)dot_value" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)dot_value + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)dot_value + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)dot_value + 4)" * (cast_expression "(undefined4 *)((int)dot_value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dot_value + 4)" ( (binary_expression "(int)dot_value + 4" (cast_expression "(int)dot_value" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)load_address = (int)uVar12;" (assignment_expression "*(int *)load_address = (int)uVar12" (pointer_expression "*(int *)load_address" * (cast_expression "(int *)load_address" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)load_address + 4) = uVar4;" (assignment_expression "*(undefined4 *)((int)load_address + 4) = uVar4" (pointer_expression "*(undefined4 *)((int)load_address + 4)" * (cast_expression "(undefined4 *)((int)load_address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)load_address + 4)" ( (binary_expression "(int)load_address + 4" (cast_expression "(int)load_address" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (labeled_statement "joined_r0x0010ae99:\n  while (p_Var10 != (_List_node_base *)&input_sections) {\n    p_Var7 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n    operator_delete(p_Var10);\n    p_Var10 = p_Var7;\n  }" statement_identifier : (while_statement "while (p_Var10 != (_List_node_base *)&input_sections) {\n    p_Var7 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n    operator_delete(p_Var10);\n    p_Var10 = p_Var7;\n  }" while (parenthesized_expression "(p_Var10 != (_List_node_base *)&input_sections)" ( (binary_expression "p_Var10 != (_List_node_base *)&input_sections" identifier != (cast_expression "(_List_node_base *)&input_sections" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&input_sections" & identifier))) )) (compound_statement "{\n    p_Var7 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n    operator_delete(p_Var10);\n    p_Var10 = p_Var7;\n  }" { (expression_statement "p_Var7 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;" (assignment_expression "p_Var7 = (((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)._M_node.super__List_node_base._M_next" identifier = (field_expression "(((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)._M_node.super__List_node_base._M_next" (field_expression "(((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)._M_node.super__List_node_base" (field_expression "(((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)._M_node" (parenthesized_expression "(((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl)" ( (field_expression "((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)->_M_impl" (parenthesized_expression "((_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next)" ( (binary_expression "(_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)&p_Var10->_M_next" (parenthesized_expression "(_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *)" ( (ERROR "_List_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "_List_base<gold::Output_section::Input_section,_std" (binary_expression "_List_base<gold" identifier < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>\n                *" (binary_expression "Input_section>_" identifier > identifier) > (pointer_expression "*" * identifier)) )) & (field_expression "p_Var10->_M_next" identifier -> field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "operator_delete(p_Var10);" (call_expression "operator_delete(p_Var10)" identifier (argument_list "(p_Var10)" ( identifier ))) ;) (expression_statement "p_Var10 = p_Var7;" (assignment_expression "p_Var10 = p_Var7" identifier = identifier) ;) }))) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)fill._M_dataplus._M_p != paVar1) {\n    operator_delete(fill._M_dataplus._M_p);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)fill._M_dataplus._M_p != paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)fill._M_dataplus._M_p != paVar1)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)fill._M_dataplus._M_p != paVar1" (binary_expression "allocator<char>_>_9\n       *)fill._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)fill._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "fill._M_dataplus._M_p" (field_expression "fill._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n    operator_delete(fill._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(fill._M_dataplus._M_p);" (call_expression "operator_delete(fill._M_dataplus._M_p)" identifier (argument_list "(fill._M_dataplus._M_p)" ( (field_expression "fill._M_dataplus._M_p" (field_expression "fill._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0010a630(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,\n                 undefined4 param_5,longlong *param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int *******pppppppiVar4;\n  undefined *puVar5;\n  int *******pppppppiVar6;\n  longlong lVar7;\n  undefined1 *puVar8;\n  char cVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined **unaff_EBX;\n  uint uVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  longlong lVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  char *pcVar28;\n  undefined4 *local_98;\n  undefined **local_90;\n  uint local_8c;\n  uint local_88;\n  uint local_84;\n  uint local_80;\n  int *******local_7c;\n  undefined4 *local_74;\n  undefined **local_70;\n  int local_68;\n  undefined8 local_64;\n  int *******local_58;\n  int *******local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  iVar10 = *(int *)(param_3 + 4) + 0xac;\n  puVar1 = param_4[1];\n  puVar2 = *param_4;\n  uVar3 = *(undefined4 *)((int)param_6 + 4);\n  lVar7 = *param_6;\n  iVar11 = *(int *)(param_1 + 0x44);\n  if (iVar11 == 0) {\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }\n  else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }\n  local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);\n  iVar11 = local_64._4_4_;\n  local_64._0_4_ = (undefined *)lVar26;\n  puVar5 = (undefined *)local_64;\n  local_70 = &__DT_PLTGOT;\n  *(longlong *)(param_1 + 0x48) = lVar26;\n  *(longlong *)(param_1 + 0x58) = lVar24;\n  local_64 = lVar26;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }\n  else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }\n  local_74 = puVar22;\n  *(longlong *)(param_1 + 0x50) = lVar24;\n  local_48 = 0;\n  local_44[0] = 0;\n  local_4c = local_44;\n  if (*(int *)(param_1 + 0x30) != 0) {\n                    \n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }\n  local_7c = (int *******)&local_58;\n  iVar10 = *(int *)(param_1 + 0x44);\n  local_50 = 0;\n  local_54 = local_7c;\n  local_58 = local_7c;\n  if (iVar10 != 0) {\n                    \n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }\n  puVar22 = *(undefined4 **)(param_1 + 0x38);\n  local_68 = iVar10;\n  if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }\n  if (local_58 != local_7c) {\n                    \n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }\n  if (local_98 != (undefined4 *)0x0) {\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    \n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  piVar23 = *(int **)(param_1 + 0x44);\n  if (piVar23 == (int *)0x0) {\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }\n  if (*(int *)(param_1 + 0x20) == 0) {\n    if (local_74 != (undefined4 *)0x0) {\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }\n  else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }\n  *(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);\n  pppppppiVar6 = local_58;\n  if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }\njoined_r0x0010ae99:\n  while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }\n  if (local_4c != local_44) {\n    FUN_001807a0(local_4c);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0010a630(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,\n                 undefined4 param_5,longlong *param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int *******pppppppiVar4;\n  undefined *puVar5;\n  int *******pppppppiVar6;\n  longlong lVar7;\n  undefined1 *puVar8;\n  char cVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined **unaff_EBX;\n  uint uVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  longlong lVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  char *pcVar28;\n  undefined4 *local_98;\n  undefined **local_90;\n  uint local_8c;\n  uint local_88;\n  uint local_84;\n  uint local_80;\n  int *******local_7c;\n  undefined4 *local_74;\n  undefined **local_70;\n  int local_68;\n  undefined8 local_64;\n  int *******local_58;\n  int *******local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  iVar10 = *(int *)(param_3 + 4) + 0xac;\n  puVar1 = param_4[1];\n  puVar2 = *param_4;\n  uVar3 = *(undefined4 *)((int)param_6 + 4);\n  lVar7 = *param_6;\n  iVar11 = *(int *)(param_1 + 0x44);\n  if (iVar11 == 0) {\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }\n  else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }\n  local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);\n  iVar11 = local_64._4_4_;\n  local_64._0_4_ = (undefined *)lVar26;\n  puVar5 = (undefined *)local_64;\n  local_70 = &__DT_PLTGOT;\n  *(longlong *)(param_1 + 0x48) = lVar26;\n  *(longlong *)(param_1 + 0x58) = lVar24;\n  local_64 = lVar26;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }\n  else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }\n  local_74 = puVar22;\n  *(longlong *)(param_1 + 0x50) = lVar24;\n  local_48 = 0;\n  local_44[0] = 0;\n  local_4c = local_44;\n  if (*(int *)(param_1 + 0x30) != 0) {\n                    \n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }\n  local_7c = (int *******)&local_58;\n  iVar10 = *(int *)(param_1 + 0x44);\n  local_50 = 0;\n  local_54 = local_7c;\n  local_58 = local_7c;\n  if (iVar10 != 0) {\n                    \n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }\n  puVar22 = *(undefined4 **)(param_1 + 0x38);\n  local_68 = iVar10;\n  if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }\n  if (local_58 != local_7c) {\n                    \n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }\n  if (local_98 != (undefined4 *)0x0) {\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    \n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  piVar23 = *(int **)(param_1 + 0x44);\n  if (piVar23 == (int *)0x0) {\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }\n  if (*(int *)(param_1 + 0x20) == 0) {\n    if (local_74 != (undefined4 *)0x0) {\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }\n  else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }\n  *(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);\n  pppppppiVar6 = local_58;\n  if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }\njoined_r0x0010ae99:\n  while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }\n  if (local_4c != local_44) {\n    FUN_001807a0(local_4c);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0010a630(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,\n                 undefined4 param_5,longlong *param_6)" identifier (parameter_list "(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,\n                 undefined4 param_5,longlong *param_6)" ( (parameter_declaration "undefined1 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined **param_4" type_identifier (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier))) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "longlong *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int *******pppppppiVar4;\n  undefined *puVar5;\n  int *******pppppppiVar6;\n  longlong lVar7;\n  undefined1 *puVar8;\n  char cVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined **unaff_EBX;\n  uint uVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  longlong lVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  char *pcVar28;\n  undefined4 *local_98;\n  undefined **local_90;\n  uint local_8c;\n  uint local_88;\n  uint local_84;\n  uint local_80;\n  int *******local_7c;\n  undefined4 *local_74;\n  undefined **local_70;\n  int local_68;\n  undefined8 local_64;\n  int *******local_58;\n  int *******local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  iVar10 = *(int *)(param_3 + 4) + 0xac;\n  puVar1 = param_4[1];\n  puVar2 = *param_4;\n  uVar3 = *(undefined4 *)((int)param_6 + 4);\n  lVar7 = *param_6;\n  iVar11 = *(int *)(param_1 + 0x44);\n  if (iVar11 == 0) {\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }\n  else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }\n  local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);\n  iVar11 = local_64._4_4_;\n  local_64._0_4_ = (undefined *)lVar26;\n  puVar5 = (undefined *)local_64;\n  local_70 = &__DT_PLTGOT;\n  *(longlong *)(param_1 + 0x48) = lVar26;\n  *(longlong *)(param_1 + 0x58) = lVar24;\n  local_64 = lVar26;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }\n  else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }\n  local_74 = puVar22;\n  *(longlong *)(param_1 + 0x50) = lVar24;\n  local_48 = 0;\n  local_44[0] = 0;\n  local_4c = local_44;\n  if (*(int *)(param_1 + 0x30) != 0) {\n                    \n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }\n  local_7c = (int *******)&local_58;\n  iVar10 = *(int *)(param_1 + 0x44);\n  local_50 = 0;\n  local_54 = local_7c;\n  local_58 = local_7c;\n  if (iVar10 != 0) {\n                    \n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }\n  puVar22 = *(undefined4 **)(param_1 + 0x38);\n  local_68 = iVar10;\n  if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }\n  if (local_58 != local_7c) {\n                    \n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }\n  if (local_98 != (undefined4 *)0x0) {\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    \n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  piVar23 = *(int **)(param_1 + 0x44);\n  if (piVar23 == (int *)0x0) {\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }\n  if (*(int *)(param_1 + 0x20) == 0) {\n    if (local_74 != (undefined4 *)0x0) {\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }\n  else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }\n  *(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);\n  pppppppiVar6 = local_58;\n  if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }\njoined_r0x0010ae99:\n  while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }\n  if (local_4c != local_44) {\n    FUN_001807a0(local_4c);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *******pppppppiVar4;" primitive_type (pointer_declarator "*******pppppppiVar4" * (pointer_declarator "******pppppppiVar4" * (pointer_declarator "*****pppppppiVar4" * (pointer_declarator "****pppppppiVar4" * (pointer_declarator "***pppppppiVar4" * (pointer_declarator "**pppppppiVar4" * (pointer_declarator "*pppppppiVar4" * identifier))))))) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *******pppppppiVar6;" primitive_type (pointer_declarator "*******pppppppiVar6" * (pointer_declarator "******pppppppiVar6" * (pointer_declarator "*****pppppppiVar6" * (pointer_declarator "****pppppppiVar6" * (pointer_declarator "***pppppppiVar6" * (pointer_declarator "**pppppppiVar6" * (pointer_declarator "*pppppppiVar6" * identifier))))))) ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined **unaff_EBX;" type_identifier (pointer_declarator "**unaff_EBX" * (pointer_declarator "*unaff_EBX" * identifier)) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "longlong lVar24;" type_identifier identifier ;) (declaration "longlong lVar25;" type_identifier identifier ;) (declaration "longlong lVar26;" type_identifier identifier ;) (declaration "undefined8 uVar27;" type_identifier identifier ;) (declaration "char *pcVar28;" primitive_type (pointer_declarator "*pcVar28" * identifier) ;) (declaration "undefined4 *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined **local_90;" type_identifier (pointer_declarator "**local_90" * (pointer_declarator "*local_90" * identifier)) ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "int *******local_7c;" primitive_type (pointer_declarator "*******local_7c" * (pointer_declarator "******local_7c" * (pointer_declarator "*****local_7c" * (pointer_declarator "****local_7c" * (pointer_declarator "***local_7c" * (pointer_declarator "**local_7c" * (pointer_declarator "*local_7c" * identifier))))))) ;) (declaration "undefined4 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "undefined8 local_64;" type_identifier identifier ;) (declaration "int *******local_58;" primitive_type (pointer_declarator "*******local_58" * (pointer_declarator "******local_58" * (pointer_declarator "*****local_58" * (pointer_declarator "****local_58" * (pointer_declarator "***local_58" * (pointer_declarator "**local_58" * (pointer_declarator "*local_58" * identifier))))))) ;) (declaration "int *******local_54;" primitive_type (pointer_declarator "*******local_54" * (pointer_declarator "******local_54" * (pointer_declarator "*****local_54" * (pointer_declarator "****local_54" * (pointer_declarator "***local_54" * (pointer_declarator "**local_54" * (pointer_declarator "*local_54" * identifier))))))) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined1 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_34 [2];" type_identifier (pointer_declarator "*local_34 [2]" * (array_declarator "local_34 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "iVar10 = *(int *)(param_3 + 4) + 0xac;" (assignment_expression "iVar10 = *(int *)(param_3 + 4) + 0xac" identifier = (binary_expression "*(int *)(param_3 + 4) + 0xac" (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar1 = param_4[1];" (assignment_expression "puVar1 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = *param_4;" (assignment_expression "puVar2 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "uVar3 = *(undefined4 *)((int)param_6 + 4);" (assignment_expression "uVar3 = *(undefined4 *)((int)param_6 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)param_6 + 4)" * (cast_expression "(undefined4 *)((int)param_6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_6 + 4)" ( (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "lVar7 = *param_6;" (assignment_expression "lVar7 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "iVar11 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }\n  else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }" { (labeled_statement "LAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;" statement_identifier : (expression_statement "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;)) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }" { (expression_statement "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);" (assignment_expression "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0)" identifier = (cast_expression "(undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001073d0(iVar10,param_1,1,0,0)" identifier (argument_list "(iVar10,param_1,1,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal ))))) ;) (if_statement "if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" if (parenthesized_expression "(local_98 == (undefined4 *)0x0)" ( (binary_expression "local_98 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        lVar24 = *(longlong *)param_4;\n      }" { (expression_statement "lVar24 = *(longlong *)param_4;" (assignment_expression "lVar24 = *(longlong *)param_4" identifier = (pointer_expression "*(longlong *)param_4" * (cast_expression "(longlong *)param_4" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" else (compound_statement "{\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" { (expression_statement "uVar15 = FUN_00154430(local_98[9],local_98[10]);" (assignment_expression "uVar15 = FUN_00154430(local_98[9],local_98[10])" identifier = (call_expression "FUN_00154430(local_98[9],local_98[10])" identifier (argument_list "(local_98[9],local_98[10])" ( (subscript_expression "local_98[9]" identifier [ number_literal ]) , (subscript_expression "local_98[10]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar15 = FUN_001545c0(local_98[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_98[7],uVar15)" identifier = (call_expression "FUN_001545c0(local_98[7],uVar15)" identifier (argument_list "(local_98[7],uVar15)" ( (subscript_expression "local_98[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "lVar24 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "lVar24 = FUN_00154210(uVar15,param_2,param_3,0)" identifier = (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" identifier (argument_list "(uVar15,param_2,param_3,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) }))) (goto_statement "goto LAB_0010a6de;" goto statement_identifier ;) })) (expression_statement "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);" (assignment_expression "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0)" identifier = (cast_expression "(undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001073d0(iVar10,param_1,1,1,0)" identifier (argument_list "(iVar10,param_1,1,1,0)" ( identifier , identifier , number_literal , number_literal , number_literal ))))) ;) (expression_statement "lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);" (assignment_expression "lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0)" identifier = (call_expression "FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" * (cast_expression "(undefined4 *)(param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) , identifier , identifier , number_literal , (pointer_expression "*param_4" * identifier) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , number_literal , number_literal , identifier , number_literal )))) ;) (expression_statement "uVar21 = (uint)((ulonglong)lVar24 >> 0x20);" (assignment_expression "uVar21 = (uint)((ulonglong)lVar24 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar24 >> 0x20)" ( (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (uint)lVar24;" (assignment_expression "uVar14 = (uint)lVar24" identifier = (cast_expression "(uint)lVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;" if (parenthesized_expression "(local_98 == (undefined4 *)0x0)" ( (binary_expression "local_98 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0010a6d4;" goto statement_identifier ;)) (expression_statement "local_64 = lVar24;" (assignment_expression "local_64 = lVar24" identifier = identifier) ;) (expression_statement "lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);" (assignment_expression "lVar25 = FUN_00154210(local_98[7],param_2,param_3,0)" identifier = (call_expression "FUN_00154210(local_98[7],param_2,param_3,0)" identifier (argument_list "(local_98[7],param_2,param_3,0)" ( (subscript_expression "local_98[7]" identifier [ number_literal ]) , identifier , identifier , number_literal )))) ;) (expression_statement "uVar18 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar18 = (uint)((ulonglong)lVar25 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar13 = (uint)lVar25;" (assignment_expression "uVar13 = (uint)lVar25" identifier = (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);" (assignment_expression "lVar26 = FUN_00154210(local_98[8],param_2,param_3,0)" identifier = (call_expression "FUN_00154210(local_98[8],param_2,param_3,0)" identifier (argument_list "(local_98[8],param_2,param_3,0)" ( (subscript_expression "local_98[8]" identifier [ number_literal ]) , identifier , identifier , number_literal )))) ;) (if_statement "if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" if (parenthesized_expression "((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17))" ( (binary_expression "(uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)" (parenthesized_expression "(uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13))" ( (binary_expression "uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)" (binary_expression "uVar21 < uVar18" identifier < identifier) || (binary_expression "uVar21 - uVar18 < (uint)(uVar14 < uVar13)" (binary_expression "uVar21 - uVar18" identifier - identifier) < (call_expression "(uint)(uVar14 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar13)" ( (binary_expression "uVar14 < uVar13" identifier < identifier) ))))) )) || (parenthesized_expression "(uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)" ( (comma_expression "uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17" (assignment_expression "uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20)" identifier = (call_expression "(uint)((ulonglong)(lVar25 + lVar26) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)(lVar25 + lVar26) >> 0x20)" ( (binary_expression "(ulonglong)(lVar25 + lVar26) >> 0x20" (call_expression "(ulonglong)(lVar25 + lVar26)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar25 + lVar26)" ( (binary_expression "lVar25 + lVar26" identifier + identifier) ))) >> number_literal) )))) , (binary_expression "uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17" (binary_expression "uVar17 <= uVar21" identifier <= identifier) && (binary_expression "(uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17" (call_expression "(uint)(uVar14 < (uint)(lVar25 + lVar26))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (uint)(lVar25 + lVar26))" ( (binary_expression "uVar14 < (uint)(lVar25 + lVar26)" identifier < (call_expression "(uint)(lVar25 + lVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar25 + lVar26)" ( (binary_expression "lVar25 + lVar26" identifier + identifier) )))) ))) <= (binary_expression "uVar21 - uVar17" identifier - identifier)))) ))) )) (compound_statement "{\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }" { (expression_statement "uVar15 = *local_98;" (assignment_expression "uVar15 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) (expression_statement "pcVar28 = "address 0x%llx is not within region %s";" (assignment_expression "pcVar28 = "address 0x%llx is not within region %s"" identifier = (string_literal ""address 0x%llx is not within region %s"" " string_content ")) ;) (labeled_statement "LAB_0010b0ad:\n      uVar12 = gettext(pcVar28);" statement_identifier : (expression_statement "uVar12 = gettext(pcVar28);" (assignment_expression "uVar12 = gettext(pcVar28)" identifier = (call_expression "gettext(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier )))) ;)) (expression_statement "FUN_0005ad00(uVar12,lVar24,uVar15);" (call_expression "FUN_0005ad00(uVar12,lVar24,uVar15)" identifier (argument_list "(uVar12,lVar24,uVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) }) (else_clause "else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" else (compound_statement "{\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" { (expression_statement "uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];" (assignment_expression "uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10]" identifier = (binary_expression "uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10]" (binary_expression "uVar18 + (uint)CARRY4(uVar13,local_98[9])" identifier + (cast_expression "(uint)CARRY4(uVar13,local_98[9])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13,local_98[9])" identifier (argument_list "(uVar13,local_98[9])" ( identifier , (subscript_expression "local_98[9]" identifier [ number_literal ]) ))))) + (subscript_expression "local_98[10]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);" (assignment_expression "uVar14 = (uint)(uVar14 < uVar13 + local_98[9])" identifier = (call_expression "(uint)(uVar14 < uVar13 + local_98[9])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar13 + local_98[9])" ( (binary_expression "uVar14 < uVar13 + local_98[9]" identifier < (binary_expression "uVar13 + local_98[9]" identifier + (subscript_expression "local_98[9]" identifier [ number_literal ]))) )))) ;) (expression_statement "uVar13 = uVar21 - uVar18;" (assignment_expression "uVar13 = uVar21 - uVar18" identifier = (binary_expression "uVar21 - uVar18" identifier - identifier)) ;) (expression_statement "unaff_EBX = (undefined **)(uVar13 - uVar14);" (assignment_expression "unaff_EBX = (undefined **)(uVar13 - uVar14)" identifier = (cast_expression "(undefined **)(uVar13 - uVar14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar13 - uVar14)" ( (binary_expression "uVar13 - uVar14" identifier - identifier) )))) ;) (if_statement "if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }" if (parenthesized_expression "(uVar21 < uVar18 || uVar13 < uVar14)" ( (binary_expression "uVar21 < uVar18 || uVar13 < uVar14" (binary_expression "uVar21 < uVar18" identifier < identifier) || (binary_expression "uVar13 < uVar14" identifier < identifier)) )) (compound_statement "{\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }" { (expression_statement "uVar15 = *local_98;" (assignment_expression "uVar15 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) (expression_statement "pcVar28 = "address 0x%llx moves dot backwards in region %s";" (assignment_expression "pcVar28 = "address 0x%llx moves dot backwards in region %s"" identifier = (string_literal ""address 0x%llx moves dot backwards in region %s"" " string_content ")) ;) (goto_statement "goto LAB_0010b0ad;" goto statement_identifier ;) })) }))) (expression_statement "iVar11 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(longlong *)(local_98 + 9) = lVar24 - lVar25;" (assignment_expression "*(longlong *)(local_98 + 9) = lVar24 - lVar25" (pointer_expression "*(longlong *)(local_98 + 9)" * (cast_expression "(longlong *)(local_98 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + 9)" ( (binary_expression "local_98 + 9" identifier + number_literal) )))) = (binary_expression "lVar24 - lVar25" identifier - identifier)) ;) (if_statement "if (iVar11 != 0) goto LAB_0010a6e9;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010a6e9;" goto statement_identifier ;)) (labeled_statement "LAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);" statement_identifier : (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" identifier = (pointer_expression "*(int **)(param_1 + 0x44)" * (cast_expression "(int **)(param_1 + 0x44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;)) (if_statement "if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }" if (parenthesized_expression "(piVar23 != (int *)0x0)" ( (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }" { (if_statement "if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }" if (parenthesized_expression "(*(code **)(*piVar23 + 0xc) != FUN_00088ee0)" ( (binary_expression "*(code **)(*piVar23 + 0xc) != FUN_00088ee0" (pointer_expression "*(code **)(*piVar23 + 0xc)" * (cast_expression "(code **)(*piVar23 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar23 + 0xc)" ( (binary_expression "*piVar23 + 0xc" (pointer_expression "*piVar23" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }" { (expression_statement "lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);" (assignment_expression "lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23)" identifier = (call_expression "(**(code **)(*piVar23 + 0xc))(piVar23)" (parenthesized_expression "(**(code **)(*piVar23 + 0xc))" ( (pointer_expression "**(code **)(*piVar23 + 0xc)" * (pointer_expression "*(code **)(*piVar23 + 0xc)" * (cast_expression "(code **)(*piVar23 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar23 + 0xc)" ( (binary_expression "*piVar23 + 0xc" (pointer_expression "*piVar23" * identifier) + number_literal) ))))) )) (argument_list "(piVar23)" ( identifier )))) ;) (goto_statement "goto LAB_0010a762;" goto statement_identifier ;) })) (expression_statement "lVar24 = *(longlong *)(piVar23 + 9);" (assignment_expression "lVar24 = *(longlong *)(piVar23 + 9)" identifier = (pointer_expression "*(longlong *)(piVar23 + 9)" * (cast_expression "(longlong *)(piVar23 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar23 + 9)" ( (binary_expression "piVar23 + 9" identifier + number_literal) ))))) ;) (expression_statement "local_7c = *(int ********)(param_1 + 0x28);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x28)" identifier = (pointer_expression "*(int ********)(param_1 + 0x28)" * (cast_expression "(int ********)(param_1 + 0x28)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar25 = *(longlong *)(piVar23 + 9);" (assignment_expression "lVar25 = *(longlong *)(piVar23 + 9)" identifier = (pointer_expression "*(longlong *)(piVar23 + 9)" * (cast_expression "(longlong *)(piVar23 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar23 + 9)" ( (binary_expression "piVar23 + 9" identifier + number_literal) ))))) ;) (if_statement "if (local_7c != (int *******)0x0) goto LAB_0010a770;" if (parenthesized_expression "(local_7c != (int *******)0x0)" ( (binary_expression "local_7c != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0010a770;" goto statement_identifier ;)) (goto_statement "goto LAB_0010a9e6;" goto statement_identifier ;) })) (expression_statement "local_7c = *(int ********)(param_1 + 0x28);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x28)" identifier = (pointer_expression "*(int ********)(param_1 + 0x28)" * (cast_expression "(int ********)(param_1 + 0x28)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar24 = 0;" (assignment_expression "lVar24 = 0" identifier = number_literal) ;) (if_statement "if (local_7c != (int *******)0x0) goto LAB_0010a770;" if (parenthesized_expression "(local_7c != (int *******)0x0)" ( (binary_expression "local_7c != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_0010a770;" goto statement_identifier ;)) (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;) (expression_statement "*(longlong *)param_4 = local_64;" (assignment_expression "*(longlong *)param_4 = local_64" (pointer_expression "*(longlong *)param_4" * (cast_expression "(longlong *)param_4" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "local_7c = (int *******)0x0;" (assignment_expression "local_7c = (int *******)0x0" identifier = (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "lVar26 = local_64;" (assignment_expression "lVar26 = local_64" identifier = identifier) ;) }) (else_clause "else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }" else (compound_statement "{\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }" { (if_statement "if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }" if (parenthesized_expression "((*(byte *)(iVar11 + 0x91) & 2) != 0)" ( (binary_expression "(*(byte *)(iVar11 + 0x91) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x91) & 2)" ( (binary_expression "*(byte *)(iVar11 + 0x91) & 2" (pointer_expression "*(byte *)(iVar11 + 0x91)" * (cast_expression "(byte *)(iVar11 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x91)" ( (binary_expression "iVar11 + 0x91" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }" { (expression_statement "unaff_EBX = &__DT_PLTGOT;" (assignment_expression "unaff_EBX = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "FUN_000c2b80(iVar11);" (call_expression "FUN_000c2b80(iVar11)" identifier (argument_list "(iVar11)" ( identifier ))) ;) (expression_statement "iVar11 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_0010a8a0;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010a8a0;" goto statement_identifier ;)) })) (expression_statement "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }" if (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" ( (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }" { (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);" (assignment_expression "cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64)" identifier = (call_expression "FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64)" identifier (argument_list "(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64)" ( (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar11 + 0x20)" * (cast_expression "(undefined4 *)(iVar11 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x20)" ( (binary_expression "iVar11 + 0x20" identifier + number_literal) )))) , (pointer_expression "&local_64" & identifier) )))) ;) (expression_statement "lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);" (assignment_expression "lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64)" identifier = (call_expression "CONCAT44(local_64._4_4_,(undefined *)local_64)" identifier (argument_list "(local_64._4_4_,(undefined *)local_64)" ( (field_expression "local_64._4_4_" identifier . field_identifier) , (cast_expression "(undefined *)local_64" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) (if_statement "if (cVar9 == '\0') goto LAB_0010a8a0;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0010a8a0;" goto statement_identifier ;)) (labeled_statement "LAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;" statement_identifier : (expression_statement "local_98 = (undefined4 *)0x0;" (assignment_expression "local_98 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "unaff_EBX = &__DT_PLTGOT;" (assignment_expression "unaff_EBX = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (labeled_statement "LAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);" statement_identifier : (expression_statement "iVar11 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;)) (expression_statement "local_64 = lVar24;" (assignment_expression "local_64 = lVar24" identifier = identifier) ;) (if_statement "if (iVar11 == 0) goto LAB_0010a9a5;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010a9a5;" goto statement_identifier ;)) (labeled_statement "LAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);" statement_identifier : (expression_statement "lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);" (assignment_expression "lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" identifier = (call_expression "FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" identifier (argument_list "(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" ( identifier , identifier , identifier , number_literal , (pointer_expression "*param_4" * identifier) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , number_literal , identifier , number_literal , number_literal )))) ;)) (if_statement "if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" if (parenthesized_expression "(local_34[0] != (undefined1 *)0x0)" ( (binary_expression "local_34[0] != (undefined1 *)0x0" (subscript_expression "local_34[0]" identifier [ number_literal ]) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" { (expression_statement "uVar15 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = gettext("alignment of section %s is not absolute");" (assignment_expression "uVar12 = gettext("alignment of section %s is not absolute")" identifier = (call_expression "gettext("alignment of section %s is not absolute")" identifier (argument_list "("alignment of section %s is not absolute")" ( (string_literal ""alignment of section %s is not absolute"" " string_content ") )))) ;) (expression_statement "FUN_0005ad30(uVar12,uVar15);" (call_expression "FUN_0005ad30(uVar12,uVar15)" identifier (argument_list "(uVar12,uVar15)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x44) != 0)" ( (binary_expression "*(int *)(param_1 + 0x44) != 0" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }" { (expression_statement "*(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;" (assignment_expression "*(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24" (pointer_expression "*(longlong *)(*(int *)(param_1 + 0x44) + 0x24)" * (cast_expression "(longlong *)(*(int *)(param_1 + 0x44) + 0x24)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x44) + 0x24)" ( (binary_expression "*(int *)(param_1 + 0x44) + 0x24" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (labeled_statement "LAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);" statement_identifier : (expression_statement "local_7c = *(int ********)(param_1 + 0x28);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x28)" identifier = (pointer_expression "*(int ********)(param_1 + 0x28)" * (cast_expression "(int ********)(param_1 + 0x28)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;)) (expression_statement "lVar25 = lVar24;" (assignment_expression "lVar25 = lVar24" identifier = identifier) ;) (if_statement "if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }" if (parenthesized_expression "(local_7c == (int *******)0x0)" ( (binary_expression "local_7c == (int *******)0x0" identifier == (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }" { (labeled_statement "LAB_0010a9e6:\n      lVar24 = lVar25;" statement_identifier : (expression_statement "lVar24 = lVar25;" (assignment_expression "lVar24 = lVar25" identifier = identifier) ;)) (expression_statement "local_7c = *(int ********)(param_1 + 0x44);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x44)" identifier = (pointer_expression "*(int ********)(param_1 + 0x44)" * (cast_expression "(int ********)(param_1 + 0x44)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }" if (parenthesized_expression "(lVar24 != 0)" ( (binary_expression "lVar24 != 0" identifier != number_literal) )) (compound_statement "{\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }" { (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0010a837;" goto statement_identifier ;) })) (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }" else (compound_statement "{\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }" { (labeled_statement "LAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);" statement_identifier : (expression_statement "local_88 = (uint)((ulonglong)lVar24 >> 0x20);" (assignment_expression "local_88 = (uint)((ulonglong)lVar24 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar24 >> 0x20)" ( (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_8c = (uint)lVar24;" (assignment_expression "local_8c = (uint)lVar24" identifier = (cast_expression "(uint)lVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);" (assignment_expression "lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" identifier = (call_expression "FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" identifier (argument_list "(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" ( identifier , identifier , identifier , number_literal , (pointer_expression "*param_4" * identifier) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , number_literal , identifier , number_literal , number_literal )))) ;) (if_statement "if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }" if (parenthesized_expression "(local_34[0] != (undefined1 *)0x0)" ( (binary_expression "local_34[0] != (undefined1 *)0x0" (subscript_expression "local_34[0]" identifier [ number_literal ]) != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }" { (expression_statement "uVar15 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = gettext("subalign of section %s is not absolute");" (assignment_expression "uVar12 = gettext("subalign of section %s is not absolute")" identifier = (call_expression "gettext("subalign of section %s is not absolute")" identifier (argument_list "("subalign of section %s is not absolute")" ( (string_literal ""subalign of section %s is not absolute"" " string_content ") )))) ;) (expression_statement "FUN_0005ad30(uVar12,uVar15);" (call_expression "FUN_0005ad30(uVar12,uVar15)" identifier (argument_list "(uVar12,uVar15)" ( identifier , identifier ))) ;) })) (if_statement "if (lVar25 == 0) {\n        lVar25 = 1;\n      }" if (parenthesized_expression "(lVar25 == 0)" ( (binary_expression "lVar25 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar25 = 1;\n      }" { (expression_statement "lVar25 = 1;" (assignment_expression "lVar25 = 1" identifier = number_literal) ;) })) (expression_statement "local_80 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "local_80 = (uint)((ulonglong)lVar25 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (uint)lVar25;" (assignment_expression "local_84 = (uint)lVar25" identifier = (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_7c = *(int ********)(param_1 + 0x44);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x44)" identifier = (pointer_expression "*(int ********)(param_1 + 0x44)" * (cast_expression "(int ********)(param_1 + 0x44)" ( (type_descriptor "int ********" primitive_type (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }" if (parenthesized_expression "((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0))" ( (binary_expression "(local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)" (parenthesized_expression "(local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84))" ( (binary_expression "local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)" (binary_expression "local_88 < local_80" identifier < identifier) || (binary_expression "local_88 - local_80 < (uint)(local_8c < local_84)" (binary_expression "local_88 - local_80" identifier - identifier) < (call_expression "(uint)(local_8c < local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_8c < local_84)" ( (binary_expression "local_8c < local_84" identifier < identifier) ))))) )) || (parenthesized_expression "(*(int *)(param_1 + 0x24) == 0)" ( (binary_expression "*(int *)(param_1 + 0x24) == 0" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }" { (expression_statement "*(longlong *)((int)local_7c + 0x24) = lVar25;" (assignment_expression "*(longlong *)((int)local_7c + 0x24) = lVar25" (pointer_expression "*(longlong *)((int)local_7c + 0x24)" * (cast_expression "(longlong *)((int)local_7c + 0x24)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x24)" ( (binary_expression "(int)local_7c + 0x24" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "lVar24 = lVar25;" (assignment_expression "lVar24 = lVar25" identifier = identifier) ;) })) (labeled_statement "LAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);" statement_identifier : (expression_statement "local_88 = (uint)((ulonglong)lVar24 >> 0x20);" (assignment_expression "local_88 = (uint)((ulonglong)lVar24 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar24 >> 0x20)" ( (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_8c = (uint)lVar24;" (assignment_expression "local_8c = (uint)lVar24" identifier = (cast_expression "(uint)lVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar26 = lVar24 + local_64 + -1;" (assignment_expression "lVar26 = lVar24 + local_64 + -1" identifier = (binary_expression "lVar24 + local_64 + -1" (binary_expression "lVar24 + local_64" identifier + identifier) + number_literal)) ;) (expression_statement "local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);" (assignment_expression "local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c)" identifier (argument_list "((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c)" ( (binary_expression "(uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0))" (call_expression "(uint)((ulonglong)lVar26 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-(local_88 + (local_8c != 0))" - (parenthesized_expression "(local_88 + (local_8c != 0))" ( (binary_expression "local_88 + (local_8c != 0)" identifier + (parenthesized_expression "(local_8c != 0)" ( (binary_expression "local_8c != 0" identifier != number_literal) ))) )))) , (binary_expression "(uint)lVar26 & -local_8c" (cast_expression "(uint)lVar26" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-local_8c" - identifier)) )))) ;) }))) (expression_statement "local_90 = (undefined **)((ulonglong)local_64 >> 0x20);" (assignment_expression "local_90 = (undefined **)((ulonglong)local_64 >> 0x20)" identifier = (cast_expression "(undefined **)((ulonglong)local_64 >> 0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((ulonglong)local_64 >> 0x20)" ( (binary_expression "(ulonglong)local_64 >> 0x20" (cast_expression "(ulonglong)local_64" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(longlong *)param_4 = local_64;" (assignment_expression "*(longlong *)param_4 = local_64" (pointer_expression "*(longlong *)param_4" * (cast_expression "(longlong *)param_4" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "unaff_EBX = param_4;" (assignment_expression "unaff_EBX = param_4" identifier = identifier) ;) (expression_statement "lVar26 = local_64;" (assignment_expression "lVar26 = local_64" identifier = identifier) ;) (if_statement "if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }" if (parenthesized_expression "((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       ))" ( (binary_expression "(local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )" (parenthesized_expression "(local_7c != (int *******)0x0)" ( (binary_expression "local_7c != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )" ( (parenthesized_expression "((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))" ( (binary_expression "(*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0)" (binary_expression "(*(byte *)((int)local_7c + 0x54) & 2) != 0" (parenthesized_expression "(*(byte *)((int)local_7c + 0x54) & 2)" ( (binary_expression "*(byte *)((int)local_7c + 0x54) & 2" (pointer_expression "*(byte *)((int)local_7c + 0x54)" * (cast_expression "(byte *)((int)local_7c + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x54)" ( (binary_expression "(int)local_7c + 0x54" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)((int)local_7c + 0x92) & 8) != 0)" ( (binary_expression "(*(byte *)((int)local_7c + 0x92) & 8) != 0" (parenthesized_expression "(*(byte *)((int)local_7c + 0x92) & 8)" ( (binary_expression "*(byte *)((int)local_7c + 0x92) & 8" (pointer_expression "*(byte *)((int)local_7c + 0x92)" * (cast_expression "(byte *)((int)local_7c + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x92)" ( (binary_expression "(int)local_7c + 0x92" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }" { (if_statement "if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }" if (parenthesized_expression "((*(byte *)((int)local_7c + 0x1c) & 1) != 0)" ( (binary_expression "(*(byte *)((int)local_7c + 0x1c) & 1) != 0" (parenthesized_expression "(*(byte *)((int)local_7c + 0x1c) & 1)" ( (binary_expression "*(byte *)((int)local_7c + 0x1c) & 1" (pointer_expression "*(byte *)((int)local_7c + 0x1c)" * (cast_expression "(byte *)((int)local_7c + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x1c)" ( (binary_expression "(int)local_7c + 0x1c" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }" { (expression_statement "FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);" (call_expression "FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4)" identifier (argument_list "("../../gold/output.h",0x142,"set_address",param_4)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_address"" " string_content ") , identifier ))) ;) })) (expression_statement "*(longlong *)((int)local_7c + 4) = local_64;" (assignment_expression "*(longlong *)((int)local_7c + 4) = local_64" (pointer_expression "*(longlong *)((int)local_7c + 4)" * (cast_expression "(longlong *)((int)local_7c + 4)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 4)" ( (binary_expression "(int)local_7c + 4" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;" (assignment_expression "*(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1" (pointer_expression "*(byte *)((int)local_7c + 0x1c)" * (cast_expression "(byte *)((int)local_7c + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x1c)" ( (binary_expression "(int)local_7c + 0x1c" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_7c + 0x1c) | 1" (pointer_expression "*(byte *)((int)local_7c + 0x1c)" * (cast_expression "(byte *)((int)local_7c + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x1c)" ( (binary_expression "(int)local_7c + 0x1c" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "unaff_EBX = local_90;" (assignment_expression "unaff_EBX = local_90" identifier = identifier) ;) })) }))) (expression_statement "local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);" (assignment_expression "local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20)" (field_expression "local_64._4_4_" identifier . field_identifier) = (cast_expression "(int)((ulonglong)lVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar11 = local_64._4_4_;" (assignment_expression "iVar11 = local_64._4_4_" identifier = (field_expression "local_64._4_4_" identifier . field_identifier)) ;) (expression_statement "local_64._0_4_ = (undefined *)lVar26;" (assignment_expression "local_64._0_4_ = (undefined *)lVar26" (field_expression "local_64._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)lVar26" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar5 = (undefined *)local_64;" (assignment_expression "puVar5 = (undefined *)local_64" identifier = (cast_expression "(undefined *)local_64" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "*(longlong *)(param_1 + 0x48) = lVar26;" (assignment_expression "*(longlong *)(param_1 + 0x48) = lVar26" (pointer_expression "*(longlong *)(param_1 + 0x48)" * (cast_expression "(longlong *)(param_1 + 0x48)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(longlong *)(param_1 + 0x58) = lVar24;" (assignment_expression "*(longlong *)(param_1 + 0x58) = lVar24" (pointer_expression "*(longlong *)(param_1 + 0x58)" * (cast_expression "(longlong *)(param_1 + 0x58)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_64 = lVar26;" (assignment_expression "local_64 = lVar26" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x20) == 0) {\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }\n  else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0)" ( (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }" { (expression_statement "local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);" (assignment_expression "local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34)" identifier = (cast_expression "(undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001073d0(iVar10,param_1,0,0,local_34)" identifier (argument_list "(iVar10,param_1,0,0,local_34)" ( identifier , identifier , number_literal , number_literal , identifier ))))) ;) (expression_statement "puVar22 = (undefined4 *)0x0;" (assignment_expression "puVar22 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lVar24 = local_64;" (assignment_expression "lVar24 = local_64" identifier = identifier) ;) (if_statement "if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }" if (parenthesized_expression "(local_74 != (undefined4 *)0x0)" ( (binary_expression "local_74 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }" { (if_statement "if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }" if (parenthesized_expression "(local_34[0] == (undefined1 *)0x0)" ( (binary_expression "local_34[0] == (undefined1 *)0x0" (subscript_expression "local_34[0]" identifier [ number_literal ]) == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" { (expression_statement "uVar15 = FUN_00154430(local_74[9],local_74[10]);" (assignment_expression "uVar15 = FUN_00154430(local_74[9],local_74[10])" identifier = (call_expression "FUN_00154430(local_74[9],local_74[10])" identifier (argument_list "(local_74[9],local_74[10])" ( (subscript_expression "local_74[9]" identifier [ number_literal ]) , (subscript_expression "local_74[10]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar15 = FUN_001545c0(local_74[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_74[7],uVar15)" identifier = (call_expression "FUN_001545c0(local_74[7],uVar15)" identifier (argument_list "(local_74[7],uVar15)" ( (subscript_expression "local_74[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "lVar24 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "lVar24 = FUN_00154210(uVar15,param_2,param_3,0)" identifier = (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" identifier (argument_list "(uVar15,param_2,param_3,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) }) (else_clause "else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }" else (compound_statement "{\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }" { (expression_statement "local_74 = puVar22;" (assignment_expression "local_74 = puVar22" identifier = identifier) ;) (if_statement "if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }" if (parenthesized_expression "((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1))" ( (binary_expression "(*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)" (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(local_34[0] != param_1)" ( (binary_expression "local_34[0] != param_1" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) ))) )) (compound_statement "{\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }" { (expression_statement "uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);" (assignment_expression "uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50)" identifier = (binary_expression "(int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50)" (cast_expression "(int)(undefined *)local_64" ( (type_descriptor "int" primitive_type) ) (cast_expression "(undefined *)local_64" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + (pointer_expression "*(uint *)(local_34[0] + 0x50)" * (cast_expression "(uint *)(local_34[0] + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x50)" ( (binary_expression "local_34[0] + 0x50" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) )))))) ;) (expression_statement "lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));" (assignment_expression "lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48))" identifier = (call_expression "CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48))" identifier (argument_list "(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48))" ( (binary_expression "local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48)))" (field_expression "local_64._4_4_" identifier . field_identifier) + (parenthesized_expression "((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48)))" ( (binary_expression "(((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))" (parenthesized_expression "(((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c))" ( (binary_expression "((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)" (parenthesized_expression "((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54))" ( (binary_expression "(uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)" (cast_expression "(uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50))" identifier (argument_list "((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50))" ( (cast_expression "(uint)(undefined *)local_64" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(undefined *)local_64" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "*(uint *)(local_34[0] + 0x50)" * (cast_expression "(uint *)(local_34[0] + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x50)" ( (binary_expression "local_34[0] + 0x50" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) )))) )))) + (pointer_expression "*(int *)(local_34[0] + 0x54)" * (cast_expression "(int *)(local_34[0] + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x54)" ( (binary_expression "local_34[0] + 0x54" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) ))))) )) - (pointer_expression "*(int *)(local_34[0] + 0x4c)" * (cast_expression "(int *)(local_34[0] + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x4c)" ( (binary_expression "local_34[0] + 0x4c" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) ))))) )) - (call_expression "(uint)(uVar14 < *(uint *)(local_34[0] + 0x48))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < *(uint *)(local_34[0] + 0x48))" ( (binary_expression "uVar14 < *(uint *)(local_34[0] + 0x48)" identifier < (pointer_expression "*(uint *)(local_34[0] + 0x48)" * (cast_expression "(uint *)(local_34[0] + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x48)" ( (binary_expression "local_34[0] + 0x48" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) ))))) )))) ))) , (binary_expression "uVar14 - *(uint *)(local_34[0] + 0x48)" identifier - (pointer_expression "*(uint *)(local_34[0] + 0x48)" * (cast_expression "(uint *)(local_34[0] + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34[0] + 0x48)" ( (binary_expression "local_34[0] + 0x48" (subscript_expression "local_34[0]" identifier [ number_literal ]) + number_literal) ))))) )))) ;) })) }))) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = local_74;" (assignment_expression "puVar22 = local_74" identifier = identifier) ;) (if_statement "if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }" { (expression_statement "*(longlong *)(iVar10 + 0x34) = lVar24;" (assignment_expression "*(longlong *)(iVar10 + 0x34) = lVar24" (pointer_expression "*(longlong *)(iVar10 + 0x34)" * (cast_expression "(longlong *)(iVar10 + 0x34)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;" (assignment_expression "*(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80" (pointer_expression "*(byte *)(iVar10 + 0x90)" * (cast_expression "(byte *)(iVar10 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x90)" ( (binary_expression "iVar10 + 0x90" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar10 + 0x90) | 0x80" (pointer_expression "*(byte *)(iVar10 + 0x90)" * (cast_expression "(byte *)(iVar10 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x90)" ( (binary_expression "iVar10 + 0x90" identifier + number_literal) )))) | number_literal)) ;) })) })) }) (else_clause "else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }" else (compound_statement "{\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }" { (expression_statement "lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);" (assignment_expression "lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0)" identifier = (call_expression "FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0)" identifier (argument_list "(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0)" ( (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , identifier , identifier , number_literal , (pointer_expression "*param_4" * identifier) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "puVar22 = *(undefined4 **)(param_1 + 0x44);" (assignment_expression "puVar22 = *(undefined4 **)(param_1 + 0x44)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x44)" * (cast_expression "(undefined4 **)(param_1 + 0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) (if_statement "if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }" if (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" ( (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }" { (expression_statement "*(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;" (assignment_expression "*(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80" (pointer_expression "*(byte *)(puVar22 + 0x24)" * (cast_expression "(byte *)(puVar22 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x24)" ( (binary_expression "puVar22 + 0x24" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar22 + 0x24) | 0x80" (pointer_expression "*(byte *)(puVar22 + 0x24)" * (cast_expression "(byte *)(puVar22 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x24)" ( (binary_expression "puVar22 + 0x24" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(longlong *)(puVar22 + 0xd) = lVar24;" (assignment_expression "*(longlong *)(puVar22 + 0xd) = lVar24" (pointer_expression "*(longlong *)(puVar22 + 0xd)" * (cast_expression "(longlong *)(puVar22 + 0xd)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0xd)" ( (binary_expression "puVar22 + 0xd" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_74 = (undefined4 *)0x0;" (assignment_expression "local_74 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_EBX = &__DT_PLTGOT;" (assignment_expression "unaff_EBX = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puVar22 = local_74;" (assignment_expression "puVar22 = local_74" identifier = identifier) ;) })) }))) (expression_statement "local_74 = puVar22;" (assignment_expression "local_74 = puVar22" identifier = identifier) ;) (expression_statement "*(longlong *)(param_1 + 0x50) = lVar24;" (assignment_expression "*(longlong *)(param_1 + 0x50) = lVar24" (pointer_expression "*(longlong *)(param_1 + 0x50)" * (cast_expression "(longlong *)(param_1 + 0x50)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_4c = local_44;" (assignment_expression "local_4c = local_44" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x30) != 0) {\n                    \n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x30) != 0)" ( (binary_expression "*(int *)(param_1 + 0x30) != 0" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }" { (expression_statement "uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);" (assignment_expression "uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0)" identifier = (call_expression "FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0)" identifier (argument_list "(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0)" ( (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , identifier , identifier , number_literal , (pointer_expression "*param_4" * identifier) , (subscript_expression "param_4[1]" identifier [ number_literal ]) , number_literal , (pointer_expression "&local_58" & identifier) , number_literal , number_literal )))) ;) (if_statement "if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" if (parenthesized_expression "(local_58 != (int *******)0x0)" ( (binary_expression "local_58 != (int *******)0x0" identifier != (cast_expression "(int *******)0x0" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" { (expression_statement "uVar15 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = gettext("fill of section %s is not absolute");" (assignment_expression "uVar12 = gettext("fill of section %s is not absolute")" identifier = (call_expression "gettext("fill of section %s is not absolute")" identifier (argument_list "("fill of section %s is not absolute")" ( (string_literal ""fill of section %s is not absolute"" " string_content ") )))) ;) (expression_statement "FUN_0005ad30(uVar12,uVar15);" (call_expression "FUN_0005ad30(uVar12,uVar15)" identifier (argument_list "(uVar12,uVar15)" ( identifier , identifier ))) ;) })) (expression_statement "local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);" (assignment_expression "local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18)" (subscript_expression "local_34[0]" identifier [ number_literal ]) = (cast_expression "(undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18)" ( (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" (binary_expression "uVar14 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar14 & 0xff0000) >> 8" (parenthesized_expression "(uVar14 & 0xff0000)" ( (binary_expression "uVar14 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar14 & 0xff00) << 8" (parenthesized_expression "(uVar14 & 0xff00)" ( (binary_expression "uVar14 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar14 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "FUN_001893e0(&local_4c,0,local_48,local_34,4);" (call_expression "FUN_001893e0(&local_4c,0,local_48,local_34,4)" identifier (argument_list "(&local_4c,0,local_48,local_34,4)" ( (pointer_expression "&local_4c" & identifier) , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) })) (expression_statement "local_7c = (int *******)&local_58;" (assignment_expression "local_7c = (int *******)&local_58" identifier = (cast_expression "(int *******)&local_58" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_58" & identifier))) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_54 = local_7c;" (assignment_expression "local_54 = local_7c" identifier = identifier) ;) (expression_statement "local_58 = local_7c;" (assignment_expression "local_58 = local_7c" identifier = identifier) ;) (if_statement "if (iVar10 != 0) {\n                    \n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }" { (expression_statement "lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);" (assignment_expression "lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c)" identifier = (call_expression "FUN_000bfc90(iVar10,local_64,&local_4c,local_7c)" identifier (argument_list "(iVar10,local_64,&local_4c,local_7c)" ( identifier , identifier , (pointer_expression "&local_4c" & identifier) , identifier )))) ;) (expression_statement "local_64 = lVar24 + local_64;" (assignment_expression "local_64 = lVar24 + local_64" identifier = (binary_expression "lVar24 + local_64" identifier + identifier)) ;) (expression_statement "*(longlong *)param_4 = local_64;" (assignment_expression "*(longlong *)param_4 = local_64" (pointer_expression "*(longlong *)param_4" * (cast_expression "(longlong *)param_4" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" identifier = identifier) ;) })) (expression_statement "puVar22 = *(undefined4 **)(param_1 + 0x38);" (assignment_expression "puVar22 = *(undefined4 **)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x38)" * (cast_expression "(undefined4 **)(param_1 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "local_68 = iVar10;" (assignment_expression "local_68 = iVar10" identifier = identifier) ;) (if_statement "if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }" if (parenthesized_expression "(puVar22 != *(undefined4 **)(param_1 + 0x3c))" ( (binary_expression "puVar22 != *(undefined4 **)(param_1 + 0x3c)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) )) (compound_statement "{\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }" { (expression_statement "unaff_EBX = &local_4c;" (assignment_expression "unaff_EBX = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (while_statement "while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }" { (expression_statement "(**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);" (call_expression "(**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c)" (parenthesized_expression "(**(code **)(*(int *)*puVar22 + 0x18))" ( (pointer_expression "**(code **)(*(int *)*puVar22 + 0x18)" * (pointer_expression "*(code **)(*(int *)*puVar22 + 0x18)" * (cast_expression "(code **)(*(int *)*puVar22 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar22 + 0x18)" ( (binary_expression "*(int *)*puVar22 + 0x18" (pointer_expression "*(int *)*puVar22" * (cast_expression "(int *)*puVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar22" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c)" ( (cast_expression "(int *)*puVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar22" * identifier)) , identifier , identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_68" & identifier) , identifier , identifier ))) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (if_statement "if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;" if (parenthesized_expression "(*(undefined4 **)(param_1 + 0x3c) == puVar22)" ( (binary_expression "*(undefined4 **)(param_1 + 0x3c) == puVar22" (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" identifier = (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) })) })) (if_statement "if (local_58 != local_7c) {\n                    \n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }" if (parenthesized_expression "(local_58 != local_7c)" ( (binary_expression "local_58 != local_7c" identifier != identifier) )) (compound_statement "{\n                    \n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }" { (expression_statement "FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);" (call_expression "FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX)" identifier (argument_list "("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX)" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""set_section_addresses"" " string_content ") , identifier ))) ;) })) (if_statement "if (local_98 != (undefined4 *)0x0) {\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" if (parenthesized_expression "(local_98 != (undefined4 *)0x0)" ( (binary_expression "local_98 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" { (expression_statement "uVar15 = FUN_00154430(local_98[9],local_98[10]);" (assignment_expression "uVar15 = FUN_00154430(local_98[9],local_98[10])" identifier = (call_expression "FUN_00154430(local_98[9],local_98[10])" identifier (argument_list "(local_98[9],local_98[10])" ( (subscript_expression "local_98[9]" identifier [ number_literal ]) , (subscript_expression "local_98[10]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar15 = FUN_001545c0(local_98[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_98[7],uVar15)" identifier = (call_expression "FUN_001545c0(local_98[7],uVar15)" identifier (argument_list "(local_98[7],uVar15)" ( (subscript_expression "local_98[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "puVar20 = *param_4;" (assignment_expression "puVar20 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "puVar19 = param_4[1];" (assignment_expression "puVar19 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "uVar27 = FUN_00154210(uVar15,param_2,param_3,0)" identifier = (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" identifier (argument_list "(uVar15,param_2,param_3,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);" (call_expression "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" identifier (argument_list "(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" ( identifier , (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , (binary_expression "*(int *)(param_1 + 8) + *(int *)(param_1 + 4)" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) , number_literal ))) ;) (expression_statement "puVar16 = puVar20 + local_98[9];" (assignment_expression "puVar16 = puVar20 + local_98[9]" identifier = (binary_expression "puVar20 + local_98[9]" identifier + (subscript_expression "local_98[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = (int)puVar16 - (int)(undefined *)uVar27;" (assignment_expression "uVar14 = (int)puVar16 - (int)(undefined *)uVar27" identifier = (binary_expression "(int)puVar16 - (int)(undefined *)uVar27" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(undefined *)uVar27" ( (type_descriptor "int" primitive_type) ) (cast_expression "(undefined *)uVar27" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));" (assignment_expression "puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27))" identifier = (binary_expression "puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27))" identifier + (parenthesized_expression "((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27))" ( (binary_expression "(((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27)" (parenthesized_expression "(((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20))" ( (binary_expression "((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)" (parenthesized_expression "((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10])" ( (binary_expression "(uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]" (cast_expression "(uint)CARRY4((uint)puVar20,local_98[9])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)puVar20,local_98[9])" identifier (argument_list "((uint)puVar20,local_98[9])" ( (cast_expression "(uint)puVar20" ( (type_descriptor "uint" type_identifier) ) identifier) , (subscript_expression "local_98[9]" identifier [ number_literal ]) )))) + (subscript_expression "local_98[10]" identifier [ number_literal ])) )) - (cast_expression "(int)((ulonglong)uVar27 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" ( (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) - (call_expression "(uint)(puVar16 < (undefined *)uVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar16 < (undefined *)uVar27)" ( (binary_expression "puVar16 < (undefined *)uVar27" identifier < (cast_expression "(undefined *)uVar27" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) )))) ;) (expression_statement "local_98[9] = uVar14;" (assignment_expression "local_98[9] = uVar14" (subscript_expression "local_98[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_98[10] = puVar19;" (assignment_expression "local_98[10] = puVar19" (subscript_expression "local_98[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);" (assignment_expression "uVar27 = FUN_00154210(local_98[8],param_2,param_3,0)" identifier = (call_expression "FUN_00154210(local_98[8],param_2,param_3,0)" identifier (argument_list "(local_98[8],param_2,param_3,0)" ( (subscript_expression "local_98[8]" identifier [ number_literal ]) , identifier , identifier , number_literal )))) ;) (expression_statement "puVar8 = local_34[0];" (assignment_expression "puVar8 = local_34[0]" identifier = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (expression_statement "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);" (assignment_expression "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20)" identifier = (cast_expression "(undefined *)((ulonglong)uVar27 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" ( (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" if (parenthesized_expression "(puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14))" ( (binary_expression "puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)" (binary_expression "puVar20 < puVar19" identifier < identifier) || (binary_expression "(uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)" (call_expression "(uint)((int)puVar20 - (int)puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar20 - (int)puVar19)" ( (binary_expression "(int)puVar20 - (int)puVar19" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((uint)uVar27 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar27 < uVar14)" ( (binary_expression "(uint)uVar27 < uVar14" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" { (expression_statement "uVar15 = *local_98;" (assignment_expression "uVar15 = *local_98" identifier = (pointer_expression "*local_98" * identifier)) ;) (expression_statement "uVar12 = gettext("section %s overflows end of region %s");" (assignment_expression "uVar12 = gettext("section %s overflows end of region %s")" identifier = (call_expression "gettext("section %s overflows end of region %s")" identifier (argument_list "("section %s overflows end of region %s")" ( (string_literal ""section %s overflows end of region %s"" " string_content ") )))) ;) (expression_statement "FUN_0005ad00(uVar12,puVar8,uVar15);" (call_expression "FUN_0005ad00(uVar12,puVar8,uVar15)" identifier (argument_list "(uVar12,puVar8,uVar15)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      FUN_001807a0(local_34[0]);\n    }" { (expression_statement "FUN_001807a0(local_34[0]);" (call_expression "FUN_001807a0(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) })) })) (if_statement "if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    \n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" if (parenthesized_expression "((local_74 != (undefined4 *)0x0) && (local_98 != local_74))" ( (binary_expression "(local_74 != (undefined4 *)0x0) && (local_98 != local_74)" (parenthesized_expression "(local_74 != (undefined4 *)0x0)" ( (binary_expression "local_74 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_98 != local_74)" ( (binary_expression "local_98 != local_74" identifier != identifier) ))) )) (compound_statement "{\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    \n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" { (expression_statement "puVar20 = *param_4;" (assignment_expression "puVar20 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "puVar19 = param_4[1];" (assignment_expression "puVar19 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = (int)puVar20 - (int)puVar5;" (assignment_expression "uVar14 = (int)puVar20 - (int)puVar5" identifier = (binary_expression "(int)puVar20 - (int)puVar5" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);" (call_expression "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" identifier (argument_list "(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" ( identifier , (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , (binary_expression "*(int *)(param_1 + 8) + *(int *)(param_1 + 4)" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) , number_literal ))) ;) (expression_statement "uVar21 = uVar14 + local_74[9];" (assignment_expression "uVar21 = uVar14 + local_74[9]" identifier = (binary_expression "uVar14 + local_74[9]" identifier + (subscript_expression "local_74[9]" identifier [ number_literal ]))) ;) (expression_statement "puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);" (assignment_expression "puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11)" identifier = (binary_expression "puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11)" (binary_expression "puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10]" (binary_expression "puVar19 + (uint)CARRY4(uVar14,local_74[9])" identifier + (cast_expression "(uint)CARRY4(uVar14,local_74[9])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,local_74[9])" identifier (argument_list "(uVar14,local_74[9])" ( identifier , (subscript_expression "local_74[9]" identifier [ number_literal ]) ))))) + (subscript_expression "local_74[10]" identifier [ number_literal ])) + (parenthesized_expression "(-(uint)(puVar20 < puVar5) - iVar11)" ( (binary_expression "-(uint)(puVar20 < puVar5) - iVar11" (unary_expression "-(uint)(puVar20 < puVar5)" - (call_expression "(uint)(puVar20 < puVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar20 < puVar5)" ( (binary_expression "puVar20 < puVar5" identifier < identifier) )))) - identifier) )))) ;) (expression_statement "local_74[9] = uVar21;" (assignment_expression "local_74[9] = uVar21" (subscript_expression "local_74[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_74[10] = puVar19;" (assignment_expression "local_74[10] = puVar19" (subscript_expression "local_74[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);" (assignment_expression "uVar27 = FUN_00154210(local_74[8],param_2,param_3,0)" identifier = (call_expression "FUN_00154210(local_74[8],param_2,param_3,0)" identifier (argument_list "(local_74[8],param_2,param_3,0)" ( (subscript_expression "local_74[8]" identifier [ number_literal ]) , identifier , identifier , number_literal )))) ;) (expression_statement "puVar8 = local_34[0];" (assignment_expression "puVar8 = local_34[0]" identifier = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (expression_statement "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);" (assignment_expression "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20)" identifier = (cast_expression "(undefined *)((ulonglong)uVar27 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" ( (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" if (parenthesized_expression "(puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21))" ( (binary_expression "puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)" (binary_expression "puVar20 < puVar19" identifier < identifier) || (binary_expression "(uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)" (call_expression "(uint)((int)puVar20 - (int)puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar20 - (int)puVar19)" ( (binary_expression "(int)puVar20 - (int)puVar19" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((uint)uVar27 < uVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar27 < uVar21)" ( (binary_expression "(uint)uVar27 < uVar21" (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" { (expression_statement "uVar15 = *local_74;" (assignment_expression "uVar15 = *local_74" identifier = (pointer_expression "*local_74" * identifier)) ;) (expression_statement "uVar12 = gettext("section %s overflows end of region %s");" (assignment_expression "uVar12 = gettext("section %s overflows end of region %s")" identifier = (call_expression "gettext("section %s overflows end of region %s")" identifier (argument_list "("section %s overflows end of region %s")" ( (string_literal ""section %s overflows end of region %s"" " string_content ") )))) ;) (expression_statement "FUN_0005ad00(uVar12,puVar8,uVar15);" (call_expression "FUN_0005ad00(uVar12,puVar8,uVar15)" identifier (argument_list "(uVar12,puVar8,uVar15)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      FUN_001807a0(local_34[0]);\n    }" { (expression_statement "FUN_001807a0(local_34[0]);" (call_expression "FUN_001807a0(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) })) })) (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" identifier = (pointer_expression "*(int **)(param_1 + 0x44)" * (cast_expression "(int **)(param_1 + 0x44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if (piVar23 == (int *)0x0) {\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }" if (parenthesized_expression "(piVar23 == (int *)0x0)" ( (binary_expression "piVar23 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }" { (expression_statement "puVar1 = *param_4;" (assignment_expression "puVar1 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*(undefined **)((int)param_6 + 4) = param_4[1];" (assignment_expression "*(undefined **)((int)param_6 + 4) = param_4[1]" (pointer_expression "*(undefined **)((int)param_6 + 4)" * (cast_expression "(undefined **)((int)param_6 + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_6 + 4)" ( (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined **)param_6 = puVar1;" (assignment_expression "*(undefined **)param_6 = puVar1" (pointer_expression "*(undefined **)param_6" * (cast_expression "(undefined **)param_6" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "pppppppiVar6 = local_58;" (assignment_expression "pppppppiVar6 = local_58" identifier = identifier) ;) (goto_statement "goto joined_r0x0010ae99;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x20) == 0) {\n    if (local_74 != (undefined4 *)0x0) {\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }\n  else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0)" ( (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (local_74 != (undefined4 *)0x0) {\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }" { (if_statement "if (local_74 != (undefined4 *)0x0) {\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }" if (parenthesized_expression "(local_74 != (undefined4 *)0x0)" ( (binary_expression "local_74 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }" { (expression_statement "uVar15 = FUN_00154430(local_74[9],local_74[10]);" (assignment_expression "uVar15 = FUN_00154430(local_74[9],local_74[10])" identifier = (call_expression "FUN_00154430(local_74[9],local_74[10])" identifier (argument_list "(local_74[9],local_74[10])" ( (subscript_expression "local_74[9]" identifier [ number_literal ]) , (subscript_expression "local_74[10]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar15 = FUN_001545c0(local_74[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_74[7],uVar15)" identifier = (call_expression "FUN_001545c0(local_74[7],uVar15)" identifier (argument_list "(local_74[7],uVar15)" ( (subscript_expression "local_74[7]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "lVar24 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "lVar24 = FUN_00154210(uVar15,param_2,param_3,0)" identifier = (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" identifier (argument_list "(uVar15,param_2,param_3,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" identifier = (pointer_expression "*(int **)(param_1 + 0x44)" * (cast_expression "(int **)(param_1 + 0x44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "*param_6 = lVar24;" (assignment_expression "*param_6 = lVar24" (pointer_expression "*param_6" * identifier) = identifier) ;) (goto_statement "goto LAB_0010ae3d;" goto statement_identifier ;) })) (expression_statement "puVar5 = *param_4;" (assignment_expression "puVar5 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*(undefined **)((int)param_6 + 4) = param_4[1];" (assignment_expression "*(undefined **)((int)param_6 + 4) = param_4[1]" (pointer_expression "*(undefined **)((int)param_6 + 4)" * (cast_expression "(undefined **)((int)param_6 + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_6 + 4)" ( (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined **)param_6 = puVar5;" (assignment_expression "*(undefined **)param_6 = puVar5" (pointer_expression "*(undefined **)param_6" * (cast_expression "(undefined **)param_6" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) }) (else_clause "else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }" else (compound_statement "{\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }" { (if_statement "if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }" if (parenthesized_expression "(*(code **)(*piVar23 + 0x14) == FUN_00089130)" ( (binary_expression "*(code **)(*piVar23 + 0x14) == FUN_00089130" (pointer_expression "*(code **)(*piVar23 + 0x14)" * (cast_expression "(code **)(*piVar23 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar23 + 0x14)" ( (binary_expression "*piVar23 + 0x14" (pointer_expression "*piVar23" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }" { (if_statement "if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }" if (parenthesized_expression "(-1 < (char)piVar23[0x24])" ( (binary_expression "-1 < (char)piVar23[0x24]" number_literal < (cast_expression "(char)piVar23[0x24]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar23[0x24]" identifier [ number_literal ]))) )) (compound_statement "{\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }" { (expression_statement "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);" (call_expression "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130)" identifier (argument_list "("../../gold/output.h",0x107b,"do_load_address",FUN_00089130)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_load_address"" " string_content ") , identifier ))) ;) })) (expression_statement "lVar24 = *(longlong *)(piVar23 + 0xd);" (assignment_expression "lVar24 = *(longlong *)(piVar23 + 0xd)" identifier = (pointer_expression "*(longlong *)(piVar23 + 0xd)" * (cast_expression "(longlong *)(piVar23 + 0xd)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar23 + 0xd)" ( (binary_expression "piVar23 + 0xd" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }" else (compound_statement "{\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }" { (expression_statement "lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);" (assignment_expression "lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23)" identifier = (call_expression "(**(code **)(*piVar23 + 0x14))(piVar23)" (parenthesized_expression "(**(code **)(*piVar23 + 0x14))" ( (pointer_expression "**(code **)(*piVar23 + 0x14)" * (pointer_expression "*(code **)(*piVar23 + 0x14)" * (cast_expression "(code **)(*piVar23 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar23 + 0x14)" ( (binary_expression "*piVar23 + 0x14" (pointer_expression "*piVar23" * identifier) + number_literal) ))))) )) (argument_list "(piVar23)" ( identifier )))) ;) (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" identifier = (pointer_expression "*(int **)(param_1 + 0x44)" * (cast_expression "(int **)(param_1 + 0x44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) }))) (expression_statement "*param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);" (assignment_expression "*param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" (pointer_expression "*param_6" * identifier) = (binary_expression "lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" identifier + (call_expression "CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" identifier (argument_list "(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" ( (binary_expression "param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11)" (subscript_expression "param_4[1]" identifier [ number_literal ]) + (parenthesized_expression "(-(uint)(*param_4 < puVar5) - iVar11)" ( (binary_expression "-(uint)(*param_4 < puVar5) - iVar11" (unary_expression "-(uint)(*param_4 < puVar5)" - (call_expression "(uint)(*param_4 < puVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*param_4 < puVar5)" ( (binary_expression "*param_4 < puVar5" (pointer_expression "*param_4" * identifier) < identifier) )))) - identifier) ))) , (binary_expression "(int)*param_4 - (int)puVar5" (cast_expression "(int)*param_4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_4" * identifier)) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (labeled_statement "LAB_0010ae3d:\n    pppppppiVar6 = local_58;" statement_identifier : (expression_statement "pppppppiVar6 = local_58;" (assignment_expression "pppppppiVar6 = local_58" identifier = identifier) ;)) (if_statement "if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;" if (parenthesized_expression "(piVar23 == (int *)0x0)" ( (binary_expression "piVar23 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x0010ae99;" goto statement_identifier ;)) }))) (expression_statement "*(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);" (assignment_expression "*(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5)" (pointer_expression "*(byte *)((int)piVar23 + 0x91)" * (cast_expression "(byte *)((int)piVar23 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar23 + 0x91)" ( (binary_expression "(int)piVar23 + 0x91" (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5)" (binary_expression "*(byte *)((int)piVar23 + 0x91) & 0xdf" (pointer_expression "*(byte *)((int)piVar23 + 0x91)" * (cast_expression "(byte *)((int)piVar23 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar23 + 0x91)" ( (binary_expression "(int)piVar23 + 0x91" (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (call_expression "(byte)(((byte)param_1[0x60] & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((byte)param_1[0x60] & 1) << 5)" ( (binary_expression "((byte)param_1[0x60] & 1) << 5" (parenthesized_expression "((byte)param_1[0x60] & 1)" ( (binary_expression "(byte)param_1[0x60] & 1" (cast_expression "(byte)param_1[0x60]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0x60]" identifier [ number_literal ])) & number_literal) )) << number_literal) ))))) ;) (expression_statement "pppppppiVar6 = local_58;" (assignment_expression "pppppppiVar6 = local_58" identifier = identifier) ;) (if_statement "if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }" if (parenthesized_expression "((*(byte *)((int)piVar23 + 0x92) & 8) != 0)" ( (binary_expression "(*(byte *)((int)piVar23 + 0x92) & 8) != 0" (parenthesized_expression "(*(byte *)((int)piVar23 + 0x92) & 8)" ( (binary_expression "*(byte *)((int)piVar23 + 0x92) & 8" (pointer_expression "*(byte *)((int)piVar23 + 0x92)" * (cast_expression "(byte *)((int)piVar23 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar23 + 0x92)" ( (binary_expression "(int)piVar23 + 0x92" (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }" { (expression_statement "*param_4 = puVar2;" (assignment_expression "*param_4 = puVar2" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "param_4[1] = puVar1;" (assignment_expression "param_4[1] = puVar1" (subscript_expression "param_4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int *)param_6 = (int)lVar7;" (assignment_expression "*(int *)param_6 = (int)lVar7" (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)param_6 + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)param_6 + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)param_6 + 4)" * (cast_expression "(undefined4 *)((int)param_6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_6 + 4)" ( (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (labeled_statement "joined_r0x0010ae99:\n  while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }" statement_identifier : (while_statement "while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }" while (parenthesized_expression "(pppppppiVar6 != local_7c)" ( (binary_expression "pppppppiVar6 != local_7c" identifier != identifier) )) (compound_statement "{\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }" { (expression_statement "pppppppiVar4 = (int *******)*pppppppiVar6;" (assignment_expression "pppppppiVar4 = (int *******)*pppppppiVar6" identifier = (cast_expression "(int *******)*pppppppiVar6" ( (type_descriptor "int *******" primitive_type (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppiVar6" * identifier))) ;) (expression_statement "FUN_001807a0(pppppppiVar6);" (call_expression "FUN_001807a0(pppppppiVar6)" identifier (argument_list "(pppppppiVar6)" ( identifier ))) ;) (expression_statement "pppppppiVar6 = pppppppiVar4;" (assignment_expression "pppppppiVar6 = pppppppiVar4" identifier = identifier) ;) }))) (if_statement "if (local_4c != local_44) {\n    FUN_001807a0(local_4c);\n  }" if (parenthesized_expression "(local_4c != local_44)" ( (binary_expression "local_4c != local_44" identifier != identifier) )) (compound_statement "{\n    FUN_001807a0(local_4c);\n  }" { (expression_statement "FUN_001807a0(local_4c);" (call_expression "FUN_001807a0(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * IDENT))) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , LIT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , LIT , LIT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) >> LIT) )))) , (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) )))) ))) <= (binary_expression IDENT - IDENT)))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))))) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression IDENT < IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 { (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 )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (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 IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , LIT , IDENT , LIT , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , LIT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & (unary_expression - (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - IDENT)) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = 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) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (field_expression IDENT . field_identifier) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )))) ))) , (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )))) ;) })) }))) (expression_statement (assignment_expression IDENT = (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 != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , LIT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , IDENT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , LIT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , LIT , (pointer_expression & IDENT) , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (subscript_expression IDENT [ LIT ]) )))) + (subscript_expression IDENT [ LIT ])) )) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))))) + (subscript_expression IDENT [ LIT ])) + (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) - IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) }) (else_clause else (compound_statement { (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 LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression 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 )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) < IDENT) )))) - IDENT) ))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) })) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0010a630(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,\n                 undefined4 param_5,longlong *param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int *******pppppppiVar4;\n  undefined *puVar5;\n  int *******pppppppiVar6;\n  longlong lVar7;\n  undefined1 *puVar8;\n  char cVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined **unaff_EBX;\n  uint uVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  longlong lVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  char *pcVar28;\n  undefined4 *local_98;\n  undefined **local_90;\n  uint local_8c;\n  uint local_88;\n  uint local_84;\n  uint local_80;\n  int *******local_7c;\n  undefined4 *local_74;\n  undefined **local_70;\n  int local_68;\n  undefined8 local_64;\n  int *******local_58;\n  int *******local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  iVar10 = *(int *)(param_3 + 4) + 0xac;\n  puVar1 = param_4[1];\n  puVar2 = *param_4;\n  uVar3 = *(undefined4 *)((int)param_6 + 4);\n  lVar7 = *param_6;\n  iVar11 = *(int *)(param_1 + 0x44);\n  if (iVar11 == 0) {\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }\n  else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }\n  local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);\n  iVar11 = local_64._4_4_;\n  local_64._0_4_ = (undefined *)lVar26;\n  puVar5 = (undefined *)local_64;\n  local_70 = &__DT_PLTGOT;\n  *(longlong *)(param_1 + 0x48) = lVar26;\n  *(longlong *)(param_1 + 0x58) = lVar24;\n  local_64 = lVar26;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }\n  else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }\n  local_74 = puVar22;\n  *(longlong *)(param_1 + 0x50) = lVar24;\n  local_48 = 0;\n  local_44[0] = 0;\n  local_4c = local_44;\n  if (*(int *)(param_1 + 0x30) != 0) {\n                    \n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }\n  local_7c = (int *******)&local_58;\n  iVar10 = *(int *)(param_1 + 0x44);\n  local_50 = 0;\n  local_54 = local_7c;\n  local_58 = local_7c;\n  if (iVar10 != 0) {\n                    \n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }\n  puVar22 = *(undefined4 **)(param_1 + 0x38);\n  local_68 = iVar10;\n  if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }\n  if (local_58 != local_7c) {\n                    \n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }\n  if (local_98 != (undefined4 *)0x0) {\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    \n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  piVar23 = *(int **)(param_1 + 0x44);\n  if (piVar23 == (int *)0x0) {\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }\n  if (*(int *)(param_1 + 0x20) == 0) {\n    if (local_74 != (undefined4 *)0x0) {\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }\n  else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }\n  *(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);\n  pppppppiVar6 = local_58;\n  if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }\njoined_r0x0010ae99:\n  while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }\n  if (local_4c != local_44) {\n    FUN_001807a0(local_4c);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0010a630(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,\n                 undefined4 param_5,longlong *param_6)" (identifier "FUN_0010a630") (parameter_list "(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,\n                 undefined4 param_5,longlong *param_6)" (( "(") (parameter_declaration "undefined1 *param_1" (type_identifier "undefined1") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined **param_4" (type_identifier "undefined") (pointer_declarator "**param_4" (* "*") (pointer_declarator "*param_4" (* "*") (identifier "param_4")))) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "longlong *param_6" (type_identifier "longlong") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int *******pppppppiVar4;\n  undefined *puVar5;\n  int *******pppppppiVar6;\n  longlong lVar7;\n  undefined1 *puVar8;\n  char cVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined **unaff_EBX;\n  uint uVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  longlong lVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  char *pcVar28;\n  undefined4 *local_98;\n  undefined **local_90;\n  uint local_8c;\n  uint local_88;\n  uint local_84;\n  uint local_80;\n  int *******local_7c;\n  undefined4 *local_74;\n  undefined **local_70;\n  int local_68;\n  undefined8 local_64;\n  int *******local_58;\n  int *******local_54;\n  undefined4 local_50;\n  undefined1 *local_4c;\n  undefined4 local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  iVar10 = *(int *)(param_3 + 4) + 0xac;\n  puVar1 = param_4[1];\n  puVar2 = *param_4;\n  uVar3 = *(undefined4 *)((int)param_6 + 4);\n  lVar7 = *param_6;\n  iVar11 = *(int *)(param_1 + 0x44);\n  if (iVar11 == 0) {\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }\n  else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }\n  local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);\n  iVar11 = local_64._4_4_;\n  local_64._0_4_ = (undefined *)lVar26;\n  puVar5 = (undefined *)local_64;\n  local_70 = &__DT_PLTGOT;\n  *(longlong *)(param_1 + 0x48) = lVar26;\n  *(longlong *)(param_1 + 0x58) = lVar24;\n  local_64 = lVar26;\n  if (*(int *)(param_1 + 0x20) == 0) {\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }\n  else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }\n  local_74 = puVar22;\n  *(longlong *)(param_1 + 0x50) = lVar24;\n  local_48 = 0;\n  local_44[0] = 0;\n  local_4c = local_44;\n  if (*(int *)(param_1 + 0x30) != 0) {\n                    \n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }\n  local_7c = (int *******)&local_58;\n  iVar10 = *(int *)(param_1 + 0x44);\n  local_50 = 0;\n  local_54 = local_7c;\n  local_58 = local_7c;\n  if (iVar10 != 0) {\n                    \n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }\n  puVar22 = *(undefined4 **)(param_1 + 0x38);\n  local_68 = iVar10;\n  if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }\n  if (local_58 != local_7c) {\n                    \n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }\n  if (local_98 != (undefined4 *)0x0) {\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    \n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }\n  piVar23 = *(int **)(param_1 + 0x44);\n  if (piVar23 == (int *)0x0) {\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }\n  if (*(int *)(param_1 + 0x20) == 0) {\n    if (local_74 != (undefined4 *)0x0) {\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }\n  else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }\n  *(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);\n  pppppppiVar6 = local_58;\n  if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }\njoined_r0x0010ae99:\n  while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }\n  if (local_4c != local_44) {\n    FUN_001807a0(local_4c);\n  }\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int *******pppppppiVar4;" (primitive_type "int") (pointer_declarator "*******pppppppiVar4" (* "*") (pointer_declarator "******pppppppiVar4" (* "*") (pointer_declarator "*****pppppppiVar4" (* "*") (pointer_declarator "****pppppppiVar4" (* "*") (pointer_declarator "***pppppppiVar4" (* "*") (pointer_declarator "**pppppppiVar4" (* "*") (pointer_declarator "*pppppppiVar4" (* "*") (identifier "pppppppiVar4")))))))) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int *******pppppppiVar6;" (primitive_type "int") (pointer_declarator "*******pppppppiVar6" (* "*") (pointer_declarator "******pppppppiVar6" (* "*") (pointer_declarator "*****pppppppiVar6" (* "*") (pointer_declarator "****pppppppiVar6" (* "*") (pointer_declarator "***pppppppiVar6" (* "*") (pointer_declarator "**pppppppiVar6" (* "*") (pointer_declarator "*pppppppiVar6" (* "*") (identifier "pppppppiVar6")))))))) (; ";")) (declaration "longlong lVar7;" (type_identifier "longlong") (identifier "lVar7") (; ";")) (declaration "undefined1 *puVar8;" (type_identifier "undefined1") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "char cVar9;" (primitive_type "char") (identifier "cVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "undefined *puVar19;" (type_identifier "undefined") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined **unaff_EBX;" (type_identifier "undefined") (pointer_declarator "**unaff_EBX" (* "*") (pointer_declarator "*unaff_EBX" (* "*") (identifier "unaff_EBX"))) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "longlong lVar24;" (type_identifier "longlong") (identifier "lVar24") (; ";")) (declaration "longlong lVar25;" (type_identifier "longlong") (identifier "lVar25") (; ";")) (declaration "longlong lVar26;" (type_identifier "longlong") (identifier "lVar26") (; ";")) (declaration "undefined8 uVar27;" (type_identifier "undefined8") (identifier "uVar27") (; ";")) (declaration "char *pcVar28;" (primitive_type "char") (pointer_declarator "*pcVar28" (* "*") (identifier "pcVar28")) (; ";")) (declaration "undefined4 *local_98;" (type_identifier "undefined4") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "undefined **local_90;" (type_identifier "undefined") (pointer_declarator "**local_90" (* "*") (pointer_declarator "*local_90" (* "*") (identifier "local_90"))) (; ";")) (declaration "uint local_8c;" (type_identifier "uint") (identifier "local_8c") (; ";")) (declaration "uint local_88;" (type_identifier "uint") (identifier "local_88") (; ";")) (declaration "uint local_84;" (type_identifier "uint") (identifier "local_84") (; ";")) (declaration "uint local_80;" (type_identifier "uint") (identifier "local_80") (; ";")) (declaration "int *******local_7c;" (primitive_type "int") (pointer_declarator "*******local_7c" (* "*") (pointer_declarator "******local_7c" (* "*") (pointer_declarator "*****local_7c" (* "*") (pointer_declarator "****local_7c" (* "*") (pointer_declarator "***local_7c" (* "*") (pointer_declarator "**local_7c" (* "*") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")))))))) (; ";")) (declaration "undefined4 *local_74;" (type_identifier "undefined4") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "undefined **local_70;" (type_identifier "undefined") (pointer_declarator "**local_70" (* "*") (pointer_declarator "*local_70" (* "*") (identifier "local_70"))) (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "undefined8 local_64;" (type_identifier "undefined8") (identifier "local_64") (; ";")) (declaration "int *******local_58;" (primitive_type "int") (pointer_declarator "*******local_58" (* "*") (pointer_declarator "******local_58" (* "*") (pointer_declarator "*****local_58" (* "*") (pointer_declarator "****local_58" (* "*") (pointer_declarator "***local_58" (* "*") (pointer_declarator "**local_58" (* "*") (pointer_declarator "*local_58" (* "*") (identifier "local_58")))))))) (; ";")) (declaration "int *******local_54;" (primitive_type "int") (pointer_declarator "*******local_54" (* "*") (pointer_declarator "******local_54" (* "*") (pointer_declarator "*****local_54" (* "*") (pointer_declarator "****local_54" (* "*") (pointer_declarator "***local_54" (* "*") (pointer_declarator "**local_54" (* "*") (pointer_declarator "*local_54" (* "*") (identifier "local_54")))))))) (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined1 *local_4c;" (type_identifier "undefined1") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined1 local_44 [16];" (type_identifier "undefined1") (array_declarator "local_44 [16]" (identifier "local_44") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 *local_34 [2];" (type_identifier "undefined1") (pointer_declarator "*local_34 [2]" (* "*") (array_declarator "local_34 [2]" (identifier "local_34") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_2c [28];" (type_identifier "undefined1") (array_declarator "local_2c [28]" (identifier "local_2c") ([ "[") (number_literal "28") (] "]")) (; ";")) (expression_statement "iVar10 = *(int *)(param_3 + 4) + 0xac;" (assignment_expression "iVar10 = *(int *)(param_3 + 4) + 0xac" (identifier "iVar10") (= "=") (binary_expression "*(int *)(param_3 + 4) + 0xac" (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac"))) (; ";")) (expression_statement "puVar1 = param_4[1];" (assignment_expression "puVar1 = param_4[1]" (identifier "puVar1") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = *param_4;" (assignment_expression "puVar2 = *param_4" (identifier "puVar2") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)((int)param_6 + 4);" (assignment_expression "uVar3 = *(undefined4 *)((int)param_6 + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)((int)param_6 + 4)" (* "*") (cast_expression "(undefined4 *)((int)param_6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_6 + 4)" (( "(") (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "lVar7 = *param_6;" (assignment_expression "lVar7 = *param_6" (identifier "lVar7") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (expression_statement "iVar11 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x44)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) {\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }\n  else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }\n    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);\n    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);\n    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);\n    uVar14 = (uint)lVar24;\n    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;\n    local_64 = lVar24;\n    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);\n    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n    uVar13 = (uint)lVar25;\n    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);\n    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }\n    iVar11 = *(int *)(param_1 + 0x24);\n    *(longlong *)(local_98 + 9) = lVar24 - lVar25;\n    if (iVar11 != 0) goto LAB_0010a6e9;\nLAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);\n    if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar24 = 0;\n    if (local_7c != (int *******)0x0) goto LAB_0010a770;\n    lVar25 = 0;\n    *(longlong *)param_4 = local_64;\n    local_7c = (int *******)0x0;\n    lVar26 = local_64;\n  }" ({ "{") (labeled_statement "LAB_0010a8a0:\n    local_70 = &__DT_PLTGOT;" (statement_identifier "LAB_0010a8a0") (: ":") (expression_statement "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" (identifier "local_70") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";"))) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) {\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);\n      if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      goto LAB_0010a6de;\n    }" ({ "{") (expression_statement "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);" (assignment_expression "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0)" (identifier "local_98") (= "=") (cast_expression "(undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001073d0(iVar10,param_1,1,0,0)" (identifier "FUN_001073d0") (argument_list "(iVar10,param_1,1,0,0)" (( "(") (identifier "iVar10") (, ",") (identifier "param_1") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (local_98 == (undefined4 *)0x0) {\n        lVar24 = *(longlong *)param_4;\n      }\n      else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" (if "if") (parenthesized_expression "(local_98 == (undefined4 *)0x0)" (( "(") (binary_expression "local_98 == (undefined4 *)0x0" (identifier "local_98") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        lVar24 = *(longlong *)param_4;\n      }" ({ "{") (expression_statement "lVar24 = *(longlong *)param_4;" (assignment_expression "lVar24 = *(longlong *)param_4" (identifier "lVar24") (= "=") (pointer_expression "*(longlong *)param_4" (* "*") (cast_expression "(longlong *)param_4" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4")))) (; ";")) (} "}")) (else_clause "else {\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" (else "else") (compound_statement "{\n        uVar15 = FUN_00154430(local_98[9],local_98[10]);\n        uVar15 = FUN_001545c0(local_98[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" ({ "{") (expression_statement "uVar15 = FUN_00154430(local_98[9],local_98[10]);" (assignment_expression "uVar15 = FUN_00154430(local_98[9],local_98[10])" (identifier "uVar15") (= "=") (call_expression "FUN_00154430(local_98[9],local_98[10])" (identifier "FUN_00154430") (argument_list "(local_98[9],local_98[10])" (( "(") (subscript_expression "local_98[9]" (identifier "local_98") ([ "[") (number_literal "9") (] "]")) (, ",") (subscript_expression "local_98[10]" (identifier "local_98") ([ "[") (number_literal "10") (] "]")) () ")")))) (; ";")) (expression_statement "uVar15 = FUN_001545c0(local_98[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_98[7],uVar15)" (identifier "uVar15") (= "=") (call_expression "FUN_001545c0(local_98[7],uVar15)" (identifier "FUN_001545c0") (argument_list "(local_98[7],uVar15)" (( "(") (subscript_expression "local_98[7]" (identifier "local_98") ([ "[") (number_literal "7") (] "]")) (, ",") (identifier "uVar15") () ")")))) (; ";")) (expression_statement "lVar24 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "lVar24 = FUN_00154210(uVar15,param_2,param_3,0)" (identifier "lVar24") (= "=") (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" (identifier "FUN_00154210") (argument_list "(uVar15,param_2,param_3,0)" (( "(") (identifier "uVar15") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" (identifier "unaff_EBX") (= "=") (identifier "local_70")) (; ";")) (} "}")))) (goto_statement "goto LAB_0010a6de;" (goto "goto") (statement_identifier "LAB_0010a6de") (; ";")) (} "}"))) (expression_statement "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);" (assignment_expression "local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0)" (identifier "local_98") (= "=") (cast_expression "(undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001073d0(iVar10,param_1,1,1,0)" (identifier "FUN_001073d0") (argument_list "(iVar10,param_1,1,1,0)" (( "(") (identifier "iVar10") (, ",") (identifier "param_1") (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0);" (assignment_expression "lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0)" (identifier "lVar24") (= "=") (call_expression "FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0)" (identifier "FUN_00154250") (argument_list "(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,\n                          param_5,0)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "1") (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) (, ",") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "param_5") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar21 = (uint)((ulonglong)lVar24 >> 0x20);" (assignment_expression "uVar21 = (uint)((ulonglong)lVar24 >> 0x20)" (identifier "uVar21") (= "=") (call_expression "(uint)((ulonglong)lVar24 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar24 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar24")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar14 = (uint)lVar24;" (assignment_expression "uVar14 = (uint)lVar24" (identifier "uVar14") (= "=") (cast_expression "(uint)lVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar24"))) (; ";")) (if_statement "if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;" (if "if") (parenthesized_expression "(local_98 == (undefined4 *)0x0)" (( "(") (binary_expression "local_98 == (undefined4 *)0x0" (identifier "local_98") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0010a6d4;" (goto "goto") (statement_identifier "LAB_0010a6d4") (; ";"))) (expression_statement "local_64 = lVar24;" (assignment_expression "local_64 = lVar24" (identifier "local_64") (= "=") (identifier "lVar24")) (; ";")) (expression_statement "lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);" (assignment_expression "lVar25 = FUN_00154210(local_98[7],param_2,param_3,0)" (identifier "lVar25") (= "=") (call_expression "FUN_00154210(local_98[7],param_2,param_3,0)" (identifier "FUN_00154210") (argument_list "(local_98[7],param_2,param_3,0)" (( "(") (subscript_expression "local_98[7]" (identifier "local_98") ([ "[") (number_literal "7") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar18 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar18 = (uint)((ulonglong)lVar25 >> 0x20)" (identifier "uVar18") (= "=") (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar25")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar13 = (uint)lVar25;" (assignment_expression "uVar13 = (uint)lVar25" (identifier "uVar13") (= "=") (cast_expression "(uint)lVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar25"))) (; ";")) (expression_statement "lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);" (assignment_expression "lVar26 = FUN_00154210(local_98[8],param_2,param_3,0)" (identifier "lVar26") (= "=") (call_expression "FUN_00154210(local_98[8],param_2,param_3,0)" (identifier "FUN_00154210") (argument_list "(local_98[8],param_2,param_3,0)" (( "(") (subscript_expression "local_98[8]" (identifier "local_98") ([ "[") (number_literal "8") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }\n    else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" (if "if") (parenthesized_expression "((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17))" (( "(") (binary_expression "(uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||\n       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)" (parenthesized_expression "(uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13))" (( "(") (binary_expression "uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)" (binary_expression "uVar21 < uVar18" (identifier "uVar21") (< "<") (identifier "uVar18")) (|| "||") (binary_expression "uVar21 - uVar18 < (uint)(uVar14 < uVar13)" (binary_expression "uVar21 - uVar18" (identifier "uVar21") (- "-") (identifier "uVar18")) (< "<") (call_expression "(uint)(uVar14 < uVar13)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < uVar13)" (( "(") (binary_expression "uVar14 < uVar13" (identifier "uVar14") (< "<") (identifier "uVar13")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)" (( "(") (comma_expression "uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),\n       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17" (assignment_expression "uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20)" (identifier "uVar17") (= "=") (call_expression "(uint)((ulonglong)(lVar25 + lVar26) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)(lVar25 + lVar26) >> 0x20)" (( "(") (binary_expression "(ulonglong)(lVar25 + lVar26) >> 0x20" (call_expression "(ulonglong)(lVar25 + lVar26)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(lVar25 + lVar26)" (( "(") (binary_expression "lVar25 + lVar26" (identifier "lVar25") (+ "+") (identifier "lVar26")) () ")"))) (>> ">>") (number_literal "0x20")) () ")")))) (, ",") (binary_expression "uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17" (binary_expression "uVar17 <= uVar21" (identifier "uVar17") (<= "<=") (identifier "uVar21")) (&& "&&") (binary_expression "(uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17" (call_expression "(uint)(uVar14 < (uint)(lVar25 + lVar26))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < (uint)(lVar25 + lVar26))" (( "(") (binary_expression "uVar14 < (uint)(lVar25 + lVar26)" (identifier "uVar14") (< "<") (call_expression "(uint)(lVar25 + lVar26)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(lVar25 + lVar26)" (( "(") (binary_expression "lVar25 + lVar26" (identifier "lVar25") (+ "+") (identifier "lVar26")) () ")")))) () ")"))) (<= "<=") (binary_expression "uVar21 - uVar17" (identifier "uVar21") (- "-") (identifier "uVar17"))))) () ")"))) () ")")) (compound_statement "{\n      uVar15 = *local_98;\n      pcVar28 = "address 0x%llx is not within region %s";\nLAB_0010b0ad:\n      uVar12 = gettext(pcVar28);\n      FUN_0005ad00(uVar12,lVar24,uVar15);\n      unaff_EBX = local_70;\n    }" ({ "{") (expression_statement "uVar15 = *local_98;" (assignment_expression "uVar15 = *local_98" (identifier "uVar15") (= "=") (pointer_expression "*local_98" (* "*") (identifier "local_98"))) (; ";")) (expression_statement "pcVar28 = "address 0x%llx is not within region %s";" (assignment_expression "pcVar28 = "address 0x%llx is not within region %s"" (identifier "pcVar28") (= "=") (string_literal ""address 0x%llx is not within region %s"" (" """) (string_content "address 0x%llx is not within region %s") (" """))) (; ";")) (labeled_statement "LAB_0010b0ad:\n      uVar12 = gettext(pcVar28);" (statement_identifier "LAB_0010b0ad") (: ":") (expression_statement "uVar12 = gettext(pcVar28);" (assignment_expression "uVar12 = gettext(pcVar28)" (identifier "uVar12") (= "=") (call_expression "gettext(pcVar28)" (identifier "gettext") (argument_list "(pcVar28)" (( "(") (identifier "pcVar28") () ")")))) (; ";"))) (expression_statement "FUN_0005ad00(uVar12,lVar24,uVar15);" (call_expression "FUN_0005ad00(uVar12,lVar24,uVar15)" (identifier "FUN_0005ad00") (argument_list "(uVar12,lVar24,uVar15)" (( "(") (identifier "uVar12") (, ",") (identifier "lVar24") (, ",") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" (identifier "unaff_EBX") (= "=") (identifier "local_70")) (; ";")) (} "}")) (else_clause "else {\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" (else "else") (compound_statement "{\n      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];\n      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);\n      uVar13 = uVar21 - uVar18;\n      unaff_EBX = (undefined **)(uVar13 - uVar14);\n      if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }\n    }" ({ "{") (expression_statement "uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];" (assignment_expression "uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10]" (identifier "uVar18") (= "=") (binary_expression "uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10]" (binary_expression "uVar18 + (uint)CARRY4(uVar13,local_98[9])" (identifier "uVar18") (+ "+") (cast_expression "(uint)CARRY4(uVar13,local_98[9])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar13,local_98[9])" (identifier "CARRY4") (argument_list "(uVar13,local_98[9])" (( "(") (identifier "uVar13") (, ",") (subscript_expression "local_98[9]" (identifier "local_98") ([ "[") (number_literal "9") (] "]")) () ")"))))) (+ "+") (subscript_expression "local_98[10]" (identifier "local_98") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);" (assignment_expression "uVar14 = (uint)(uVar14 < uVar13 + local_98[9])" (identifier "uVar14") (= "=") (call_expression "(uint)(uVar14 < uVar13 + local_98[9])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < uVar13 + local_98[9])" (( "(") (binary_expression "uVar14 < uVar13 + local_98[9]" (identifier "uVar14") (< "<") (binary_expression "uVar13 + local_98[9]" (identifier "uVar13") (+ "+") (subscript_expression "local_98[9]" (identifier "local_98") ([ "[") (number_literal "9") (] "]")))) () ")")))) (; ";")) (expression_statement "uVar13 = uVar21 - uVar18;" (assignment_expression "uVar13 = uVar21 - uVar18" (identifier "uVar13") (= "=") (binary_expression "uVar21 - uVar18" (identifier "uVar21") (- "-") (identifier "uVar18"))) (; ";")) (expression_statement "unaff_EBX = (undefined **)(uVar13 - uVar14);" (assignment_expression "unaff_EBX = (undefined **)(uVar13 - uVar14)" (identifier "unaff_EBX") (= "=") (cast_expression "(undefined **)(uVar13 - uVar14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar13 - uVar14)" (( "(") (binary_expression "uVar13 - uVar14" (identifier "uVar13") (- "-") (identifier "uVar14")) () ")")))) (; ";")) (if_statement "if (uVar21 < uVar18 || uVar13 < uVar14) {\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }" (if "if") (parenthesized_expression "(uVar21 < uVar18 || uVar13 < uVar14)" (( "(") (binary_expression "uVar21 < uVar18 || uVar13 < uVar14" (binary_expression "uVar21 < uVar18" (identifier "uVar21") (< "<") (identifier "uVar18")) (|| "||") (binary_expression "uVar13 < uVar14" (identifier "uVar13") (< "<") (identifier "uVar14"))) () ")")) (compound_statement "{\n        uVar15 = *local_98;\n        pcVar28 = "address 0x%llx moves dot backwards in region %s";\n        goto LAB_0010b0ad;\n      }" ({ "{") (expression_statement "uVar15 = *local_98;" (assignment_expression "uVar15 = *local_98" (identifier "uVar15") (= "=") (pointer_expression "*local_98" (* "*") (identifier "local_98"))) (; ";")) (expression_statement "pcVar28 = "address 0x%llx moves dot backwards in region %s";" (assignment_expression "pcVar28 = "address 0x%llx moves dot backwards in region %s"" (identifier "pcVar28") (= "=") (string_literal ""address 0x%llx moves dot backwards in region %s"" (" """) (string_content "address 0x%llx moves dot backwards in region %s") (" """))) (; ";")) (goto_statement "goto LAB_0010b0ad;" (goto "goto") (statement_identifier "LAB_0010b0ad") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar11 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x24)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(longlong *)(local_98 + 9) = lVar24 - lVar25;" (assignment_expression "*(longlong *)(local_98 + 9) = lVar24 - lVar25" (pointer_expression "*(longlong *)(local_98 + 9)" (* "*") (cast_expression "(longlong *)(local_98 + 9)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + 9)" (( "(") (binary_expression "local_98 + 9" (identifier "local_98") (+ "+") (number_literal "9")) () ")")))) (= "=") (binary_expression "lVar24 - lVar25" (identifier "lVar24") (- "-") (identifier "lVar25"))) (; ";")) (if_statement "if (iVar11 != 0) goto LAB_0010a6e9;" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010a6e9;" (goto "goto") (statement_identifier "LAB_0010a6e9") (; ";"))) (labeled_statement "LAB_0010a9a5:\n    piVar23 = *(int **)(param_1 + 0x44);" (statement_identifier "LAB_0010a9a5") (: ":") (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(param_1 + 0x44)" (* "*") (cast_expression "(int **)(param_1 + 0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";"))) (if_statement "if (piVar23 != (int *)0x0) {\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }" (if "if") (parenthesized_expression "(piVar23 != (int *)0x0)" (( "(") (binary_expression "piVar23 != (int *)0x0" (identifier "piVar23") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }\n      lVar24 = *(longlong *)(piVar23 + 9);\n      local_7c = *(int ********)(param_1 + 0x28);\n      lVar25 = *(longlong *)(piVar23 + 9);\n      if (local_7c != (int *******)0x0) goto LAB_0010a770;\n      goto LAB_0010a9e6;\n    }" ({ "{") (if_statement "if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }" (if "if") (parenthesized_expression "(*(code **)(*piVar23 + 0xc) != FUN_00088ee0)" (( "(") (binary_expression "*(code **)(*piVar23 + 0xc) != FUN_00088ee0" (pointer_expression "*(code **)(*piVar23 + 0xc)" (* "*") (cast_expression "(code **)(*piVar23 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar23 + 0xc)" (( "(") (binary_expression "*piVar23 + 0xc" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (identifier "FUN_00088ee0")) () ")")) (compound_statement "{\n        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);\n        goto LAB_0010a762;\n      }" ({ "{") (expression_statement "lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);" (assignment_expression "lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23)" (identifier "lVar24") (= "=") (call_expression "(**(code **)(*piVar23 + 0xc))(piVar23)" (parenthesized_expression "(**(code **)(*piVar23 + 0xc))" (( "(") (pointer_expression "**(code **)(*piVar23 + 0xc)" (* "*") (pointer_expression "*(code **)(*piVar23 + 0xc)" (* "*") (cast_expression "(code **)(*piVar23 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar23 + 0xc)" (( "(") (binary_expression "*piVar23 + 0xc" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(piVar23)" (( "(") (identifier "piVar23") () ")")))) (; ";")) (goto_statement "goto LAB_0010a762;" (goto "goto") (statement_identifier "LAB_0010a762") (; ";")) (} "}"))) (expression_statement "lVar24 = *(longlong *)(piVar23 + 9);" (assignment_expression "lVar24 = *(longlong *)(piVar23 + 9)" (identifier "lVar24") (= "=") (pointer_expression "*(longlong *)(piVar23 + 9)" (* "*") (cast_expression "(longlong *)(piVar23 + 9)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar23 + 9)" (( "(") (binary_expression "piVar23 + 9" (identifier "piVar23") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (expression_statement "local_7c = *(int ********)(param_1 + 0x28);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x28)" (identifier "local_7c") (= "=") (pointer_expression "*(int ********)(param_1 + 0x28)" (* "*") (cast_expression "(int ********)(param_1 + 0x28)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "lVar25 = *(longlong *)(piVar23 + 9);" (assignment_expression "lVar25 = *(longlong *)(piVar23 + 9)" (identifier "lVar25") (= "=") (pointer_expression "*(longlong *)(piVar23 + 9)" (* "*") (cast_expression "(longlong *)(piVar23 + 9)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar23 + 9)" (( "(") (binary_expression "piVar23 + 9" (identifier "piVar23") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (if_statement "if (local_7c != (int *******)0x0) goto LAB_0010a770;" (if "if") (parenthesized_expression "(local_7c != (int *******)0x0)" (( "(") (binary_expression "local_7c != (int *******)0x0" (identifier "local_7c") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0010a770;" (goto "goto") (statement_identifier "LAB_0010a770") (; ";"))) (goto_statement "goto LAB_0010a9e6;" (goto "goto") (statement_identifier "LAB_0010a9e6") (; ";")) (} "}"))) (expression_statement "local_7c = *(int ********)(param_1 + 0x28);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x28)" (identifier "local_7c") (= "=") (pointer_expression "*(int ********)(param_1 + 0x28)" (* "*") (cast_expression "(int ********)(param_1 + 0x28)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "lVar24 = 0;" (assignment_expression "lVar24 = 0" (identifier "lVar24") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_7c != (int *******)0x0) goto LAB_0010a770;" (if "if") (parenthesized_expression "(local_7c != (int *******)0x0)" (( "(") (binary_expression "local_7c != (int *******)0x0" (identifier "local_7c") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0010a770;" (goto "goto") (statement_identifier "LAB_0010a770") (; ";"))) (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" (identifier "lVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(longlong *)param_4 = local_64;" (assignment_expression "*(longlong *)param_4 = local_64" (pointer_expression "*(longlong *)param_4" (* "*") (cast_expression "(longlong *)param_4" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "local_7c = (int *******)0x0;" (assignment_expression "local_7c = (int *******)0x0" (identifier "local_7c") (= "=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "lVar26 = local_64;" (assignment_expression "lVar26 = local_64" (identifier "lVar26") (= "=") (identifier "local_64")) (; ";")) (} "}")) (else_clause "else {\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }" (else "else") (compound_statement "{\n    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }\n    local_70 = &__DT_PLTGOT;\n    if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }\n    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);\n    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);\n    unaff_EBX = local_70;\n    if (cVar9 == '\0') goto LAB_0010a8a0;\nLAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;\n    unaff_EBX = &__DT_PLTGOT;\nLAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);\n    local_64 = lVar24;\n    if (iVar11 == 0) goto LAB_0010a9a5;\nLAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n    if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }\nLAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);\n    lVar25 = lVar24;\n    if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }\n    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);\n    *(longlong *)param_4 = local_64;\n    unaff_EBX = param_4;\n    lVar26 = local_64;\n    if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }\n  }" ({ "{") (if_statement "if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar11 + 0x91) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(iVar11 + 0x91) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x91) & 2)" (( "(") (binary_expression "*(byte *)(iVar11 + 0x91) & 2" (pointer_expression "*(byte *)(iVar11 + 0x91)" (* "*") (cast_expression "(byte *)(iVar11 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x91)" (( "(") (binary_expression "iVar11 + 0x91" (identifier "iVar11") (+ "+") (number_literal "0x91")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      unaff_EBX = &__DT_PLTGOT;\n      FUN_000c2b80(iVar11);\n      iVar11 = *(int *)(param_1 + 0x44);\n      if (iVar11 == 0) goto LAB_0010a8a0;\n    }" ({ "{") (expression_statement "unaff_EBX = &__DT_PLTGOT;" (assignment_expression "unaff_EBX = &__DT_PLTGOT" (identifier "unaff_EBX") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "FUN_000c2b80(iVar11);" (call_expression "FUN_000c2b80(iVar11)" (identifier "FUN_000c2b80") (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x44)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_0010a8a0;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010a8a0;" (goto "goto") (statement_identifier "LAB_0010a8a0") (; ";"))) (} "}"))) (expression_statement "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" (identifier "local_70") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n    }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0005f0b0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);" (assignment_expression "cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64)" (identifier "cVar9") (= "=") (call_expression "FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64)" (identifier "FUN_000ab3f0") (argument_list "(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64)" (( "(") (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar11 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x20)" (( "(") (binary_expression "iVar11 + 0x20" (identifier "iVar11") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "&local_64" (& "&") (identifier "local_64")) () ")")))) (; ";")) (expression_statement "lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);" (assignment_expression "lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64)" (identifier "lVar24") (= "=") (call_expression "CONCAT44(local_64._4_4_,(undefined *)local_64)" (identifier "CONCAT44") (argument_list "(local_64._4_4_,(undefined *)local_64)" (( "(") (field_expression "local_64._4_4_" (identifier "local_64") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(undefined *)local_64" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_64")) () ")")))) (; ";")) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" (identifier "unaff_EBX") (= "=") (identifier "local_70")) (; ";")) (if_statement "if (cVar9 == '\0') goto LAB_0010a8a0;" (if "if") (parenthesized_expression "(cVar9 == '\0')" (( "(") (binary_expression "cVar9 == '\0'" (identifier "cVar9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0010a8a0;" (goto "goto") (statement_identifier "LAB_0010a8a0") (; ";"))) (labeled_statement "LAB_0010a6d4:\n    local_98 = (undefined4 *)0x0;" (statement_identifier "LAB_0010a6d4") (: ":") (expression_statement "local_98 = (undefined4 *)0x0;" (assignment_expression "local_98 = (undefined4 *)0x0" (identifier "local_98") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "unaff_EBX = &__DT_PLTGOT;" (assignment_expression "unaff_EBX = &__DT_PLTGOT" (identifier "unaff_EBX") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (labeled_statement "LAB_0010a6de:\n    iVar11 = *(int *)(param_1 + 0x24);" (statement_identifier "LAB_0010a6de") (: ":") (expression_statement "iVar11 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x24)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")"))))) (; ";"))) (expression_statement "local_64 = lVar24;" (assignment_expression "local_64 = lVar24" (identifier "local_64") (= "=") (identifier "lVar24")) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_0010a9a5;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010a9a5;" (goto "goto") (statement_identifier "LAB_0010a9a5") (; ";"))) (labeled_statement "LAB_0010a6e9:\n    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);" (statement_identifier "LAB_0010a6e9") (: ":") (expression_statement "lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);" (assignment_expression "lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" (identifier "lVar24") (= "=") (call_expression "FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" (identifier "FUN_00154250") (argument_list "(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" (( "(") (identifier "iVar11") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "1") (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) (, ",") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (identifier "local_34") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";"))) (if_statement "if (local_34[0] != (undefined1 *)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" (if "if") (parenthesized_expression "(local_34[0] != (undefined1 *)0x0)" (( "(") (binary_expression "local_34[0] != (undefined1 *)0x0" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("alignment of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" ({ "{") (expression_statement "uVar15 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 4)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar12 = gettext("alignment of section %s is not absolute");" (assignment_expression "uVar12 = gettext("alignment of section %s is not absolute")" (identifier "uVar12") (= "=") (call_expression "gettext("alignment of section %s is not absolute")" (identifier "gettext") (argument_list "("alignment of section %s is not absolute")" (( "(") (string_literal ""alignment of section %s is not absolute"" (" """) (string_content "alignment of section %s is not absolute") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0005ad30(uVar12,uVar15);" (call_expression "FUN_0005ad30(uVar12,uVar15)" (identifier "FUN_0005ad30") (argument_list "(uVar12,uVar15)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x44) != 0) {\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x44) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x44) != 0" (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;\n    }" ({ "{") (expression_statement "*(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;" (assignment_expression "*(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24" (pointer_expression "*(longlong *)(*(int *)(param_1 + 0x44) + 0x24)" (* "*") (cast_expression "(longlong *)(*(int *)(param_1 + 0x44) + 0x24)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x44) + 0x24)" (( "(") (binary_expression "*(int *)(param_1 + 0x44) + 0x24" (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "lVar24")) (; ";")) (} "}"))) (labeled_statement "LAB_0010a762:\n    local_7c = *(int ********)(param_1 + 0x28);" (statement_identifier "LAB_0010a762") (: ":") (expression_statement "local_7c = *(int ********)(param_1 + 0x28);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x28)" (identifier "local_7c") (= "=") (pointer_expression "*(int ********)(param_1 + 0x28)" (* "*") (cast_expression "(int ********)(param_1 + 0x28)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";"))) (expression_statement "lVar25 = lVar24;" (assignment_expression "lVar25 = lVar24" (identifier "lVar25") (= "=") (identifier "lVar24")) (; ";")) (if_statement "if (local_7c == (int *******)0x0) {\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }\n    else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }" (if "if") (parenthesized_expression "(local_7c == (int *******)0x0)" (( "(") (binary_expression "local_7c == (int *******)0x0" (identifier "local_7c") (== "==") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0010a9e6:\n      lVar24 = lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }\n      lVar25 = 0;\n    }" ({ "{") (labeled_statement "LAB_0010a9e6:\n      lVar24 = lVar25;" (statement_identifier "LAB_0010a9e6") (: ":") (expression_statement "lVar24 = lVar25;" (assignment_expression "lVar24 = lVar25" (identifier "lVar24") (= "=") (identifier "lVar25")) (; ";"))) (expression_statement "local_7c = *(int ********)(param_1 + 0x44);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x44)" (identifier "local_7c") (= "=") (pointer_expression "*(int ********)(param_1 + 0x44)" (* "*") (cast_expression "(int ********)(param_1 + 0x44)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (if_statement "if (lVar24 != 0) {\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }" (if "if") (parenthesized_expression "(lVar24 != 0)" (( "(") (binary_expression "lVar24 != 0" (identifier "lVar24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        lVar25 = 0;\n        goto LAB_0010a837;\n      }" ({ "{") (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" (identifier "lVar25") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0010a837;" (goto "goto") (statement_identifier "LAB_0010a837") (; ";")) (} "}"))) (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" (identifier "lVar25") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }" (else "else") (compound_statement "{\nLAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);\n      if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }\n      if (lVar25 == 0) {\n        lVar25 = 1;\n      }\n      local_80 = (uint)((ulonglong)lVar25 >> 0x20);\n      local_84 = (uint)lVar25;\n      local_7c = *(int ********)(param_1 + 0x44);\n      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }\nLAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);\n      local_8c = (uint)lVar24;\n      lVar26 = lVar24 + local_64 + -1;\n      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);\n    }" ({ "{") (labeled_statement "LAB_0010a770:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);" (statement_identifier "LAB_0010a770") (: ":") (expression_statement "local_88 = (uint)((ulonglong)lVar24 >> 0x20);" (assignment_expression "local_88 = (uint)((ulonglong)lVar24 >> 0x20)" (identifier "local_88") (= "=") (call_expression "(uint)((ulonglong)lVar24 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar24 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar24")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_8c = (uint)lVar24;" (assignment_expression "local_8c = (uint)lVar24" (identifier "local_8c") (= "=") (cast_expression "(uint)lVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar24"))) (; ";")) (expression_statement "lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);" (assignment_expression "lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" (identifier "lVar25") (= "=") (call_expression "FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" (identifier "FUN_00154250") (argument_list "(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0)" (( "(") (identifier "local_7c") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "1") (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) (, ",") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (identifier "local_34") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (local_34[0] != (undefined1 *)0x0) {\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }" (if "if") (parenthesized_expression "(local_34[0] != (undefined1 *)0x0)" (( "(") (binary_expression "local_34[0] != (undefined1 *)0x0" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar15 = *(undefined4 *)(param_1 + 4);\n        uVar12 = gettext("subalign of section %s is not absolute");\n        FUN_0005ad30(uVar12,uVar15);\n      }" ({ "{") (expression_statement "uVar15 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 4)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar12 = gettext("subalign of section %s is not absolute");" (assignment_expression "uVar12 = gettext("subalign of section %s is not absolute")" (identifier "uVar12") (= "=") (call_expression "gettext("subalign of section %s is not absolute")" (identifier "gettext") (argument_list "("subalign of section %s is not absolute")" (( "(") (string_literal ""subalign of section %s is not absolute"" (" """) (string_content "subalign of section %s is not absolute") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0005ad30(uVar12,uVar15);" (call_expression "FUN_0005ad30(uVar12,uVar15)" (identifier "FUN_0005ad30") (argument_list "(uVar12,uVar15)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (if_statement "if (lVar25 == 0) {\n        lVar25 = 1;\n      }" (if "if") (parenthesized_expression "(lVar25 == 0)" (( "(") (binary_expression "lVar25 == 0" (identifier "lVar25") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar25 = 1;\n      }" ({ "{") (expression_statement "lVar25 = 1;" (assignment_expression "lVar25 = 1" (identifier "lVar25") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "local_80 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "local_80 = (uint)((ulonglong)lVar25 >> 0x20)" (identifier "local_80") (= "=") (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar25")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_84 = (uint)lVar25;" (assignment_expression "local_84 = (uint)lVar25" (identifier "local_84") (= "=") (cast_expression "(uint)lVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar25"))) (; ";")) (expression_statement "local_7c = *(int ********)(param_1 + 0x44);" (assignment_expression "local_7c = *(int ********)(param_1 + 0x44)" (identifier "local_7c") (= "=") (pointer_expression "*(int ********)(param_1 + 0x44)" (* "*") (cast_expression "(int ********)(param_1 + 0x44)" (( "(") (type_descriptor "int ********" (primitive_type "int") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (if_statement "if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)) {\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }" (if "if") (parenthesized_expression "((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0))" (( "(") (binary_expression "(local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||\n         (*(int *)(param_1 + 0x24) == 0)" (parenthesized_expression "(local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84))" (( "(") (binary_expression "local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)" (binary_expression "local_88 < local_80" (identifier "local_88") (< "<") (identifier "local_80")) (|| "||") (binary_expression "local_88 - local_80 < (uint)(local_8c < local_84)" (binary_expression "local_88 - local_80" (identifier "local_88") (- "-") (identifier "local_80")) (< "<") (call_expression "(uint)(local_8c < local_84)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_8c < local_84)" (( "(") (binary_expression "local_8c < local_84" (identifier "local_8c") (< "<") (identifier "local_84")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 0x24) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x24) == 0" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        *(longlong *)((int)local_7c + 0x24) = lVar25;\n        lVar24 = lVar25;\n      }" ({ "{") (expression_statement "*(longlong *)((int)local_7c + 0x24) = lVar25;" (assignment_expression "*(longlong *)((int)local_7c + 0x24) = lVar25" (pointer_expression "*(longlong *)((int)local_7c + 0x24)" (* "*") (cast_expression "(longlong *)((int)local_7c + 0x24)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_7c + 0x24)" (( "(") (binary_expression "(int)local_7c + 0x24" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "lVar25")) (; ";")) (expression_statement "lVar24 = lVar25;" (assignment_expression "lVar24 = lVar25" (identifier "lVar24") (= "=") (identifier "lVar25")) (; ";")) (} "}"))) (labeled_statement "LAB_0010a837:\n      local_88 = (uint)((ulonglong)lVar24 >> 0x20);" (statement_identifier "LAB_0010a837") (: ":") (expression_statement "local_88 = (uint)((ulonglong)lVar24 >> 0x20);" (assignment_expression "local_88 = (uint)((ulonglong)lVar24 >> 0x20)" (identifier "local_88") (= "=") (call_expression "(uint)((ulonglong)lVar24 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar24 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar24")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_8c = (uint)lVar24;" (assignment_expression "local_8c = (uint)lVar24" (identifier "local_8c") (= "=") (cast_expression "(uint)lVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar24"))) (; ";")) (expression_statement "lVar26 = lVar24 + local_64 + -1;" (assignment_expression "lVar26 = lVar24 + local_64 + -1" (identifier "lVar26") (= "=") (binary_expression "lVar24 + local_64 + -1" (binary_expression "lVar24 + local_64" (identifier "lVar24") (+ "+") (identifier "local_64")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c);" (assignment_expression "local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c)" (identifier "local_64") (= "=") (call_expression "CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c)" (identifier "CONCAT44") (argument_list "((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),\n                          (uint)lVar26 & -local_8c)" (( "(") (binary_expression "(uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0))" (call_expression "(uint)((ulonglong)lVar26 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar26")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (unary_expression "-(local_88 + (local_8c != 0))" (- "-") (parenthesized_expression "(local_88 + (local_8c != 0))" (( "(") (binary_expression "local_88 + (local_8c != 0)" (identifier "local_88") (+ "+") (parenthesized_expression "(local_8c != 0)" (( "(") (binary_expression "local_8c != 0" (identifier "local_8c") (!= "!=") (number_literal "0")) () ")"))) () ")")))) (, ",") (binary_expression "(uint)lVar26 & -local_8c" (cast_expression "(uint)lVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar26")) (& "&") (unary_expression "-local_8c" (- "-") (identifier "local_8c"))) () ")")))) (; ";")) (} "}")))) (expression_statement "local_90 = (undefined **)((ulonglong)local_64 >> 0x20);" (assignment_expression "local_90 = (undefined **)((ulonglong)local_64 >> 0x20)" (identifier "local_90") (= "=") (cast_expression "(undefined **)((ulonglong)local_64 >> 0x20)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((ulonglong)local_64 >> 0x20)" (( "(") (binary_expression "(ulonglong)local_64 >> 0x20" (cast_expression "(ulonglong)local_64" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_64")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "*(longlong *)param_4 = local_64;" (assignment_expression "*(longlong *)param_4 = local_64" (pointer_expression "*(longlong *)param_4" (* "*") (cast_expression "(longlong *)param_4" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "unaff_EBX = param_4;" (assignment_expression "unaff_EBX = param_4" (identifier "unaff_EBX") (= "=") (identifier "param_4")) (; ";")) (expression_statement "lVar26 = local_64;" (assignment_expression "lVar26 = local_64" (identifier "lVar26") (= "=") (identifier "local_64")) (; ";")) (if_statement "if ((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )) {\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }" (if "if") (parenthesized_expression "((local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       ))" (( "(") (binary_expression "(local_7c != (int *******)0x0) &&\n       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )" (parenthesized_expression "(local_7c != (int *******)0x0)" (( "(") (binary_expression "local_7c != (int *******)0x0" (identifier "local_7c") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))\n       )" (( "(") (parenthesized_expression "((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))" (( "(") (binary_expression "(*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0)" (binary_expression "(*(byte *)((int)local_7c + 0x54) & 2) != 0" (parenthesized_expression "(*(byte *)((int)local_7c + 0x54) & 2)" (( "(") (binary_expression "*(byte *)((int)local_7c + 0x54) & 2" (pointer_expression "*(byte *)((int)local_7c + 0x54)" (* "*") (cast_expression "(byte *)((int)local_7c + 0x54)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_7c + 0x54)" (( "(") (binary_expression "(int)local_7c + 0x54" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "0x54")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)((int)local_7c + 0x92) & 8) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_7c + 0x92) & 8) != 0" (parenthesized_expression "(*(byte *)((int)local_7c + 0x92) & 8)" (( "(") (binary_expression "*(byte *)((int)local_7c + 0x92) & 8" (pointer_expression "*(byte *)((int)local_7c + 0x92)" (* "*") (cast_expression "(byte *)((int)local_7c + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_7c + 0x92)" (( "(") (binary_expression "(int)local_7c + 0x92" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "0x92")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }\n      *(longlong *)((int)local_7c + 4) = local_64;\n      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;\n      unaff_EBX = local_90;\n    }" ({ "{") (if_statement "if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)local_7c + 0x1c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_7c + 0x1c) & 1) != 0" (parenthesized_expression "(*(byte *)((int)local_7c + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)((int)local_7c + 0x1c) & 1" (pointer_expression "*(byte *)((int)local_7c + 0x1c)" (* "*") (cast_expression "(byte *)((int)local_7c + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_7c + 0x1c)" (( "(") (binary_expression "(int)local_7c + 0x1c" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);\n      }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);" (call_expression "FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/output.h",0x142,"set_address",param_4)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x142") (, ",") (string_literal ""set_address"" (" """) (string_content "set_address") (" """)) (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}"))) (expression_statement "*(longlong *)((int)local_7c + 4) = local_64;" (assignment_expression "*(longlong *)((int)local_7c + 4) = local_64" (pointer_expression "*(longlong *)((int)local_7c + 4)" (* "*") (cast_expression "(longlong *)((int)local_7c + 4)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_7c + 4)" (( "(") (binary_expression "(int)local_7c + 4" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "*(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;" (assignment_expression "*(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1" (pointer_expression "*(byte *)((int)local_7c + 0x1c)" (* "*") (cast_expression "(byte *)((int)local_7c + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_7c + 0x1c)" (( "(") (binary_expression "(int)local_7c + 0x1c" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (binary_expression "*(byte *)((int)local_7c + 0x1c) | 1" (pointer_expression "*(byte *)((int)local_7c + 0x1c)" (* "*") (cast_expression "(byte *)((int)local_7c + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_7c + 0x1c)" (( "(") (binary_expression "(int)local_7c + 0x1c" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "0x1c")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "unaff_EBX = local_90;" (assignment_expression "unaff_EBX = local_90" (identifier "unaff_EBX") (= "=") (identifier "local_90")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);" (assignment_expression "local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20)" (field_expression "local_64._4_4_" (identifier "local_64") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(int)((ulonglong)lVar26 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar26")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar11 = local_64._4_4_;" (assignment_expression "iVar11 = local_64._4_4_" (identifier "iVar11") (= "=") (field_expression "local_64._4_4_" (identifier "local_64") (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "local_64._0_4_ = (undefined *)lVar26;" (assignment_expression "local_64._0_4_ = (undefined *)lVar26" (field_expression "local_64._0_4_" (identifier "local_64") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(undefined *)lVar26" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "lVar26"))) (; ";")) (expression_statement "puVar5 = (undefined *)local_64;" (assignment_expression "puVar5 = (undefined *)local_64" (identifier "puVar5") (= "=") (cast_expression "(undefined *)local_64" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_64"))) (; ";")) (expression_statement "local_70 = &__DT_PLTGOT;" (assignment_expression "local_70 = &__DT_PLTGOT" (identifier "local_70") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "*(longlong *)(param_1 + 0x48) = lVar26;" (assignment_expression "*(longlong *)(param_1 + 0x48) = lVar26" (pointer_expression "*(longlong *)(param_1 + 0x48)" (* "*") (cast_expression "(longlong *)(param_1 + 0x48)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "lVar26")) (; ";")) (expression_statement "*(longlong *)(param_1 + 0x58) = lVar24;" (assignment_expression "*(longlong *)(param_1 + 0x58) = lVar24" (pointer_expression "*(longlong *)(param_1 + 0x58)" (* "*") (cast_expression "(longlong *)(param_1 + 0x58)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (identifier "lVar24")) (; ";")) (expression_statement "local_64 = lVar26;" (assignment_expression "local_64 = lVar26" (identifier "local_64") (= "=") (identifier "lVar26")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x20) == 0) {\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }\n  else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);\n    puVar22 = (undefined4 *)0x0;\n    lVar24 = local_64;\n    if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }\n  }" ({ "{") (expression_statement "local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);" (assignment_expression "local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34)" (identifier "local_74") (= "=") (cast_expression "(undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001073d0(iVar10,param_1,0,0,local_34)" (identifier "FUN_001073d0") (argument_list "(iVar10,param_1,0,0,local_34)" (( "(") (identifier "iVar10") (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "local_34") () ")"))))) (; ";")) (expression_statement "puVar22 = (undefined4 *)0x0;" (assignment_expression "puVar22 = (undefined4 *)0x0" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "lVar24 = local_64;" (assignment_expression "lVar24 = local_64" (identifier "lVar24") (= "=") (identifier "local_64")) (; ";")) (if_statement "if (local_74 != (undefined4 *)0x0) {\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }" (if "if") (parenthesized_expression "(local_74 != (undefined4 *)0x0)" (( "(") (binary_expression "local_74 != (undefined4 *)0x0" (identifier "local_74") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }\n      iVar10 = *(int *)(param_1 + 0x44);\n      puVar22 = local_74;\n      if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }\n    }" ({ "{") (if_statement "if (local_34[0] == (undefined1 *)0x0) {\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }\n      else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }" (if "if") (parenthesized_expression "(local_34[0] == (undefined1 *)0x0)" (( "(") (binary_expression "local_34[0] == (undefined1 *)0x0" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar15 = FUN_00154430(local_74[9],local_74[10]);\n        uVar15 = FUN_001545c0(local_74[7],uVar15);\n        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n        unaff_EBX = local_70;\n      }" ({ "{") (expression_statement "uVar15 = FUN_00154430(local_74[9],local_74[10]);" (assignment_expression "uVar15 = FUN_00154430(local_74[9],local_74[10])" (identifier "uVar15") (= "=") (call_expression "FUN_00154430(local_74[9],local_74[10])" (identifier "FUN_00154430") (argument_list "(local_74[9],local_74[10])" (( "(") (subscript_expression "local_74[9]" (identifier "local_74") ([ "[") (number_literal "9") (] "]")) (, ",") (subscript_expression "local_74[10]" (identifier "local_74") ([ "[") (number_literal "10") (] "]")) () ")")))) (; ";")) (expression_statement "uVar15 = FUN_001545c0(local_74[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_74[7],uVar15)" (identifier "uVar15") (= "=") (call_expression "FUN_001545c0(local_74[7],uVar15)" (identifier "FUN_001545c0") (argument_list "(local_74[7],uVar15)" (( "(") (subscript_expression "local_74[7]" (identifier "local_74") ([ "[") (number_literal "7") (] "]")) (, ",") (identifier "uVar15") () ")")))) (; ";")) (expression_statement "lVar24 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "lVar24 = FUN_00154210(uVar15,param_2,param_3,0)" (identifier "lVar24") (= "=") (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" (identifier "FUN_00154210") (argument_list "(uVar15,param_2,param_3,0)" (( "(") (identifier "uVar15") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" (identifier "unaff_EBX") (= "=") (identifier "local_70")) (; ";")) (} "}")) (else_clause "else {\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }" (else "else") (compound_statement "{\n        local_74 = puVar22;\n        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }\n      }" ({ "{") (expression_statement "local_74 = puVar22;" (assignment_expression "local_74 = puVar22" (identifier "local_74") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1))" (( "(") (binary_expression "(*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)" (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_34[0] != param_1)" (( "(") (binary_expression "local_34[0] != param_1" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "param_1")) () ")"))) () ")")) (compound_statement "{\n          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);\n          lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));\n        }" ({ "{") (expression_statement "uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);" (assignment_expression "uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50)" (identifier "uVar14") (= "=") (binary_expression "(int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50)" (cast_expression "(int)(undefined *)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(undefined *)local_64" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_64"))) (+ "+") (pointer_expression "*(uint *)(local_34[0] + 0x50)" (* "*") (cast_expression "(uint *)(local_34[0] + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34[0] + 0x50)" (( "(") (binary_expression "local_34[0] + 0x50" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x50")) () ")")))))) (; ";")) (expression_statement "lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48));" (assignment_expression "lVar24 = CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48))" (identifier "lVar24") (= "=") (call_expression "CONCAT44(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48))" (identifier "CONCAT44") (argument_list "(local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),\n                            uVar14 - *(uint *)(local_34[0] + 0x48))" (( "(") (binary_expression "local_64._4_4_ +\n                            ((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48)))" (field_expression "local_64._4_4_" (identifier "local_64") (. ".") (field_identifier "_4_4_")) (+ "+") (parenthesized_expression "((((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48)))" (( "(") (binary_expression "(((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -\n                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))" (parenthesized_expression "(((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c))" (( "(") (binary_expression "((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)" (parenthesized_expression "((uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54))" (( "(") (binary_expression "(uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50)) +\n                              *(int *)(local_34[0] + 0x54)" (cast_expression "(uint)CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50))" (identifier "CARRY4") (argument_list "((uint)(undefined *)local_64,\n                                            *(uint *)(local_34[0] + 0x50))" (( "(") (cast_expression "(uint)(undefined *)local_64" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(undefined *)local_64" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_64"))) (, ",") (pointer_expression "*(uint *)(local_34[0] + 0x50)" (* "*") (cast_expression "(uint *)(local_34[0] + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34[0] + 0x50)" (( "(") (binary_expression "local_34[0] + 0x50" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x50")) () ")")))) () ")")))) (+ "+") (pointer_expression "*(int *)(local_34[0] + 0x54)" (* "*") (cast_expression "(int *)(local_34[0] + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34[0] + 0x54)" (( "(") (binary_expression "local_34[0] + 0x54" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x54")) () ")"))))) () ")")) (- "-") (pointer_expression "*(int *)(local_34[0] + 0x4c)" (* "*") (cast_expression "(int *)(local_34[0] + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34[0] + 0x4c)" (( "(") (binary_expression "local_34[0] + 0x4c" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x4c")) () ")"))))) () ")")) (- "-") (call_expression "(uint)(uVar14 < *(uint *)(local_34[0] + 0x48))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < *(uint *)(local_34[0] + 0x48))" (( "(") (binary_expression "uVar14 < *(uint *)(local_34[0] + 0x48)" (identifier "uVar14") (< "<") (pointer_expression "*(uint *)(local_34[0] + 0x48)" (* "*") (cast_expression "(uint *)(local_34[0] + 0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34[0] + 0x48)" (( "(") (binary_expression "local_34[0] + 0x48" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x48")) () ")"))))) () ")")))) () ")"))) (, ",") (binary_expression "uVar14 - *(uint *)(local_34[0] + 0x48)" (identifier "uVar14") (- "-") (pointer_expression "*(uint *)(local_34[0] + 0x48)" (* "*") (cast_expression "(uint *)(local_34[0] + 0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34[0] + 0x48)" (( "(") (binary_expression "local_34[0] + 0x48" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x48")) () ")"))))) () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "puVar22 = local_74;" (assignment_expression "puVar22 = local_74" (identifier "puVar22") (= "=") (identifier "local_74")) (; ";")) (if_statement "if (iVar10 != 0) {\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(longlong *)(iVar10 + 0x34) = lVar24;\n        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;\n      }" ({ "{") (expression_statement "*(longlong *)(iVar10 + 0x34) = lVar24;" (assignment_expression "*(longlong *)(iVar10 + 0x34) = lVar24" (pointer_expression "*(longlong *)(iVar10 + 0x34)" (* "*") (cast_expression "(longlong *)(iVar10 + 0x34)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x34)" (( "(") (binary_expression "iVar10 + 0x34" (identifier "iVar10") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "lVar24")) (; ";")) (expression_statement "*(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;" (assignment_expression "*(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80" (pointer_expression "*(byte *)(iVar10 + 0x90)" (* "*") (cast_expression "(byte *)(iVar10 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x90)" (( "(") (binary_expression "iVar10 + 0x90" (identifier "iVar10") (+ "+") (number_literal "0x90")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar10 + 0x90) | 0x80" (pointer_expression "*(byte *)(iVar10 + 0x90)" (* "*") (cast_expression "(byte *)(iVar10 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x90)" (( "(") (binary_expression "iVar10 + 0x90" (identifier "iVar10") (+ "+") (number_literal "0x90")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }" (else "else") (compound_statement "{\n    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);\n    puVar22 = *(undefined4 **)(param_1 + 0x44);\n    unaff_EBX = local_70;\n    if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }\n  }" ({ "{") (expression_statement "lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0);" (assignment_expression "lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0)" (identifier "lVar24") (= "=") (call_expression "FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0)" (identifier "FUN_00154250") (argument_list "(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,\n                          0,0)" (( "(") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "1") (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) (, ",") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "local_7c") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar22 = *(undefined4 **)(param_1 + 0x44);" (assignment_expression "puVar22 = *(undefined4 **)(param_1 + 0x44)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x44)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x44)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" (identifier "unaff_EBX") (= "=") (identifier "local_70")) (; ";")) (if_statement "if (puVar22 != (undefined4 *)0x0) {\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }" (if "if") (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar22 != (undefined4 *)0x0" (identifier "puVar22") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;\n      *(longlong *)(puVar22 + 0xd) = lVar24;\n      local_74 = (undefined4 *)0x0;\n      unaff_EBX = &__DT_PLTGOT;\n      puVar22 = local_74;\n    }" ({ "{") (expression_statement "*(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;" (assignment_expression "*(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80" (pointer_expression "*(byte *)(puVar22 + 0x24)" (* "*") (cast_expression "(byte *)(puVar22 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x24)" (( "(") (binary_expression "puVar22 + 0x24" (identifier "puVar22") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar22 + 0x24) | 0x80" (pointer_expression "*(byte *)(puVar22 + 0x24)" (* "*") (cast_expression "(byte *)(puVar22 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x24)" (( "(") (binary_expression "puVar22 + 0x24" (identifier "puVar22") (+ "+") (number_literal "0x24")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "*(longlong *)(puVar22 + 0xd) = lVar24;" (assignment_expression "*(longlong *)(puVar22 + 0xd) = lVar24" (pointer_expression "*(longlong *)(puVar22 + 0xd)" (* "*") (cast_expression "(longlong *)(puVar22 + 0xd)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0xd)" (( "(") (binary_expression "puVar22 + 0xd" (identifier "puVar22") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (identifier "lVar24")) (; ";")) (expression_statement "local_74 = (undefined4 *)0x0;" (assignment_expression "local_74 = (undefined4 *)0x0" (identifier "local_74") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "unaff_EBX = &__DT_PLTGOT;" (assignment_expression "unaff_EBX = &__DT_PLTGOT" (identifier "unaff_EBX") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "puVar22 = local_74;" (assignment_expression "puVar22 = local_74" (identifier "puVar22") (= "=") (identifier "local_74")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_74 = puVar22;" (assignment_expression "local_74 = puVar22" (identifier "local_74") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "*(longlong *)(param_1 + 0x50) = lVar24;" (assignment_expression "*(longlong *)(param_1 + 0x50) = lVar24" (pointer_expression "*(longlong *)(param_1 + 0x50)" (* "*") (cast_expression "(longlong *)(param_1 + 0x50)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (identifier "lVar24")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44[0] = 0;" (assignment_expression "local_44[0] = 0" (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = local_44;" (assignment_expression "local_4c = local_44" (identifier "local_4c") (= "=") (identifier "local_44")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x30) != 0) {\n                    \n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x30) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x30) != 0" (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);\n    if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }\n    local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);\n    FUN_001893e0(&local_4c,0,local_48,local_34,4);\n    unaff_EBX = local_70;\n  }" ({ "{") (expression_statement "uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0);" (assignment_expression "uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0)" (identifier "uVar14") (= "=") (call_expression "FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0)" (identifier "FUN_00154250") (argument_list "(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58\n                          ,0,0)" (( "(") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "1") (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) (, ",") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (local_58 != (int *******)0x0) {\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" (if "if") (parenthesized_expression "(local_58 != (int *******)0x0)" (( "(") (binary_expression "local_58 != (int *******)0x0" (identifier "local_58") (!= "!=") (cast_expression "(int *******)0x0" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar15 = *(undefined4 *)(param_1 + 4);\n      uVar12 = gettext("fill of section %s is not absolute");\n      FUN_0005ad30(uVar12,uVar15);\n    }" ({ "{") (expression_statement "uVar15 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 4)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar12 = gettext("fill of section %s is not absolute");" (assignment_expression "uVar12 = gettext("fill of section %s is not absolute")" (identifier "uVar12") (= "=") (call_expression "gettext("fill of section %s is not absolute")" (identifier "gettext") (argument_list "("fill of section %s is not absolute")" (( "(") (string_literal ""fill of section %s is not absolute"" (" """) (string_content "fill of section %s is not absolute") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0005ad30(uVar12,uVar15);" (call_expression "FUN_0005ad30(uVar12,uVar15)" (identifier "FUN_0005ad30") (argument_list "(uVar12,uVar15)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18);" (assignment_expression "local_34[0] = (undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18)" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(undefined1 *)\n                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18)" (( "(") (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |\n                  uVar14 << 0x18" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" (binary_expression "uVar14 >> 0x18" (identifier "uVar14") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar14 & 0xff0000) >> 8" (parenthesized_expression "(uVar14 & 0xff0000)" (( "(") (binary_expression "uVar14 & 0xff0000" (identifier "uVar14") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar14 & 0xff00) << 8" (parenthesized_expression "(uVar14 & 0xff00)" (( "(") (binary_expression "uVar14 & 0xff00" (identifier "uVar14") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar14 << 0x18" (identifier "uVar14") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "FUN_001893e0(&local_4c,0,local_48,local_34,4);" (call_expression "FUN_001893e0(&local_4c,0,local_48,local_34,4)" (identifier "FUN_001893e0") (argument_list "(&local_4c,0,local_48,local_34,4)" (( "(") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) (, ",") (number_literal "0") (, ",") (identifier "local_48") (, ",") (identifier "local_34") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" (identifier "unaff_EBX") (= "=") (identifier "local_70")) (; ";")) (} "}"))) (expression_statement "local_7c = (int *******)&local_58;" (assignment_expression "local_7c = (int *******)&local_58" (identifier "local_7c") (= "=") (cast_expression "(int *******)&local_58" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_58" (& "&") (identifier "local_58")))) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = local_7c;" (assignment_expression "local_54 = local_7c" (identifier "local_54") (= "=") (identifier "local_7c")) (; ";")) (expression_statement "local_58 = local_7c;" (assignment_expression "local_58 = local_7c" (identifier "local_58") (= "=") (identifier "local_7c")) (; ";")) (if_statement "if (iVar10 != 0) {\n                    \n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);\n    local_64 = lVar24 + local_64;\n    *(longlong *)param_4 = local_64;\n    iVar10 = *(int *)(param_1 + 0x44);\n    unaff_EBX = local_70;\n  }" ({ "{") (expression_statement "lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);" (assignment_expression "lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c)" (identifier "lVar24") (= "=") (call_expression "FUN_000bfc90(iVar10,local_64,&local_4c,local_7c)" (identifier "FUN_000bfc90") (argument_list "(iVar10,local_64,&local_4c,local_7c)" (( "(") (identifier "iVar10") (, ",") (identifier "local_64") (, ",") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) (, ",") (identifier "local_7c") () ")")))) (; ";")) (expression_statement "local_64 = lVar24 + local_64;" (assignment_expression "local_64 = lVar24 + local_64" (identifier "local_64") (= "=") (binary_expression "lVar24 + local_64" (identifier "lVar24") (+ "+") (identifier "local_64"))) (; ";")) (expression_statement "*(longlong *)param_4 = local_64;" (assignment_expression "*(longlong *)param_4 = local_64" (pointer_expression "*(longlong *)param_4" (* "*") (cast_expression "(longlong *)param_4" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "unaff_EBX = local_70;" (assignment_expression "unaff_EBX = local_70" (identifier "unaff_EBX") (= "=") (identifier "local_70")) (; ";")) (} "}"))) (expression_statement "puVar22 = *(undefined4 **)(param_1 + 0x38);" (assignment_expression "puVar22 = *(undefined4 **)(param_1 + 0x38)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x38)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x38)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "local_68 = iVar10;" (assignment_expression "local_68 = iVar10" (identifier "local_68") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }" (if "if") (parenthesized_expression "(puVar22 != *(undefined4 **)(param_1 + 0x3c))" (( "(") (binary_expression "puVar22 != *(undefined4 **)(param_1 + 0x3c)" (identifier "puVar22") (!= "!=") (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (compound_statement "{\n    unaff_EBX = &local_4c;\n    while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }\n  }" ({ "{") (expression_statement "unaff_EBX = &local_4c;" (assignment_expression "unaff_EBX = &local_4c" (identifier "unaff_EBX") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (while_statement "while( true ) {\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      (**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);\n      puVar22 = puVar22 + 1;\n      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;\n      iVar10 = *(int *)(param_1 + 0x44);\n    }" ({ "{") (expression_statement "(**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c);" (call_expression "(**(code **)(*(int *)*puVar22 + 0x18))\n                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c)" (parenthesized_expression "(**(code **)(*(int *)*puVar22 + 0x18))" (( "(") (pointer_expression "**(code **)(*(int *)*puVar22 + 0x18)" (* "*") (pointer_expression "*(code **)(*(int *)*puVar22 + 0x18)" (* "*") (cast_expression "(code **)(*(int *)*puVar22 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar22 + 0x18)" (( "(") (binary_expression "*(int *)*puVar22 + 0x18" (pointer_expression "*(int *)*puVar22" (* "*") (cast_expression "(int *)*puVar22" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar22" (* "*") (identifier "puVar22")))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,\n                 local_7c)" (( "(") (cast_expression "(int *)*puVar22" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar22" (* "*") (identifier "puVar22"))) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "iVar10") (, ",") (identifier "lVar25") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "unaff_EBX") (, ",") (identifier "local_7c") () ")"))) (; ";")) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" (identifier "puVar22") (= "=") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;" (if "if") (parenthesized_expression "(*(undefined4 **)(param_1 + 0x3c) == puVar22)" (( "(") (binary_expression "*(undefined4 **)(param_1 + 0x3c) == puVar22" (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (== "==") (identifier "puVar22")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar10 = *(int *)(param_1 + 0x44);" (assignment_expression "iVar10 = *(int *)(param_1 + 0x44)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_58 != local_7c) {\n                    \n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }" (if "if") (parenthesized_expression "(local_58 != local_7c)" (( "(") (binary_expression "local_58 != local_7c" (identifier "local_58") (!= "!=") (identifier "local_7c")) () ")")) (compound_statement "{\n                    \n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);\n  }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);" (call_expression "FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX)" (( "(") (string_literal ""../../gold/script-sections.cc"" (" """) (string_content "../../gold/script-sections.cc") (" """)) (, ",") (number_literal "0xa67") (, ",") (string_literal ""set_section_addresses"" (" """) (string_content "set_section_addresses") (" """)) (, ",") (identifier "unaff_EBX") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_98 != (undefined4 *)0x0) {\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" (if "if") (parenthesized_expression "(local_98 != (undefined4 *)0x0)" (( "(") (binary_expression "local_98 != (undefined4 *)0x0" (identifier "local_98") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar15 = FUN_00154430(local_98[9],local_98[10]);\n    uVar15 = FUN_001545c0(local_98[7],uVar15);\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);\n    local_34[0] = local_2c;\n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    puVar16 = puVar20 + local_98[9];\n    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;\n    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));\n    local_98[9] = uVar14;\n    local_98[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" ({ "{") (expression_statement "uVar15 = FUN_00154430(local_98[9],local_98[10]);" (assignment_expression "uVar15 = FUN_00154430(local_98[9],local_98[10])" (identifier "uVar15") (= "=") (call_expression "FUN_00154430(local_98[9],local_98[10])" (identifier "FUN_00154430") (argument_list "(local_98[9],local_98[10])" (( "(") (subscript_expression "local_98[9]" (identifier "local_98") ([ "[") (number_literal "9") (] "]")) (, ",") (subscript_expression "local_98[10]" (identifier "local_98") ([ "[") (number_literal "10") (] "]")) () ")")))) (; ";")) (expression_statement "uVar15 = FUN_001545c0(local_98[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_98[7],uVar15)" (identifier "uVar15") (= "=") (call_expression "FUN_001545c0(local_98[7],uVar15)" (identifier "FUN_001545c0") (argument_list "(local_98[7],uVar15)" (( "(") (subscript_expression "local_98[7]" (identifier "local_98") ([ "[") (number_literal "7") (] "]")) (, ",") (identifier "uVar15") () ")")))) (; ";")) (expression_statement "puVar20 = *param_4;" (assignment_expression "puVar20 = *param_4" (identifier "puVar20") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "puVar19 = param_4[1];" (assignment_expression "puVar19 = param_4[1]" (identifier "puVar19") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar27 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "uVar27 = FUN_00154210(uVar15,param_2,param_3,0)" (identifier "uVar27") (= "=") (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" (identifier "FUN_00154210") (argument_list "(uVar15,param_2,param_3,0)" (( "(") (identifier "uVar15") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);" (call_expression "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" (identifier "FUN_0004d4e0") (argument_list "(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" (( "(") (identifier "local_34") (, ",") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (, ",") (binary_expression "*(int *)(param_1 + 8) + *(int *)(param_1 + 4)" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar16 = puVar20 + local_98[9];" (assignment_expression "puVar16 = puVar20 + local_98[9]" (identifier "puVar16") (= "=") (binary_expression "puVar20 + local_98[9]" (identifier "puVar20") (+ "+") (subscript_expression "local_98[9]" (identifier "local_98") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "uVar14 = (int)puVar16 - (int)(undefined *)uVar27;" (assignment_expression "uVar14 = (int)puVar16 - (int)(undefined *)uVar27" (identifier "uVar14") (= "=") (binary_expression "(int)puVar16 - (int)(undefined *)uVar27" (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16")) (- "-") (cast_expression "(int)(undefined *)uVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(undefined *)uVar27" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar27"))))) (; ";")) (expression_statement "puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));" (assignment_expression "puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27))" (identifier "puVar19") (= "=") (binary_expression "puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27))" (identifier "puVar19") (+ "+") (parenthesized_expression "((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27))" (( "(") (binary_expression "(((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27)" (parenthesized_expression "(((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20))" (( "(") (binary_expression "((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -\n                         (int)((ulonglong)uVar27 >> 0x20)" (parenthesized_expression "((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10])" (( "(") (binary_expression "(uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]" (cast_expression "(uint)CARRY4((uint)puVar20,local_98[9])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)puVar20,local_98[9])" (identifier "CARRY4") (argument_list "((uint)puVar20,local_98[9])" (( "(") (cast_expression "(uint)puVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar20")) (, ",") (subscript_expression "local_98[9]" (identifier "local_98") ([ "[") (number_literal "9") (] "]")) () ")")))) (+ "+") (subscript_expression "local_98[10]" (identifier "local_98") ([ "[") (number_literal "10") (] "]"))) () ")")) (- "-") (cast_expression "(int)((ulonglong)uVar27 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x20")) () ")")))) () ")")) (- "-") (call_expression "(uint)(puVar16 < (undefined *)uVar27)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar16 < (undefined *)uVar27)" (( "(") (binary_expression "puVar16 < (undefined *)uVar27" (identifier "puVar16") (< "<") (cast_expression "(undefined *)uVar27" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar27"))) () ")")))) () ")")))) (; ";")) (expression_statement "local_98[9] = uVar14;" (assignment_expression "local_98[9] = uVar14" (subscript_expression "local_98[9]" (identifier "local_98") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "local_98[10] = puVar19;" (assignment_expression "local_98[10] = puVar19" (subscript_expression "local_98[10]" (identifier "local_98") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "puVar19")) (; ";")) (expression_statement "uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);" (assignment_expression "uVar27 = FUN_00154210(local_98[8],param_2,param_3,0)" (identifier "uVar27") (= "=") (call_expression "FUN_00154210(local_98[8],param_2,param_3,0)" (identifier "FUN_00154210") (argument_list "(local_98[8],param_2,param_3,0)" (( "(") (subscript_expression "local_98[8]" (identifier "local_98") ([ "[") (number_literal "8") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar8 = local_34[0];" (assignment_expression "puVar8 = local_34[0]" (identifier "puVar8") (= "=") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);" (assignment_expression "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20)" (identifier "puVar20") (= "=") (cast_expression "(undefined *)((ulonglong)uVar27 >> 0x20)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" (if "if") (parenthesized_expression "(puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14))" (( "(") (binary_expression "puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)" (binary_expression "puVar20 < puVar19" (identifier "puVar20") (< "<") (identifier "puVar19")) (|| "||") (binary_expression "(uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)" (call_expression "(uint)((int)puVar20 - (int)puVar19)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar20 - (int)puVar19)" (( "(") (binary_expression "(int)puVar20 - (int)puVar19" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (- "-") (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19"))) () ")"))) (< "<") (call_expression "(uint)((uint)uVar27 < uVar14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)uVar27 < uVar14)" (( "(") (binary_expression "(uint)uVar27 < uVar14" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (< "<") (identifier "uVar14")) () ")"))))) () ")")) (compound_statement "{\n      uVar15 = *local_98;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" ({ "{") (expression_statement "uVar15 = *local_98;" (assignment_expression "uVar15 = *local_98" (identifier "uVar15") (= "=") (pointer_expression "*local_98" (* "*") (identifier "local_98"))) (; ";")) (expression_statement "uVar12 = gettext("section %s overflows end of region %s");" (assignment_expression "uVar12 = gettext("section %s overflows end of region %s")" (identifier "uVar12") (= "=") (call_expression "gettext("section %s overflows end of region %s")" (identifier "gettext") (argument_list "("section %s overflows end of region %s")" (( "(") (string_literal ""section %s overflows end of region %s"" (" """) (string_content "section %s overflows end of region %s") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0005ad00(uVar12,puVar8,uVar15);" (call_expression "FUN_0005ad00(uVar12,puVar8,uVar15)" (identifier "FUN_0005ad00") (argument_list "(uVar12,puVar8,uVar15)" (( "(") (identifier "uVar12") (, ",") (identifier "puVar8") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }" (if "if") (parenthesized_expression "(local_34[0] != local_2c)" (( "(") (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_2c")) () ")")) (compound_statement "{\n      FUN_001807a0(local_34[0]);\n    }" ({ "{") (expression_statement "FUN_001807a0(local_34[0]);" (call_expression "FUN_001807a0(local_34[0])" (identifier "FUN_001807a0") (argument_list "(local_34[0])" (( "(") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    \n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" (if "if") (parenthesized_expression "((local_74 != (undefined4 *)0x0) && (local_98 != local_74))" (( "(") (binary_expression "(local_74 != (undefined4 *)0x0) && (local_98 != local_74)" (parenthesized_expression "(local_74 != (undefined4 *)0x0)" (( "(") (binary_expression "local_74 != (undefined4 *)0x0" (identifier "local_74") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_98 != local_74)" (( "(") (binary_expression "local_98 != local_74" (identifier "local_98") (!= "!=") (identifier "local_74")) () ")"))) () ")")) (compound_statement "{\n    puVar20 = *param_4;\n    puVar19 = param_4[1];\n    uVar14 = (int)puVar20 - (int)puVar5;\n    local_34[0] = local_2c;\n                    \n    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);\n    uVar21 = uVar14 + local_74[9];\n    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);\n    local_74[9] = uVar21;\n    local_74[10] = puVar19;\n                    \n    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);\n    puVar8 = local_34[0];\n    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);\n    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }\n    if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }\n  }" ({ "{") (expression_statement "puVar20 = *param_4;" (assignment_expression "puVar20 = *param_4" (identifier "puVar20") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "puVar19 = param_4[1];" (assignment_expression "puVar19 = param_4[1]" (identifier "puVar19") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar14 = (int)puVar20 - (int)puVar5;" (assignment_expression "uVar14 = (int)puVar20 - (int)puVar5" (identifier "uVar14") (= "=") (binary_expression "(int)puVar20 - (int)puVar5" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (- "-") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")))) (; ";")) (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);" (call_expression "FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" (identifier "FUN_0004d4e0") (argument_list "(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0)" (( "(") (identifier "local_34") (, ",") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (, ",") (binary_expression "*(int *)(param_1 + 8) + *(int *)(param_1 + 4)" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar21 = uVar14 + local_74[9];" (assignment_expression "uVar21 = uVar14 + local_74[9]" (identifier "uVar21") (= "=") (binary_expression "uVar14 + local_74[9]" (identifier "uVar14") (+ "+") (subscript_expression "local_74[9]" (identifier "local_74") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);" (assignment_expression "puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11)" (identifier "puVar19") (= "=") (binary_expression "puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11)" (binary_expression "puVar19 + (uint)CARRY4(uVar14,local_74[9]) +\n                        local_74[10]" (binary_expression "puVar19 + (uint)CARRY4(uVar14,local_74[9])" (identifier "puVar19") (+ "+") (cast_expression "(uint)CARRY4(uVar14,local_74[9])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar14,local_74[9])" (identifier "CARRY4") (argument_list "(uVar14,local_74[9])" (( "(") (identifier "uVar14") (, ",") (subscript_expression "local_74[9]" (identifier "local_74") ([ "[") (number_literal "9") (] "]")) () ")"))))) (+ "+") (subscript_expression "local_74[10]" (identifier "local_74") ([ "[") (number_literal "10") (] "]"))) (+ "+") (parenthesized_expression "(-(uint)(puVar20 < puVar5) - iVar11)" (( "(") (binary_expression "-(uint)(puVar20 < puVar5) - iVar11" (unary_expression "-(uint)(puVar20 < puVar5)" (- "-") (call_expression "(uint)(puVar20 < puVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar20 < puVar5)" (( "(") (binary_expression "puVar20 < puVar5" (identifier "puVar20") (< "<") (identifier "puVar5")) () ")")))) (- "-") (identifier "iVar11")) () ")")))) (; ";")) (expression_statement "local_74[9] = uVar21;" (assignment_expression "local_74[9] = uVar21" (subscript_expression "local_74[9]" (identifier "local_74") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "local_74[10] = puVar19;" (assignment_expression "local_74[10] = puVar19" (subscript_expression "local_74[10]" (identifier "local_74") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "puVar19")) (; ";")) (expression_statement "uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);" (assignment_expression "uVar27 = FUN_00154210(local_74[8],param_2,param_3,0)" (identifier "uVar27") (= "=") (call_expression "FUN_00154210(local_74[8],param_2,param_3,0)" (identifier "FUN_00154210") (argument_list "(local_74[8],param_2,param_3,0)" (( "(") (subscript_expression "local_74[8]" (identifier "local_74") ([ "[") (number_literal "8") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar8 = local_34[0];" (assignment_expression "puVar8 = local_34[0]" (identifier "puVar8") (= "=") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);" (assignment_expression "puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20)" (identifier "puVar20") (= "=") (cast_expression "(undefined *)((ulonglong)uVar27 >> 0x20)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" (if "if") (parenthesized_expression "(puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21))" (( "(") (binary_expression "puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)" (binary_expression "puVar20 < puVar19" (identifier "puVar20") (< "<") (identifier "puVar19")) (|| "||") (binary_expression "(uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)" (call_expression "(uint)((int)puVar20 - (int)puVar19)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar20 - (int)puVar19)" (( "(") (binary_expression "(int)puVar20 - (int)puVar19" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (- "-") (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19"))) () ")"))) (< "<") (call_expression "(uint)((uint)uVar27 < uVar21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)uVar27 < uVar21)" (( "(") (binary_expression "(uint)uVar27 < uVar21" (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27")) (< "<") (identifier "uVar21")) () ")"))))) () ")")) (compound_statement "{\n      uVar15 = *local_74;\n      uVar12 = gettext("section %s overflows end of region %s");\n                    \n      FUN_0005ad00(uVar12,puVar8,uVar15);\n    }" ({ "{") (expression_statement "uVar15 = *local_74;" (assignment_expression "uVar15 = *local_74" (identifier "uVar15") (= "=") (pointer_expression "*local_74" (* "*") (identifier "local_74"))) (; ";")) (expression_statement "uVar12 = gettext("section %s overflows end of region %s");" (assignment_expression "uVar12 = gettext("section %s overflows end of region %s")" (identifier "uVar12") (= "=") (call_expression "gettext("section %s overflows end of region %s")" (identifier "gettext") (argument_list "("section %s overflows end of region %s")" (( "(") (string_literal ""section %s overflows end of region %s"" (" """) (string_content "section %s overflows end of region %s") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0005ad00(uVar12,puVar8,uVar15);" (call_expression "FUN_0005ad00(uVar12,puVar8,uVar15)" (identifier "FUN_0005ad00") (argument_list "(uVar12,puVar8,uVar15)" (( "(") (identifier "uVar12") (, ",") (identifier "puVar8") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_34[0] != local_2c) {\n      FUN_001807a0(local_34[0]);\n    }" (if "if") (parenthesized_expression "(local_34[0] != local_2c)" (( "(") (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_2c")) () ")")) (compound_statement "{\n      FUN_001807a0(local_34[0]);\n    }" ({ "{") (expression_statement "FUN_001807a0(local_34[0]);" (call_expression "FUN_001807a0(local_34[0])" (identifier "FUN_001807a0") (argument_list "(local_34[0])" (( "(") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(param_1 + 0x44)" (* "*") (cast_expression "(int **)(param_1 + 0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (if_statement "if (piVar23 == (int *)0x0) {\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }" (if "if") (parenthesized_expression "(piVar23 == (int *)0x0)" (( "(") (binary_expression "piVar23 == (int *)0x0" (identifier "piVar23") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar1 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar1;\n    pppppppiVar6 = local_58;\n    goto joined_r0x0010ae99;\n  }" ({ "{") (expression_statement "puVar1 = *param_4;" (assignment_expression "puVar1 = *param_4" (identifier "puVar1") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "*(undefined **)((int)param_6 + 4) = param_4[1];" (assignment_expression "*(undefined **)((int)param_6 + 4) = param_4[1]" (pointer_expression "*(undefined **)((int)param_6 + 4)" (* "*") (cast_expression "(undefined **)((int)param_6 + 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_6 + 4)" (( "(") (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined **)param_6 = puVar1;" (assignment_expression "*(undefined **)param_6 = puVar1" (pointer_expression "*(undefined **)param_6" (* "*") (cast_expression "(undefined **)param_6" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_6"))) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "pppppppiVar6 = local_58;" (assignment_expression "pppppppiVar6 = local_58" (identifier "pppppppiVar6") (= "=") (identifier "local_58")) (; ";")) (goto_statement "goto joined_r0x0010ae99;" (goto "goto") (statement_identifier "joined_r0x0010ae99") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x20) == 0) {\n    if (local_74 != (undefined4 *)0x0) {\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }\n  else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (local_74 != (undefined4 *)0x0) {\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }\n    puVar5 = *param_4;\n    *(undefined **)((int)param_6 + 4) = param_4[1];\n    *(undefined **)param_6 = puVar5;\n  }" ({ "{") (if_statement "if (local_74 != (undefined4 *)0x0) {\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }" (if "if") (parenthesized_expression "(local_74 != (undefined4 *)0x0)" (( "(") (binary_expression "local_74 != (undefined4 *)0x0" (identifier "local_74") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n      uVar15 = FUN_00154430(local_74[9],local_74[10]);\n      uVar15 = FUN_001545c0(local_74[7],uVar15);\n      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);\n      piVar23 = *(int **)(param_1 + 0x44);\n      *param_6 = lVar24;\n      goto LAB_0010ae3d;\n    }" ({ "{") (expression_statement "uVar15 = FUN_00154430(local_74[9],local_74[10]);" (assignment_expression "uVar15 = FUN_00154430(local_74[9],local_74[10])" (identifier "uVar15") (= "=") (call_expression "FUN_00154430(local_74[9],local_74[10])" (identifier "FUN_00154430") (argument_list "(local_74[9],local_74[10])" (( "(") (subscript_expression "local_74[9]" (identifier "local_74") ([ "[") (number_literal "9") (] "]")) (, ",") (subscript_expression "local_74[10]" (identifier "local_74") ([ "[") (number_literal "10") (] "]")) () ")")))) (; ";")) (expression_statement "uVar15 = FUN_001545c0(local_74[7],uVar15);" (assignment_expression "uVar15 = FUN_001545c0(local_74[7],uVar15)" (identifier "uVar15") (= "=") (call_expression "FUN_001545c0(local_74[7],uVar15)" (identifier "FUN_001545c0") (argument_list "(local_74[7],uVar15)" (( "(") (subscript_expression "local_74[7]" (identifier "local_74") ([ "[") (number_literal "7") (] "]")) (, ",") (identifier "uVar15") () ")")))) (; ";")) (expression_statement "lVar24 = FUN_00154210(uVar15,param_2,param_3,0);" (assignment_expression "lVar24 = FUN_00154210(uVar15,param_2,param_3,0)" (identifier "lVar24") (= "=") (call_expression "FUN_00154210(uVar15,param_2,param_3,0)" (identifier "FUN_00154210") (argument_list "(uVar15,param_2,param_3,0)" (( "(") (identifier "uVar15") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(param_1 + 0x44)" (* "*") (cast_expression "(int **)(param_1 + 0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "*param_6 = lVar24;" (assignment_expression "*param_6 = lVar24" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "lVar24")) (; ";")) (goto_statement "goto LAB_0010ae3d;" (goto "goto") (statement_identifier "LAB_0010ae3d") (; ";")) (} "}"))) (expression_statement "puVar5 = *param_4;" (assignment_expression "puVar5 = *param_4" (identifier "puVar5") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "*(undefined **)((int)param_6 + 4) = param_4[1];" (assignment_expression "*(undefined **)((int)param_6 + 4) = param_4[1]" (pointer_expression "*(undefined **)((int)param_6 + 4)" (* "*") (cast_expression "(undefined **)((int)param_6 + 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_6 + 4)" (( "(") (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined **)param_6 = puVar5;" (assignment_expression "*(undefined **)param_6 = puVar5" (pointer_expression "*(undefined **)param_6" (* "*") (cast_expression "(undefined **)param_6" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_6"))) (= "=") (identifier "puVar5")) (; ";")) (} "}")) (else_clause "else {\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }" (else "else") (compound_statement "{\n    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }\n    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);\nLAB_0010ae3d:\n    pppppppiVar6 = local_58;\n    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;\n  }" ({ "{") (if_statement "if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }\n    else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }" (if "if") (parenthesized_expression "(*(code **)(*piVar23 + 0x14) == FUN_00089130)" (( "(") (binary_expression "*(code **)(*piVar23 + 0x14) == FUN_00089130" (pointer_expression "*(code **)(*piVar23 + 0x14)" (* "*") (cast_expression "(code **)(*piVar23 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar23 + 0x14)" (( "(") (binary_expression "*piVar23 + 0x14" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (+ "+") (number_literal "0x14")) () ")")))) (== "==") (identifier "FUN_00089130")) () ")")) (compound_statement "{\n      if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }\n      lVar24 = *(longlong *)(piVar23 + 0xd);\n    }" ({ "{") (if_statement "if (-1 < (char)piVar23[0x24]) {\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }" (if "if") (parenthesized_expression "(-1 < (char)piVar23[0x24])" (( "(") (binary_expression "-1 < (char)piVar23[0x24]" (number_literal "-1") (< "<") (cast_expression "(char)piVar23[0x24]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar23[0x24]" (identifier "piVar23") ([ "[") (number_literal "0x24") (] "]")))) () ")")) (compound_statement "{\n                    \n                    \n        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);\n      }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);" (call_expression "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/output.h",0x107b,"do_load_address",FUN_00089130)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x107b") (, ",") (string_literal ""do_load_address"" (" """) (string_content "do_load_address") (" """)) (, ",") (identifier "FUN_00089130") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar24 = *(longlong *)(piVar23 + 0xd);" (assignment_expression "lVar24 = *(longlong *)(piVar23 + 0xd)" (identifier "lVar24") (= "=") (pointer_expression "*(longlong *)(piVar23 + 0xd)" (* "*") (cast_expression "(longlong *)(piVar23 + 0xd)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar23 + 0xd)" (( "(") (binary_expression "piVar23 + 0xd" (identifier "piVar23") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }" (else "else") (compound_statement "{\n                    \n      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);\n      piVar23 = *(int **)(param_1 + 0x44);\n    }" ({ "{") (expression_statement "lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);" (assignment_expression "lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23)" (identifier "lVar24") (= "=") (call_expression "(**(code **)(*piVar23 + 0x14))(piVar23)" (parenthesized_expression "(**(code **)(*piVar23 + 0x14))" (( "(") (pointer_expression "**(code **)(*piVar23 + 0x14)" (* "*") (pointer_expression "*(code **)(*piVar23 + 0x14)" (* "*") (cast_expression "(code **)(*piVar23 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar23 + 0x14)" (( "(") (binary_expression "*piVar23 + 0x14" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(piVar23)" (( "(") (identifier "piVar23") () ")")))) (; ";")) (expression_statement "piVar23 = *(int **)(param_1 + 0x44);" (assignment_expression "piVar23 = *(int **)(param_1 + 0x44)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(param_1 + 0x44)" (* "*") (cast_expression "(int **)(param_1 + 0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (} "}")))) (expression_statement "*param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5);" (assignment_expression "*param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" (identifier "lVar24") (+ "+") (call_expression "CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" (identifier "CONCAT44") (argument_list "(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),\n                                 (int)*param_4 - (int)puVar5)" (( "(") (binary_expression "param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11)" (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (+ "+") (parenthesized_expression "(-(uint)(*param_4 < puVar5) - iVar11)" (( "(") (binary_expression "-(uint)(*param_4 < puVar5) - iVar11" (unary_expression "-(uint)(*param_4 < puVar5)" (- "-") (call_expression "(uint)(*param_4 < puVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*param_4 < puVar5)" (( "(") (binary_expression "*param_4 < puVar5" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (< "<") (identifier "puVar5")) () ")")))) (- "-") (identifier "iVar11")) () ")"))) (, ",") (binary_expression "(int)*param_4 - (int)puVar5" (cast_expression "(int)*param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (- "-") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) () ")"))))) (; ";")) (labeled_statement "LAB_0010ae3d:\n    pppppppiVar6 = local_58;" (statement_identifier "LAB_0010ae3d") (: ":") (expression_statement "pppppppiVar6 = local_58;" (assignment_expression "pppppppiVar6 = local_58" (identifier "pppppppiVar6") (= "=") (identifier "local_58")) (; ";"))) (if_statement "if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;" (if "if") (parenthesized_expression "(piVar23 == (int *)0x0)" (( "(") (binary_expression "piVar23 == (int *)0x0" (identifier "piVar23") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto joined_r0x0010ae99;" (goto "goto") (statement_identifier "joined_r0x0010ae99") (; ";"))) (} "}")))) (expression_statement "*(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);" (assignment_expression "*(byte *)((int)piVar23 + 0x91) =\n       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5)" (pointer_expression "*(byte *)((int)piVar23 + 0x91)" (* "*") (cast_expression "(byte *)((int)piVar23 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar23 + 0x91)" (( "(") (binary_expression "(int)piVar23 + 0x91" (cast_expression "(int)piVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar23")) (+ "+") (number_literal "0x91")) () ")")))) (= "=") (binary_expression "*(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5)" (binary_expression "*(byte *)((int)piVar23 + 0x91) & 0xdf" (pointer_expression "*(byte *)((int)piVar23 + 0x91)" (* "*") (cast_expression "(byte *)((int)piVar23 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar23 + 0x91)" (( "(") (binary_expression "(int)piVar23 + 0x91" (cast_expression "(int)piVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar23")) (+ "+") (number_literal "0x91")) () ")")))) (& "&") (number_literal "0xdf")) (| "|") (call_expression "(byte)(((byte)param_1[0x60] & 1) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(((byte)param_1[0x60] & 1) << 5)" (( "(") (binary_expression "((byte)param_1[0x60] & 1) << 5" (parenthesized_expression "((byte)param_1[0x60] & 1)" (( "(") (binary_expression "(byte)param_1[0x60] & 1" (cast_expression "(byte)param_1[0x60]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0x60]" (identifier "param_1") ([ "[") (number_literal "0x60") (] "]"))) (& "&") (number_literal "1")) () ")")) (<< "<<") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "pppppppiVar6 = local_58;" (assignment_expression "pppppppiVar6 = local_58" (identifier "pppppppiVar6") (= "=") (identifier "local_58")) (; ";")) (if_statement "if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }" (if "if") (parenthesized_expression "((*(byte *)((int)piVar23 + 0x92) & 8) != 0)" (( "(") (binary_expression "(*(byte *)((int)piVar23 + 0x92) & 8) != 0" (parenthesized_expression "(*(byte *)((int)piVar23 + 0x92) & 8)" (( "(") (binary_expression "*(byte *)((int)piVar23 + 0x92) & 8" (pointer_expression "*(byte *)((int)piVar23 + 0x92)" (* "*") (cast_expression "(byte *)((int)piVar23 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar23 + 0x92)" (( "(") (binary_expression "(int)piVar23 + 0x92" (cast_expression "(int)piVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar23")) (+ "+") (number_literal "0x92")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *param_4 = puVar2;\n    param_4[1] = puVar1;\n    *(int *)param_6 = (int)lVar7;\n    *(undefined4 *)((int)param_6 + 4) = uVar3;\n  }" ({ "{") (expression_statement "*param_4 = puVar2;" (assignment_expression "*param_4 = puVar2" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "param_4[1] = puVar1;" (assignment_expression "param_4[1] = puVar1" (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "*(int *)param_6 = (int)lVar7;" (assignment_expression "*(int *)param_6 = (int)lVar7" (pointer_expression "*(int *)param_6" (* "*") (cast_expression "(int *)param_6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_6"))) (= "=") (cast_expression "(int)lVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar7"))) (; ";")) (expression_statement "*(undefined4 *)((int)param_6 + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)param_6 + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)param_6 + 4)" (* "*") (cast_expression "(undefined4 *)((int)param_6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_6 + 4)" (( "(") (binary_expression "(int)param_6 + 4" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (} "}"))) (labeled_statement "joined_r0x0010ae99:\n  while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }" (statement_identifier "joined_r0x0010ae99") (: ":") (while_statement "while (pppppppiVar6 != local_7c) {\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }" (while "while") (parenthesized_expression "(pppppppiVar6 != local_7c)" (( "(") (binary_expression "pppppppiVar6 != local_7c" (identifier "pppppppiVar6") (!= "!=") (identifier "local_7c")) () ")")) (compound_statement "{\n    pppppppiVar4 = (int *******)*pppppppiVar6;\n    FUN_001807a0(pppppppiVar6);\n    pppppppiVar6 = pppppppiVar4;\n  }" ({ "{") (expression_statement "pppppppiVar4 = (int *******)*pppppppiVar6;" (assignment_expression "pppppppiVar4 = (int *******)*pppppppiVar6" (identifier "pppppppiVar4") (= "=") (cast_expression "(int *******)*pppppppiVar6" (( "(") (type_descriptor "int *******" (primitive_type "int") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppiVar6" (* "*") (identifier "pppppppiVar6")))) (; ";")) (expression_statement "FUN_001807a0(pppppppiVar6);" (call_expression "FUN_001807a0(pppppppiVar6)" (identifier "FUN_001807a0") (argument_list "(pppppppiVar6)" (( "(") (identifier "pppppppiVar6") () ")"))) (; ";")) (expression_statement "pppppppiVar6 = pppppppiVar4;" (assignment_expression "pppppppiVar6 = pppppppiVar4" (identifier "pppppppiVar6") (= "=") (identifier "pppppppiVar4")) (; ";")) (} "}")))) (if_statement "if (local_4c != local_44) {\n    FUN_001807a0(local_4c);\n  }" (if "if") (parenthesized_expression "(local_4c != local_44)" (( "(") (binary_expression "local_4c != local_44" (identifier "local_4c") (!= "!=") (identifier "local_44")) () ")")) (compound_statement "{\n    FUN_001807a0(local_4c);\n  }" ({ "{") (expression_statement "FUN_001807a0(local_4c);" (call_expression "FUN_001807a0(local_4c)" (identifier "FUN_001807a0") (argument_list "(local_4c)" (( "(") (identifier "local_4c") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void set_section_addresses(Output_section_definition * this,
   Symbol_table * symtab, Layout * layout, uint64_t * dot_value, uint64_t * dot_alignment, uint64_t
   * load_address) */

void __thiscall
var_44::type_1::function_1
          (type_1 *this,type_2 *symtab,type_3 *layout,uint64_t *dot_value,
          uint64_t *dot_alignment,uint64_t *load_address)

{
  anon_union_16_2_edb7204a_for_basic_string<var_2,var_45::char_traits<var_2>,var_45::var_1<var_2>var_3>var_4
  *var_5;
  type_4 var_35;
  type_5 uVar3;
  type_5 uVar4;
  type_6 *var_23;
  int var_52;
  type_7 *p_Var7;
  type_8 *var_38;
  bool var_32;
  type_7 *var_53;
  uint64_t uVar11;
  uint64_t uVar12;
  bool var_31;
  type_9 *this_00;
  type_8 *var_6;
  char *pcVar15;
  type_10 var_18;
  type_11 *var_22;
  type_10 var_50;
  type_12 *var_37;
  int var_48;
  int extraout_EDX;
  type_5 extraout_EDX_00;
  type_13 var_46;
  type_10 var_49;
  type_13 var_47;
  uint64_t var_13;
  uint64_t var_17;
  uint64_t var_14;
  type_8 *var_8;
  type_10 var_33;
  type_10 var_34;
  type_14 var_30;
  type_14 local_84;
  type_8 *var_16;
  type_10 var_15;
  type_8 *var_36;
  type_8 *dot_section;
  uint64_t var_43;
  type_15 var_42;
  type_16 fill;
  type_8 *var_28;
  
  this_00 = &layout->script_options_->script_sections_;
  uVar3 = *(type_5 *)((int)dot_value + 4);
  uVar11 = *dot_value;
  uVar4 = *(type_5 *)((int)load_address + 4);
  uVar12 = *load_address;
  var_6 = this->output_section_;
  if (var_6 == (type_8 *)0x0) {
LAB_0010a8a0:
    if (this->address_ == (type_11 *)0x0) {
      var_8 = (type_8 *)
                 type_9::var_7
                           (this_00,this,true,false,(type_1 **)0x0);
      if (var_8 == (type_8 *)0x0) {
        var_43 = *dot_value;
      }
      else {
        var_22 = var_9(var_8->addralign_);
        var_22 = var_10
                            (*(type_11 **)&(var_8->super_Output_data).field_0x1c,var_22);
        var_43 = type_11::var_11(var_22,symtab,layout,false);
      }
      goto LAB_0010a6de;
    }
    var_8 = (type_8 *)
               type_9::var_7
                         (this_00,this,true,true,(type_1 **)0x0);
    var_13 = type_11::var_12
                       (this->address_,symtab,layout,true,*dot_value,(type_8 *)0x0,
                        (type_8 **)0x0,dot_alignment,false);
    var_43 = var_13;
    if (var_8 == (type_8 *)0x0) goto LAB_0010a6d4;
    var_14 = type_11::var_11(*(type_11 **)&(var_8->super_Output_data).field_0x1c,symtab,
                              layout,false);
    var_17 = type_11::var_11((type_11 *)var_8->name_,symtab,layout,false);
    local_84._0_4_ = (type_10)var_14;
    var_16 = (type_8 *)var_13;
    var_15 = (type_10)(var_13 >> 0x20);
    local_84._4_4_ = (type_10)(var_14 >> 0x20);
    if ((var_15 < local_84._4_4_ || var_15 - local_84._4_4_ < (type_10)(var_16 < (type_10)local_84))
       || (var_18 = (type_10)(var_17 + var_14 >> 0x20),
          var_18 <= var_15 && (type_10)(var_16 < (type_10)(var_17 + var_14)) <= var_15 - var_18)) {
      var_47 = ((type_17 *)&(var_8->super_Output_data)._vptr_Output_data)->_M_p;
      pcVar15 = "address 0x%llx is not within region %s";
LAB_0010b0ad:
      pcVar15 = (char *)var_19(pcVar15);
      var_20(pcVar15,var_16,var_15,var_47);
    }
    else {
      var_18 = local_84._4_4_ + *(int *)((int)&var_8->addralign_ + 4) +
               (type_10)var_21((type_10)local_84,(type_10)var_8->addralign_);
      if (var_15 < var_18 ||
          var_15 - var_18 < (type_10)(var_16 < (type_10)local_84 + (int)var_8->addralign_)) {
        var_47 = ((type_17 *)&(var_8->super_Output_data)._vptr_Output_data)->_M_p;
        pcVar15 = "address 0x%llx moves dot backwards in region %s";
        goto LAB_0010b0ad;
      }
    }
    *(type_10 *)&var_8->addralign_ = (int)var_16 - (type_10)local_84;
    var_22 = this->align_;
    *(type_10 *)((int)&var_8->addralign_ + 4) =
         (var_15 - local_84._4_4_) - (type_10)(var_16 < (type_10)local_84);
    if (var_22 != (type_11 *)0x0) goto LAB_0010a6e9;
LAB_0010a9a5:
    var_6 = this->output_section_;
    if (var_6 != (type_8 *)0x0) {
      var_23 = (var_6->super_Output_data)._vptr_Output_data[3];
      if (var_23 != type_8::do_addralign) {
        var_48 = (*var_23)(var_6);
        var_30 = var_24(extraout_EDX_00,var_48);
        goto LAB_0010a762;
      }
      var_30 = var_6->addralign_;
      var_16 = (type_8 *)this->subalign_;
      if (var_16 != (type_8 *)0x0) goto LAB_0010a770;
      goto LAB_0010a9e6;
    }
    var_16 = (type_8 *)this->subalign_;
    var_30 = 0;
    if (var_16 != (type_8 *)0x0) goto LAB_0010a770;
    var_33 = (type_10)var_43;
    var_34 = var_43._4_4_;
    local_84 = 0;
    *(type_10 *)dot_value = (type_10)var_43;
    *(type_10 *)((int)dot_value + 4) = var_43._4_4_;
    var_16 = (type_8 *)0x0;
  }
  else {
    if ((var_6->field_0x91 & 2) != 0) {
      Output_section::var_25(var_6);
      var_6 = this->output_section_;
      if (var_6 == (type_8 *)0x0) goto LAB_0010a8a0;
    }
    if (parameters->options_ == (type_18 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_26("../../gold/parameters.h",0x5c,"options");
    }
    var_31 = type_18::var_27(parameters->options_,var_6->name_,&var_43);
    if (!var_31) goto LAB_0010a8a0;
LAB_0010a6d4:
    var_8 = (type_8 *)0x0;
LAB_0010a6de:
    var_22 = this->align_;
    if (var_22 == (type_11 *)0x0) goto LAB_0010a9a5;
LAB_0010a6e9:
    var_30 = type_11::var_12
                         (var_22,symtab,layout,true,*dot_value,(type_8 *)0x0,&var_28
                          ,(uint64_t *)0x0,false);
    if (var_28 != (type_8 *)0x0) {
      var_47 = (this->name_)._M_dataplus._M_p;
      pcVar15 = (char *)var_19("alignment of section %s is not absolute");
      var_29(pcVar15,var_47);
    }
    var_6 = this->output_section_;
    if (var_6 != (type_8 *)0x0) {
      var_30._4_4_ = (type_10)(var_30 >> 0x20);
      *(type_10 *)&var_6->addralign_ = (type_10)var_30;
      *(type_10 *)((int)&var_6->addralign_ + 4) = var_30._4_4_;
    }
LAB_0010a762:
    var_16 = (type_8 *)this->subalign_;
    if (var_16 == (type_8 *)0x0) {
LAB_0010a9e6:
      var_16 = this->output_section_;
      var_34 = var_43._4_4_;
      var_33 = (type_10)var_43;
      if (var_30._4_4_ != 0 || (type_10)var_30 != 0) {
        local_84 = 0;
        goto LAB_0010a837;
      }
      local_84 = var_30;
    }
    else {
LAB_0010a770:
      var_13 = type_11::var_12
                         ((type_11 *)var_16,symtab,layout,true,*dot_value,(type_8 *)0x0
                          ,&var_28,(uint64_t *)0x0,false);
      if (var_28 != (type_8 *)0x0) {
        var_47 = (this->name_)._M_dataplus._M_p;
        pcVar15 = (char *)var_19("subalign of section %s is not absolute");
        var_29(pcVar15,var_47);
      }
      local_84._4_4_ = (type_10)(var_13 >> 0x20);
      local_84._0_4_ = (type_10)var_13;
      var_31 = local_84._4_4_ == 0;
      var_32 = (type_10)local_84 == 0;
      local_84 = var_13;
      if (var_31 && var_32) {
        local_84 = 1;
      }
      var_16 = this->output_section_;
      if ((var_30._4_4_ < local_84._4_4_ ||
           var_30._4_4_ - local_84._4_4_ < (type_10)((type_10)var_30 < (type_10)local_84)) ||
         (this->align_ == (type_11 *)0x0)) {
        *(type_10 *)&var_16->addralign_ = (type_10)local_84;
        *(type_10 *)((int)&var_16->addralign_ + 4) = local_84._4_4_;
        var_30 = local_84;
      }
      var_33 = (type_10)var_43;
      var_34 = var_43._4_4_;
LAB_0010a837:
      var_31 = var_33 != 0;
      var_18 = var_33 - 1;
      var_33 = var_18 + (type_10)var_30 & -(type_10)var_30;
      var_34 = (var_34 - 1) + (type_10)var_31 + var_30._4_4_ +
                 (type_10)var_21(var_18,(type_10)var_30) & -(var_30._4_4_ + ((type_10)var_30 != 0));
    }
    *(type_10 *)dot_value = var_33;
    var_43 = var_24(var_34,var_33);
    *(type_10 *)((int)dot_value + 4) = var_34;
    if ((var_16 != (type_8 *)0x0) &&
       (((var_16->flags_ & 2) != 0 || ((var_16->field_0x92 & 8) != 0)))) {
      var_35 = (var_16->super_Output_data).field_0x1c;
      if ((var_35 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
        var_26("../../gold/output.h",0x142,"set_address");
      }
      *(type_10 *)&(var_16->super_Output_data).address_ = var_33;
      *(type_10 *)((int)&(var_16->super_Output_data).address_ + 4) = var_34;
      (var_16->super_Output_data).field_0x1c = var_35 | 1;
    }
  }
  *(type_10 *)&this->evaluated_address_ = var_33;
  *(type_10 *)((int)&this->evaluated_address_ + 4) = var_34;
  *(type_10 *)&this->evaluated_addralign_ = (type_10)var_30;
  var_22 = this->load_address_;
  *(type_10 *)((int)&this->evaluated_addralign_ + 4) = var_30._4_4_;
  if (var_22 == (type_11 *)0x0) {
    var_36 = (type_8 *)
               type_9::var_7
                         (this_00,this,false,false,(type_1 **)&var_28);
    var_6 = (type_8 *)0x0;
    var_13 = var_43;
    if (var_36 != (type_8 *)0x0) {
      if (var_28 == (type_8 *)0x0) {
        var_22 = var_9(var_36->addralign_);
        var_22 = var_10
                            (*(type_11 **)&(var_36->super_Output_data).field_0x1c,var_22);
        var_13 = type_11::var_11(var_22,symtab,layout,false);
      }
      else {
        var_36 = var_6;
        if ((this->address_ == (type_11 *)0x0) && (var_28 != (type_8 *)this)) {
          var_37 = (type_12 *)((type_10)var_43 + var_28->type_);
          var_13 = var_24(((var_43._4_4_ + (int)var_28->flags_ +
                             (type_10)var_21((type_10)var_43,var_28->type_)) -
                            var_28->info_) - (type_10)(var_37 < var_28->info_symndx_),
                            (int)var_37 - (int)var_28->info_symndx_);
        }
      }
      var_38 = this->output_section_;
      var_6 = var_36;
      if (var_38 != (type_8 *)0x0) {
        var_38->load_address_ = var_13;
        var_38->field_0x90 = var_38->field_0x90 | 0x80;
      }
    }
  }
  else {
    var_13 = type_11::var_12
                       (var_22,symtab,layout,true,*dot_value,var_16,(type_8 **)0x0,
                        (uint64_t *)0x0,false);
    var_6 = this->output_section_;
    if (var_6 != (type_8 *)0x0) {
      var_6->field_0x90 = var_6->field_0x90 | 0x80;
      var_6->load_address_ = var_13;
      var_36 = (type_8 *)0x0;
      var_6 = var_36;
    }
  }
  var_36 = var_6;
  var_5 = &fill.field_2;
  this->evaluated_load_address_ = var_13;
  fill._M_string_length = 0;
  fill.field_2._M_local_buf[0] = '\0';
  fill._M_dataplus._M_p = (type_13)var_5;
  if (this->fill_ != (type_11 *)0x0) {
                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */
    var_13 = type_11::var_12
                       (this->fill_,symtab,layout,true,*dot_value,(type_8 *)0x0,
                        (type_8 **)&var_42,(uint64_t *)0x0,false);
    var_18 = (type_10)var_13;
    if (var_42.
        super__List_base<var_44::type_8::var_39,var_45::var_1<var_44::type_8::var_39>var_3>
        ._M_impl._M_node.super__List_node_base._M_next != (type_7 *)0x0) {
      var_47 = (this->name_)._M_dataplus._M_p;
      pcVar15 = (char *)var_19("fill of section %s is not absolute");
      var_29(pcVar15,var_47);
    }
    var_28 =
         (type_8 *)
         (var_18 >> 0x18 | (var_18 & 0xff0000) >> 8 | (var_18 & 0xff00) << 8 | var_18 << 0x18);
    std::string::var_40((type_16 *)&fill,0,fill._M_string_length,(char *)&var_28,4);
  }
  var_6 = this->output_section_;
  var_42.
  super__List_base<var_44::Output_section::var_39,var_45::var_1<var_44::Output_section::var_39>var_3>
  ._M_impl._M_node._M_size = 0;
  var_42.
  super__List_base<var_44::Output_section::var_39,var_45::var_1<var_44::Output_section::var_39>var_3>
  ._M_impl._M_node.super__List_node_base._M_next = (type_7 *)&var_42;
  var_42.
  super__List_base<var_44::Output_section::var_39,var_45::var_1<var_44::Output_section::var_39>var_3>
  ._M_impl._M_node.super__List_node_base._M_prev = (type_7 *)&var_42;
  if (var_6 != (type_8 *)0x0) {
                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */
    var_13 = type_8::var_41
                       (var_6,var_43,&fill,
                        (list<var_44::type_8::var_39,var_45::var_1<var_44::type_8::var_39>var_3>
                         *)&var_42);
    var_43 = var_13 + var_43;
    *dot_value = var_43;
    var_6 = this->output_section_;
  }
  var_46 = (this->elements_).
             super__Vector_base<var_44::Output_section_element*,var_45::var_1<var_44::Output_section_element*>var_3>
             ._M_impl._M_start;
  dot_section = var_6;
  if (var_46 !=
      (this->elements_).
      super__Vector_base<var_44::Output_section_element*,var_45::var_1<var_44::Output_section_element*>var_3>
      ._M_impl._M_finish) {
    while( true ) {
      (*(*var_46)->_vptr_Output_section_element[6])
                (*var_46,symtab,layout,var_6,(type_10)local_84,local_84._4_4_,dot_value,
                 dot_alignment,&dot_section,&fill,(type_7 *)&var_42);
      var_46 = var_46 + 1;
      if ((this->elements_).
          super__Vector_base<var_44::Output_section_element*,var_45::var_1<var_44::Output_section_element*>var_3>
          ._M_impl._M_finish == var_46) break;
      var_6 = this->output_section_;
    }
  }
  if (var_42.
      super__List_base<var_44::type_8::var_39,var_45::var_1<var_44::type_8::var_39>var_3>
      ._M_impl._M_node.super__List_node_base._M_next != (type_7 *)&var_42) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */
    var_26("../../gold/script-sections.cc",0xa67,"set_section_addresses");
  }
  if (var_8 != (type_8 *)0x0) {
    var_22 = var_9(var_8->addralign_);
    var_22 = var_10
                        (*(type_11 **)&(var_8->super_Output_data).field_0x1c,var_22);
    var_13 = *dot_value;
    var_48 = *(int *)((int)dot_value + 4);
    var_14 = type_11::var_11(var_22,symtab,layout,false);
    var_47 = (this->name_)._M_dataplus._M_p;
    var_28 = (type_8 *)&stack0xffffffd4;
    std::__cxx11::basic_string<var_2,var_45::char_traits<var_2>,var_45::var_1<var_2>var_3>::
    _M_construct<var_2*>((basic_string<var_2,var_45::char_traits<var_2>,var_45::var_1<var_2>var_3> *)
                        &var_28,var_47,var_47 + (this->name_)._M_string_length,0);
    var_18 = (type_10)var_13 + (int)var_8->addralign_;
    var_50 = var_18 - (type_10)var_14;
    var_18 = ((var_48 + *(int *)((int)&var_8->addralign_ + 4) +
              (type_10)var_21((type_10)var_13,(type_10)var_8->addralign_)) - (int)(var_14 >> 0x20)) -
             (type_10)(var_18 < (type_10)var_14);
    *(type_10 *)&var_8->addralign_ = var_50;
    *(type_10 *)((int)&var_8->addralign_ + 4) = var_18;
                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */
    var_13 = type_11::var_11((type_11 *)var_8->name_,symtab,layout,false);
    var_6 = var_28;
    var_49 = (type_10)(var_13 >> 0x20);
    if (var_49 < var_18 || var_49 - var_18 < (type_10)((type_10)var_13 < var_50)) {
      var_47 = ((type_17 *)&(var_8->super_Output_data)._vptr_Output_data)->_M_p;
      pcVar15 = (char *)var_19("section %s overflows end of region %s");
                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */
      var_20(pcVar15,var_6,var_47);
    }
    if (var_28 != (type_8 *)&stack0xffffffd4) {
      var_51(var_28);
    }
  }
  if ((var_36 != (type_8 *)0x0) && (var_8 != var_36)) {
    var_13 = *dot_value;
    var_48 = *(int *)((int)dot_value + 4);
    var_47 = (this->name_)._M_dataplus._M_p;
    var_18 = (type_10)var_13 - var_33;
    var_28 = (type_8 *)&stack0xffffffd4;
                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */
    std::__cxx11::basic_string<var_2,var_45::char_traits<var_2>,var_45::var_1<var_2>var_3>::
    _M_construct<var_2*>((basic_string<var_2,var_45::char_traits<var_2>,var_45::var_1<var_2>var_3> *)
                        &var_28,var_47,var_47 + (this->name_)._M_string_length,0);
    var_50 = var_18 + (int)var_36->addralign_;
    var_49 = ((var_48 - var_34) - (type_10)((type_10)var_13 < var_33)) +
             *(int *)((int)&var_36->addralign_ + 4) +
             (type_10)var_21(var_18,(type_10)var_36->addralign_);
    *(type_10 *)&var_36->addralign_ = var_50;
    *(type_10 *)((int)&var_36->addralign_ + 4) = var_49;
                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */
    var_13 = type_11::var_11((type_11 *)var_36->name_,symtab,layout,false);
    var_6 = var_28;
    var_18 = (type_10)(var_13 >> 0x20);
    if (var_18 < var_49 || var_18 - var_49 < (type_10)((type_10)var_13 < var_50)) {
      var_47 = ((type_17 *)&(var_36->super_Output_data)._vptr_Output_data)->_M_p;
      pcVar15 = (char *)var_19("section %s overflows end of region %s");
                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */
      var_20(pcVar15,var_6,var_47);
    }
    if (var_28 != (type_8 *)&stack0xffffffd4) {
      var_51(var_28);
    }
  }
  var_6 = this->output_section_;
  if (var_6 == (type_8 *)0x0) {
    uVar11 = *dot_value;
    *(type_5 *)((int)load_address + 4) = *(type_5 *)((int)dot_value + 4);
    *(int *)load_address = (int)uVar11;
    var_53 = var_42.
              super__List_base<var_44::Output_section::var_39,var_45::var_1<var_44::Output_section::var_39>var_3>
              ._M_impl._M_node.super__List_node_base._M_next;
    goto joined_r0x0010ae99;
  }
  if (this->load_address_ == (type_11 *)0x0) {
    if (var_36 != (type_8 *)0x0) {
                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */
      var_22 = var_9(var_36->addralign_);
      var_22 = var_10
                          (*(type_11 **)&(var_36->super_Output_data).field_0x1c,var_22);
      var_13 = type_11::var_11(var_22,symtab,layout,false);
      var_6 = this->output_section_;
      *load_address = var_13;
      goto LAB_0010ae3d;
    }
    var_13 = *dot_value;
    *(type_5 *)((int)load_address + 4) = *(type_5 *)((int)dot_value + 4);
    *(int *)load_address = (int)var_13;
  }
  else {
    var_23 = (var_6->super_Output_data)._vptr_Output_data[5];
    if (var_23 == type_8::do_load_address) {
      if (-1 < (char)var_6->field_0x90) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */
        var_26("../../gold/output.h",0x107b,"do_load_address");
      }
      var_18 = (type_10)var_6->load_address_;
      var_48 = *(int *)((int)&var_6->load_address_ + 4);
    }
    else {
                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */
      var_18 = (*var_23)(var_6);
      var_6 = this->output_section_;
      var_48 = extraout_EDX;
    }
    var_13 = *dot_value;
    var_52 = *(int *)((int)dot_value + 4);
    var_50 = (type_10)var_13 - var_33;
    *(type_10 *)load_address = var_18 + var_50;
    *(type_10 *)((int)load_address + 4) =
         var_48 + ((var_52 - var_34) - (type_10)((type_10)var_13 < var_33)) +
         (type_10)var_21(var_18,var_50);
LAB_0010ae3d:
    var_53 = var_42.
              super__List_base<var_44::Output_section::var_39,var_45::var_1<var_44::Output_section::var_39>var_3>
              ._M_impl._M_node.super__List_node_base._M_next;
    if (var_6 == (type_8 *)0x0) goto joined_r0x0010ae99;
  }
  var_6->field_0x91 = var_6->field_0x91 & 0xdf | (type_4)((this->is_relro_ & 1) << 5);
  var_53 = var_42.
            super__List_base<var_44::Output_section::var_39,var_45::var_1<var_44::Output_section::var_39>var_3>
            ._M_impl._M_node.super__List_node_base._M_next;
  if ((var_6->field_0x92 & 8) != 0) {
    *(int *)dot_value = (int)uVar11;
    *(type_5 *)((int)dot_value + 4) = uVar3;
    *(int *)load_address = (int)uVar12;
    *(type_5 *)((int)load_address + 4) = uVar4;
  }
joined_r0x0010ae99:
  while (var_53 != (type_7 *)&var_42) {
    p_Var7 = (((_List_base<var_44::type_8::var_39,var_45::var_1<var_44::type_8::var_39>var_3>
                *)&var_53->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;
    var_51(var_53);
    var_53 = p_Var7;
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,var_45::char_traits<var_2>,var_45::var_1<var_2>var_3>var_4
       *)fill._M_dataplus._M_p != var_5) {
    var_51(fill._M_dataplus._M_p);
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */

void MASKED(undefined1 *param_1,undefined4 param_2,int param_3,undefined **param_4,
                 undefined4 param_5,longlong *param_6)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined4 uVar3;
  int *******pppppppiVar4;
  undefined *puVar5;
  int *******pppppppiVar6;
  longlong lVar7;
  undefined1 *puVar8;
  char cVar9;
  int iVar10;
  int iVar11;
  undefined4 uVar12;
  uint uVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined *puVar16;
  uint uVar17;
  uint uVar18;
  undefined *puVar19;
  undefined *puVar20;
  undefined **unaff_EBX;
  uint uVar21;
  undefined4 *puVar22;
  int *piVar23;
  longlong lVar24;
  longlong lVar25;
  longlong lVar26;
  undefined8 uVar27;
  char *pcVar28;
  undefined4 *local_98;
  undefined **local_90;
  uint local_8c;
  uint local_88;
  uint local_84;
  uint local_80;
  int *******local_7c;
  undefined4 *local_74;
  undefined **local_70;
  int local_68;
  undefined8 local_64;
  int *******local_58;
  int *******local_54;
  undefined4 local_50;
  undefined1 *local_4c;
  undefined4 local_48;
  undefined1 local_44 [16];
  undefined1 *local_34 [2];
  undefined1 local_2c [28];
  
  iVar10 = *(int *)(param_3 + 4) + 0xac;
  puVar1 = param_4[1];
  puVar2 = *param_4;
  uVar3 = *(undefined4 *)((int)param_6 + 4);
  lVar7 = *param_6;
  iVar11 = *(int *)(param_1 + 0x44);
  if (iVar11 == 0) {
LAB_0010a8a0:
    local_70 = &__DT_PLTGOT;
    if (*(int *)(param_1 + 0x1c) == 0) {
      local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,0,0);
      if (local_98 == (undefined4 *)0x0) {
        lVar24 = *(longlong *)param_4;
      }
      else {
        uVar15 = FUN_00154430(local_98[9],local_98[10]);
        uVar15 = FUN_001545c0(local_98[7],uVar15);
        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);
        unaff_EBX = local_70;
      }
      goto LAB_0010a6de;
    }
    local_98 = (undefined4 *)FUN_001073d0(iVar10,param_1,1,1,0);
    lVar24 = FUN_00154250(*(undefined4 *)(param_1 + 0x1c),param_2,param_3,1,*param_4,param_4[1],0,0,
                          param_5,0);
    uVar21 = (uint)((ulonglong)lVar24 >> 0x20);
    uVar14 = (uint)lVar24;
    if (local_98 == (undefined4 *)0x0) goto LAB_0010a6d4;
    local_64 = lVar24;
    lVar25 = FUN_00154210(local_98[7],param_2,param_3,0);
    uVar18 = (uint)((ulonglong)lVar25 >> 0x20);
    uVar13 = (uint)lVar25;
    lVar26 = FUN_00154210(local_98[8],param_2,param_3,0);
    if ((uVar21 < uVar18 || uVar21 - uVar18 < (uint)(uVar14 < uVar13)) ||
       (uVar17 = (uint)((ulonglong)(lVar25 + lVar26) >> 0x20),
       uVar17 <= uVar21 && (uint)(uVar14 < (uint)(lVar25 + lVar26)) <= uVar21 - uVar17)) {
      uVar15 = *local_98;
      pcVar28 = "address 0x%llx is not within region %s";
LAB_0010b0ad:
      uVar12 = gettext(pcVar28);
      FUN_0005ad00(uVar12,lVar24,uVar15);
      unaff_EBX = local_70;
    }
    else {
      uVar18 = uVar18 + (uint)CARRY4(uVar13,local_98[9]) + local_98[10];
      uVar14 = (uint)(uVar14 < uVar13 + local_98[9]);
      uVar13 = uVar21 - uVar18;
      unaff_EBX = (undefined **)(uVar13 - uVar14);
      if (uVar21 < uVar18 || uVar13 < uVar14) {
        uVar15 = *local_98;
        pcVar28 = "address 0x%llx moves dot backwards in region %s";
        goto LAB_0010b0ad;
      }
    }
    iVar11 = *(int *)(param_1 + 0x24);
    *(longlong *)(local_98 + 9) = lVar24 - lVar25;
    if (iVar11 != 0) goto LAB_0010a6e9;
LAB_0010a9a5:
    piVar23 = *(int **)(param_1 + 0x44);
    if (piVar23 != (int *)0x0) {
      if (*(code **)(*piVar23 + 0xc) != FUN_00088ee0) {
        lVar24 = (**(code **)(*piVar23 + 0xc))(piVar23);
        goto LAB_0010a762;
      }
      lVar24 = *(longlong *)(piVar23 + 9);
      local_7c = *(int ********)(param_1 + 0x28);
      lVar25 = *(longlong *)(piVar23 + 9);
      if (local_7c != (int *******)0x0) goto LAB_0010a770;
      goto LAB_0010a9e6;
    }
    local_7c = *(int ********)(param_1 + 0x28);
    lVar24 = 0;
    if (local_7c != (int *******)0x0) goto LAB_0010a770;
    lVar25 = 0;
    *(longlong *)param_4 = local_64;
    local_7c = (int *******)0x0;
    lVar26 = local_64;
  }
  else {
    if ((*(byte *)(iVar11 + 0x91) & 2) != 0) {
      unaff_EBX = &__DT_PLTGOT;
      FUN_000c2b80(iVar11);
      iVar11 = *(int *)(param_1 + 0x44);
      if (iVar11 == 0) goto LAB_0010a8a0;
    }
    local_70 = &__DT_PLTGOT;
    if (*(int *)(DAT_00302378 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");
    }
    cVar9 = FUN_000ab3f0(*(int *)(DAT_00302378 + 8),*(undefined4 *)(iVar11 + 0x20),&local_64);
    lVar24 = CONCAT44(local_64._4_4_,(undefined *)local_64);
    unaff_EBX = local_70;
    if (cVar9 == '\0') goto LAB_0010a8a0;
LAB_0010a6d4:
    local_98 = (undefined4 *)0x0;
    unaff_EBX = &__DT_PLTGOT;
LAB_0010a6de:
    iVar11 = *(int *)(param_1 + 0x24);
    local_64 = lVar24;
    if (iVar11 == 0) goto LAB_0010a9a5;
LAB_0010a6e9:
    lVar24 = FUN_00154250(iVar11,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);
    if (local_34[0] != (undefined1 *)0x0) {
      uVar15 = *(undefined4 *)(param_1 + 4);
      uVar12 = gettext("alignment of section %s is not absolute");
      FUN_0005ad30(uVar12,uVar15);
    }
    if (*(int *)(param_1 + 0x44) != 0) {
      *(longlong *)(*(int *)(param_1 + 0x44) + 0x24) = lVar24;
    }
LAB_0010a762:
    local_7c = *(int ********)(param_1 + 0x28);
    lVar25 = lVar24;
    if (local_7c == (int *******)0x0) {
LAB_0010a9e6:
      lVar24 = lVar25;
      local_7c = *(int ********)(param_1 + 0x44);
      if (lVar24 != 0) {
        lVar25 = 0;
        goto LAB_0010a837;
      }
      lVar25 = 0;
    }
    else {
LAB_0010a770:
      local_88 = (uint)((ulonglong)lVar24 >> 0x20);
      local_8c = (uint)lVar24;
      lVar25 = FUN_00154250(local_7c,param_2,param_3,1,*param_4,param_4[1],0,local_34,0,0);
      if (local_34[0] != (undefined1 *)0x0) {
        uVar15 = *(undefined4 *)(param_1 + 4);
        uVar12 = gettext("subalign of section %s is not absolute");
        FUN_0005ad30(uVar12,uVar15);
      }
      if (lVar25 == 0) {
        lVar25 = 1;
      }
      local_80 = (uint)((ulonglong)lVar25 >> 0x20);
      local_84 = (uint)lVar25;
      local_7c = *(int ********)(param_1 + 0x44);
      if ((local_88 < local_80 || local_88 - local_80 < (uint)(local_8c < local_84)) ||
         (*(int *)(param_1 + 0x24) == 0)) {
        *(longlong *)((int)local_7c + 0x24) = lVar25;
        lVar24 = lVar25;
      }
LAB_0010a837:
      local_88 = (uint)((ulonglong)lVar24 >> 0x20);
      local_8c = (uint)lVar24;
      lVar26 = lVar24 + local_64 + -1;
      local_64 = CONCAT44((uint)((ulonglong)lVar26 >> 0x20) & -(local_88 + (local_8c != 0)),
                          (uint)lVar26 & -local_8c);
    }
    local_90 = (undefined **)((ulonglong)local_64 >> 0x20);
    *(longlong *)param_4 = local_64;
    unaff_EBX = param_4;
    lVar26 = local_64;
    if ((local_7c != (int *******)0x0) &&
       (((*(byte *)((int)local_7c + 0x54) & 2) != 0 || ((*(byte *)((int)local_7c + 0x92) & 8) != 0))
       )) {
      if ((*(byte *)((int)local_7c + 0x1c) & 1) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0("../../gold/output.h",0x142,"set_address",param_4);
      }
      *(longlong *)((int)local_7c + 4) = local_64;
      *(byte *)((int)local_7c + 0x1c) = *(byte *)((int)local_7c + 0x1c) | 1;
      unaff_EBX = local_90;
    }
  }
  local_64._4_4_ = (int)((ulonglong)lVar26 >> 0x20);
  iVar11 = local_64._4_4_;
  local_64._0_4_ = (undefined *)lVar26;
  puVar5 = (undefined *)local_64;
  local_70 = &__DT_PLTGOT;
  *(longlong *)(param_1 + 0x48) = lVar26;
  *(longlong *)(param_1 + 0x58) = lVar24;
  local_64 = lVar26;
  if (*(int *)(param_1 + 0x20) == 0) {
    local_74 = (undefined4 *)FUN_001073d0(iVar10,param_1,0,0,local_34);
    puVar22 = (undefined4 *)0x0;
    lVar24 = local_64;
    if (local_74 != (undefined4 *)0x0) {
      if (local_34[0] == (undefined1 *)0x0) {
        uVar15 = FUN_00154430(local_74[9],local_74[10]);
        uVar15 = FUN_001545c0(local_74[7],uVar15);
        lVar24 = FUN_00154210(uVar15,param_2,param_3,0);
        unaff_EBX = local_70;
      }
      else {
        local_74 = puVar22;
        if ((*(int *)(param_1 + 0x1c) == 0) && (local_34[0] != param_1)) {
          uVar14 = (int)(undefined *)local_64 + *(uint *)(local_34[0] + 0x50);
          lVar24 = CONCAT44(local_64._4_4_ +
                            ((((uint)CARRY4((uint)(undefined *)local_64,
                                            *(uint *)(local_34[0] + 0x50)) +
                              *(int *)(local_34[0] + 0x54)) - *(int *)(local_34[0] + 0x4c)) -
                            (uint)(uVar14 < *(uint *)(local_34[0] + 0x48))),
                            uVar14 - *(uint *)(local_34[0] + 0x48));
        }
      }
      iVar10 = *(int *)(param_1 + 0x44);
      puVar22 = local_74;
      if (iVar10 != 0) {
        *(longlong *)(iVar10 + 0x34) = lVar24;
        *(byte *)(iVar10 + 0x90) = *(byte *)(iVar10 + 0x90) | 0x80;
      }
    }
  }
  else {
    lVar24 = FUN_00154250(*(int *)(param_1 + 0x20),param_2,param_3,1,*param_4,param_4[1],local_7c,0,
                          0,0);
    puVar22 = *(undefined4 **)(param_1 + 0x44);
    unaff_EBX = local_70;
    if (puVar22 != (undefined4 *)0x0) {
      *(byte *)(puVar22 + 0x24) = *(byte *)(puVar22 + 0x24) | 0x80;
      *(longlong *)(puVar22 + 0xd) = lVar24;
      local_74 = (undefined4 *)0x0;
      unaff_EBX = &__DT_PLTGOT;
      puVar22 = local_74;
    }
  }
  local_74 = puVar22;
  *(longlong *)(param_1 + 0x50) = lVar24;
  local_48 = 0;
  local_44[0] = 0;
  local_4c = local_44;
  if (*(int *)(param_1 + 0x30) != 0) {
                    /* try { // try from 0010ab1e to 0010ab7d has its CatchHandler @ 0010b2cd */
    uVar14 = FUN_00154250(*(int *)(param_1 + 0x30),param_2,param_3,1,*param_4,param_4[1],0,&local_58
                          ,0,0);
    if (local_58 != (int *******)0x0) {
      uVar15 = *(undefined4 *)(param_1 + 4);
      uVar12 = gettext("fill of section %s is not absolute");
      FUN_0005ad30(uVar12,uVar15);
    }
    local_34[0] = (undefined1 *)
                  (uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |
                  uVar14 << 0x18);
    FUN_001893e0(&local_4c,0,local_48,local_34,4);
    unaff_EBX = local_70;
  }
  local_7c = (int *******)&local_58;
  iVar10 = *(int *)(param_1 + 0x44);
  local_50 = 0;
  local_54 = local_7c;
  local_58 = local_7c;
  if (iVar10 != 0) {
                    /* try { // try from 0010abaa to 0010acad has its CatchHandler @ 0010b2db */
    lVar24 = FUN_000bfc90(iVar10,local_64,&local_4c,local_7c);
    local_64 = lVar24 + local_64;
    *(longlong *)param_4 = local_64;
    iVar10 = *(int *)(param_1 + 0x44);
    unaff_EBX = local_70;
  }
  puVar22 = *(undefined4 **)(param_1 + 0x38);
  local_68 = iVar10;
  if (puVar22 != *(undefined4 **)(param_1 + 0x3c)) {
    unaff_EBX = &local_4c;
    while( true ) {
      (**(code **)(*(int *)*puVar22 + 0x18))
                ((int *)*puVar22,param_2,param_3,iVar10,lVar25,param_4,param_5,&local_68,unaff_EBX,
                 local_7c);
      puVar22 = puVar22 + 1;
      if (*(undefined4 **)(param_1 + 0x3c) == puVar22) break;
      iVar10 = *(int *)(param_1 + 0x44);
    }
  }
  if (local_58 != local_7c) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010b26a to 0010b26e has its CatchHandler @ 0010b2db */
    FUN_0005f0b0("../../gold/script-sections.cc",0xa67,"set_section_addresses",unaff_EBX);
  }
  if (local_98 != (undefined4 *)0x0) {
    uVar15 = FUN_00154430(local_98[9],local_98[10]);
    uVar15 = FUN_001545c0(local_98[7],uVar15);
    puVar20 = *param_4;
    puVar19 = param_4[1];
    uVar27 = FUN_00154210(uVar15,param_2,param_3,0);
    local_34[0] = local_2c;
    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);
    puVar16 = puVar20 + local_98[9];
    uVar14 = (int)puVar16 - (int)(undefined *)uVar27;
    puVar19 = puVar19 + ((((uint)CARRY4((uint)puVar20,local_98[9]) + local_98[10]) -
                         (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar16 < (undefined *)uVar27));
    local_98[9] = uVar14;
    local_98[10] = puVar19;
                    /* try { // try from 0010aced to 0010acf1 has its CatchHandler @ 0010b2e2 */
    uVar27 = FUN_00154210(local_98[8],param_2,param_3,0);
    puVar8 = local_34[0];
    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);
    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar14)) {
      uVar15 = *local_98;
      uVar12 = gettext("section %s overflows end of region %s");
                    /* try { // try from 0010b101 to 0010b105 has its CatchHandler @ 0010b2e2 */
      FUN_0005ad00(uVar12,puVar8,uVar15);
    }
    if (local_34[0] != local_2c) {
      FUN_001807a0(local_34[0]);
    }
  }
  if ((local_74 != (undefined4 *)0x0) && (local_98 != local_74)) {
    puVar20 = *param_4;
    puVar19 = param_4[1];
    uVar14 = (int)puVar20 - (int)puVar5;
    local_34[0] = local_2c;
                    /* try { // try from 0010ad6d to 0010ad71 has its CatchHandler @ 0010b2db */
    FUN_0004d4e0(local_34,*(int *)(param_1 + 4),*(int *)(param_1 + 8) + *(int *)(param_1 + 4),0);
    uVar21 = uVar14 + local_74[9];
    puVar19 = puVar19 + (uint)CARRY4(uVar14,local_74[9]) +
                        local_74[10] + (-(uint)(puVar20 < puVar5) - iVar11);
    local_74[9] = uVar21;
    local_74[10] = puVar19;
                    /* try { // try from 0010ad9e to 0010ada2 has its CatchHandler @ 0010b2d4 */
    uVar27 = FUN_00154210(local_74[8],param_2,param_3,0);
    puVar8 = local_34[0];
    puVar20 = (undefined *)((ulonglong)uVar27 >> 0x20);
    if (puVar20 < puVar19 || (uint)((int)puVar20 - (int)puVar19) < (uint)((uint)uVar27 < uVar21)) {
      uVar15 = *local_74;
      uVar12 = gettext("section %s overflows end of region %s");
                    /* try { // try from 0010b19c to 0010b1a0 has its CatchHandler @ 0010b2d4 */
      FUN_0005ad00(uVar12,puVar8,uVar15);
    }
    if (local_34[0] != local_2c) {
      FUN_001807a0(local_34[0]);
    }
  }
  piVar23 = *(int **)(param_1 + 0x44);
  if (piVar23 == (int *)0x0) {
    puVar1 = *param_4;
    *(undefined **)((int)param_6 + 4) = param_4[1];
    *(undefined **)param_6 = puVar1;
    pppppppiVar6 = local_58;
    goto joined_r0x0010ae99;
  }
  if (*(int *)(param_1 + 0x20) == 0) {
    if (local_74 != (undefined4 *)0x0) {
                    /* try { // try from 0010afd4 to 0010aff7 has its CatchHandler @ 0010b2db */
      uVar15 = FUN_00154430(local_74[9],local_74[10]);
      uVar15 = FUN_001545c0(local_74[7],uVar15);
      lVar24 = FUN_00154210(uVar15,param_2,param_3,0);
      piVar23 = *(int **)(param_1 + 0x44);
      *param_6 = lVar24;
      goto LAB_0010ae3d;
    }
    puVar5 = *param_4;
    *(undefined **)((int)param_6 + 4) = param_4[1];
    *(undefined **)param_6 = puVar5;
  }
  else {
    if (*(code **)(*piVar23 + 0x14) == FUN_00089130) {
      if (-1 < (char)piVar23[0x24]) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010b2ac to 0010b2b0 has its CatchHandler @ 0010b2db */
        FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address",FUN_00089130);
      }
      lVar24 = *(longlong *)(piVar23 + 0xd);
    }
    else {
                    /* try { // try from 0010b1b4 to 0010b1b5 has its CatchHandler @ 0010b2db */
      lVar24 = (**(code **)(*piVar23 + 0x14))(piVar23);
      piVar23 = *(int **)(param_1 + 0x44);
    }
    *param_6 = lVar24 + CONCAT44(param_4[1] + (-(uint)(*param_4 < puVar5) - iVar11),
                                 (int)*param_4 - (int)puVar5);
LAB_0010ae3d:
    pppppppiVar6 = local_58;
    if (piVar23 == (int *)0x0) goto joined_r0x0010ae99;
  }
  *(byte *)((int)piVar23 + 0x91) =
       *(byte *)((int)piVar23 + 0x91) & 0xdf | (byte)(((byte)param_1[0x60] & 1) << 5);
  pppppppiVar6 = local_58;
  if ((*(byte *)((int)piVar23 + 0x92) & 8) != 0) {
    *param_4 = puVar2;
    param_4[1] = puVar1;
    *(int *)param_6 = (int)lVar7;
    *(undefined4 *)((int)param_6 + 4) = uVar3;
  }
joined_r0x0010ae99:
  while (pppppppiVar6 != local_7c) {
    pppppppiVar4 = (int *******)*pppppppiVar6;
    FUN_001807a0(pppppppiVar6);
    pppppppiVar6 = pppppppiVar4;
  }
  if (local_4c != local_44) {
    FUN_001807a0(local_4c);
  }
  return;
}

