
/* WARNING: Struct "Output_segment_headers": ignoring overlapping field "segment_list_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* DWARF original prototype: void do_write(Output_segment_headers * this, Output_file * of) */

void __thiscall gold::Output_segment_headers::do_write(Output_segment_headers *this,Output_file *of)

{
  bool bVar1;
  off_t oVar2;
  int iVar3;
  int iVar4;
  pointer pIVar5;
  _func_int_varargs **pp_Var6;
  pointer ppOVar7;
  undefined4 *puVar8;
  uint uVar9;
  _func_int_varargs **pp_Var10;
  uint extraout_v1;
  vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *this_00;
  Output_section *os;
  anon_union_4_4_139239c7_for_u2_ aVar11;
  Relobj *this_01;
  Output_data *pOVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  Input_section *__args_0;
  iterator __position;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  iterator __position_00;
  int iVar18;
  code *pcVar19;
  int *piVar20;
  undefined *puVar21;
  code *pcVar22;
  undefined4 uStack_88;
  undefined4 uStack_84;
  undefined4 uStack_80;
  undefined4 uStack_7c;
  Output_segment_headers *pOStack_74;
  Output_file *pOStack_70;
  Output_data *apOStack_24 [3];
  
  iVar3 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);
  if (iVar3 == 1) {
    do_sized_write<32,_true>(this,of);
    return;
  }
  if (iVar3 == 0) {
    do_sized_write<32,_false>(this,of);
    return;
  }
  if (iVar3 == 2) {
    do_sized_write<64,_false>(this,of);
    return;
  }
  if (iVar3 == 3) {
    do_sized_write<64,_true>(this,of);
    return;
  }
  pOVar12 = (Output_data *)0x194;
  this_00 = (vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *)
            (PTR_s_in_a_linker_script_004c191c + -0x48b4);
  puVar21 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (this_00,0x194,PTR_s_in_a_linker_script_004c191c + -0x2b28);
  apOStack_24[0] = pOVar12;
  if (-1 < (int)this_00[0x22].
                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
                _M_end_of_storage) {
    ppOVar7 = (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)
              ._M_impl._M_finish;
    __position_00._M_current =
         (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).
         _M_impl._M_start;
    if (ppOVar7 ==
        (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).
        _M_impl._M_end_of_storage) {
      std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::
      _M_realloc_insert<gold::Output_data*_const&>(this_00,__position_00,apOStack_24);
      return;
    }
    if (__position_00._M_current == ppOVar7) {
      *__position_00._M_current = pOVar12;
      (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl
      ._M_finish = ppOVar7 + 1;
      return;
    }
    *ppOVar7 = ppOVar7[-1];
    (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.
    _M_finish = ppOVar7 + 1;
    if (__position_00._M_current != ppOVar7 + -1) {
      (**(code **)(puVar21 + 0x2abf88))
                ((int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current),
                 __position_00._M_current);
    }
    *__position_00._M_current = pOVar12;
    return;
  }
  pcVar22 = *(code **)(puVar21 + 0x2a7ec0);
  iVar3 = *(int *)(puVar21 + 0x2a7dac) + -0x48b4;
  (*pcVar22)(iVar3,0x1065,*(int *)(puVar21 + 0x2a7dac) + -0x3248);
  puVar13 = *(undefined4 **)(iVar3 + 0x34);
  piVar20 = *(int **)(pcVar22 + 0x2a7d5c);
  pOStack_74 = this;
  pOStack_70 = of;
  if ((puVar13 == *(undefined4 **)(iVar3 + 0x30)) || (puVar13[-2] != 0)) {
    iVar4 = *(int *)(*piVar20 + 8);
    if (iVar4 != 0) {
      iVar4 = *(int *)(iVar4 + 0x386c);
      puVar8 = *(undefined4 **)(iVar3 + 0x38);
      if (0 < iVar4) {
        pcVar19 = *(code **)(pcVar22 + 0x2a82f8);
        iVar18 = 0;
        puVar14 = puVar13;
        do {
          while( true ) {
            uStack_80 = 0;
            uStack_7c = 0xffffffff;
            uStack_88 = 0;
            if (puVar14 != puVar8) break;
            iVar18 = iVar18 + 1;
            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);
            puVar13 = *(undefined4 **)(iVar3 + 0x34);
            puVar8 = *(undefined4 **)(iVar3 + 0x38);
            puVar14 = puVar13;
            if (iVar18 == iVar4) goto LAB_00219d38;
          }
          puVar13 = puVar14 + 4;
          iVar18 = iVar18 + 1;
          *puVar14 = 0;
          puVar14[2] = 0;
          puVar14[1] = uStack_84;
          puVar14[3] = 0xffffffff;
          *(undefined4 **)(iVar3 + 0x34) = puVar13;
          puVar14 = puVar13;
        } while (iVar18 != iVar4);
      }
LAB_00219d38:
      uStack_80 = 0;
      uStack_88 = 0;
      uStack_7c = 0xffffffff;
      if (puVar13 == puVar8) {
        (**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88);
      }
      else {
        *puVar13 = 0;
        puVar13[2] = 0;
        puVar13[1] = uStack_84;
        puVar13[3] = 0xffffffff;
        *(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;
      }
      goto LAB_00219d68;
    }
  }
  else {
LAB_00219d68:
    iVar4 = *(int *)(*piVar20 + 0xc);
    iVar18 = *(int *)(pcVar22 + 0x2a7cc4);
    if (iVar4 != 0) {
      iVar4 = **(int **)(iVar4 + 4);
      if (iVar4 == 0x20) {
        iVar18 = 8;
      }
      else {
        iVar18 = 0x10;
        if (iVar4 != 0x40) goto LAB_00219e74;
      }
      if ((-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3)) {
        *(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;
        *(undefined4 *)(iVar3 + 0x10) = 0;
        *(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;
        return;
      }
      iVar18 = *(int *)(pcVar22 + 0x2a7cc4) + -0x2b80;
      (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18);
    }
    (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x69,iVar18 + -0x2998);
  }
  (**(code **)(pcVar22 + 0x2a7dd8))
            (*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x5c,*(int *)(pcVar22 + 0x2a7cc4) + -0x29c4);
LAB_00219e74:
  __args_0 = (Input_section *)&DAT_00000793;
  pcVar19 = *(code **)(pcVar22 + 0x2a7dd8);
  os = (Output_section *)(*(int *)(pcVar22 + 0x2a7cc4) + -0x48b4);
  (*pcVar19)(os,0x793,*(int *)(pcVar22 + 0x2a7cc4) + -0x2cc0);
  __position._M_current =
       (os->input_sections_).
       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
       ._M_impl._M_finish;
  if (__position._M_current ==
      (os->input_sections_).
      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
      ._M_impl._M_start) {
    oVar2 = (os->super_Output_data).data_size_;
    *(undefined4 *)&os->first_input_offset_ = *(undefined4 *)&(os->super_Output_data).data_size_;
    *(int *)((int)&os->first_input_offset_ + 4) = (int)oVar2;
    pIVar5 = (os->input_sections_).
             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
             ._M_impl._M_end_of_storage;
  }
  else {
    pIVar5 = (os->input_sections_).
             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
             ._M_impl._M_end_of_storage;
  }
  if (__position._M_current == pIVar5) {
    std::
    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
    ::_M_realloc_insert<const_gold::Output_section::Input_section&>
              (&os->input_sections_,__position,__args_0);
  }
  else {
    uVar17 = __args_0->p2align_;
    uVar16 = *(undefined4 *)&__args_0->u1_;
    uVar15 = *(undefined4 *)((int)&__args_0->u1_ + 4);
    aVar11 = __args_0->u2_;
    uVar9 = __args_0->section_order_index_;
    (__position._M_current)->shndx_ = __args_0->shndx_;
    (__position._M_current)->p2align_ = uVar17;
    *(undefined4 *)&(__position._M_current)->u1_ = uVar16;
    *(undefined4 *)((int)&(__position._M_current)->u1_ + 4) = uVar15;
    (__position._M_current)->u2_ = aVar11;
    (__position._M_current)->section_order_index_ = uVar9;
    (os->input_sections_).
    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
    ._M_impl._M_finish = __position._M_current + 1;
  }
  uVar9 = __args_0->p2align_;
  uVar17 = __args_0->shndx_ + 4;
  if (uVar9 != 0) goto LAB_00219f98;
  bVar1 = uVar17 < 4;
  if (!bVar1) {
    iVar3 = *(int *)(pcVar19 + 0x2a7a8c);
    goto LAB_00219f80;
  }
  this_01 = (__args_0->u2_).object;
  pp_Var10 = (this_01->super_Object)._vptr_Object;
  if (pp_Var10[3] != *(_func_int_varargs **)(pcVar19 + 0x2a9654)) {
    pp_Var6 = (_func_int_varargs **)(*pp_Var10[3])();
    uVar17 = __args_0->shndx_ + 4;
    goto LAB_00219fb4;
  }
  pp_Var6 = (_func_int_varargs **)(this_01->super_Object).shnum_;
  pp_Var10 = *(_func_int_varargs ***)&(this_01->super_Object).field_0x2c;
  if ((pp_Var6 <= *(_func_int_varargs ***)&os->addralign_) &&
     ((*(_func_int_varargs ***)&os->addralign_ != pp_Var6 ||
      (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4))))) {
LAB_00219f68:
    Output_section_data::set_output_section((Output_section_data *)this_01,os);
    return;
  }
LAB_00219f4c:
  do {
    *(_func_int_varargs ***)&os->addralign_ = pp_Var6;
    *(_func_int_varargs ***)((int)&os->addralign_ + 4) = pp_Var10;
    do {
      while( true ) {
        iVar3 = *(int *)(pcVar19 + 0x2a7a8c);
        if (bVar1) {
          this_01 = (Relobj *)(__args_0->u2_).posd;
          goto LAB_00219f68;
        }
LAB_00219f80:
        uVar17 = 0xf3c;
        (**(code **)(pcVar19 + 0x2a7ba0))
                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);
        uVar9 = extraout_v1;
LAB_00219f98:
        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));
        if ((uVar9 - 1 & 0x20) == 0) {
          pp_Var6 = (_func_int_varargs **)0x0;
        }
        else {
          pp_Var6 = pp_Var10;
          pp_Var10 = (_func_int_varargs **)0x0;
        }
LAB_00219fb4:
        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {
          bVar1 = uVar17 < 4;
          goto LAB_00219f4c;
        }
        if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;
        bVar1 = uVar17 < 4;
      }
      bVar1 = uVar17 < 4;
    } while (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4));
  } while( true );
}



void FUN_00219a7c(Output_segment_headers *param_1,Output_file *param_2)

{
  int iVar1;
  
  iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);
  if (iVar1 == 1) {
    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);
    return;
  }
  if (iVar1 == 0) {
    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);
    return;
  }
  if (iVar1 == 2) {
    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);
    return;
  }
  if (iVar1 == 3) {
    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);
    return;
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,
             PTR_s_in_a_linker_script_004c191c + -0x2b28);
  return;
}


lui gp,0x2b
addiu gp,gp,-0x83c
addu gp,gp,t9
lw v0,-0x788c(gp)
addiu sp,sp,-0x28
lw t9,-0x6ed0(gp)
sw s0,0x1c(sp)
or s0,a0,zero
sw gp,0x10(sp)
sw s1,0x20(sp)
or s1,a1,zero
sw ra,0x24(sp)
jalr t9
_lw a0,0x0(v0)
li v1,0x1
beq v0,v1,0x00219af4
_lw gp,0x10(sp)
beq v0,zero,0x00219b34
_li v1,0x2
beq v0,v1,0x00219b14
_li v1,0x3
bne v0,v1,0x00219b54
_lw ra,0x24(sp)
or a1,s1,zero
or a0,s0,zero
lw s1,0x20(sp)
lw s0,0x1c(sp)
lw t9,-0x52e4(gp)
b 0x002303c4
_addiu sp,sp,0x28
lw ra,0x24(sp)
or a1,s1,zero
or a0,s0,zero
lw s1,0x20(sp)
lw s0,0x1c(sp)
lw t9,-0x52e0(gp)
b 0x0022fe9c
_addiu sp,sp,0x28
lw ra,0x24(sp)
or a1,s1,zero
or a0,s0,zero
lw s1,0x20(sp)
lw s0,0x1c(sp)
lw t9,-0x52dc(gp)
b 0x002300d0
_addiu sp,sp,0x28
lw ra,0x24(sp)
or a1,s1,zero
or a0,s0,zero
lw s1,0x20(sp)
lw s0,0x1c(sp)
lw t9,-0x52d8(gp)
b 0x0022fc20
_addiu sp,sp,0x28
lw a2,-0x7924(gp)
li a1,0x194
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2b28
jalr t9
_addiu a0,a0,-0x48b4
(translation_unit "void FUN_00219a7c(Output_segment_headers *param_1,Output_file *param_2)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);\n  if (iVar1 == 1) {\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 0) {\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 2) {\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 3) {\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28);\n  return;\n}\n\n" (function_definition "void FUN_00219a7c(Output_segment_headers *param_1,Output_file *param_2)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);\n  if (iVar1 == 1) {\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 0) {\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 2) {\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 3) {\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28);\n  return;\n}" primitive_type (function_declarator "FUN_00219a7c(Output_segment_headers *param_1,Output_file *param_2)" identifier (parameter_list "(Output_segment_headers *param_1,Output_file *param_2)" ( (parameter_declaration "Output_segment_headers *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Output_file *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);\n  if (iVar1 == 1) {\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 0) {\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 2) {\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 3) {\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);" (assignment_expression "iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4)" identifier = (call_expression "(*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4)" (parenthesized_expression "(*(code *)PTR_size_and_endianness_004c2370)" ( (pointer_expression "*(code *)PTR_size_and_endianness_004c2370" * (cast_expression "(code *)PTR_size_and_endianness_004c2370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_parameters_004c19b4)" ( (pointer_expression "*(undefined4 *)PTR_parameters_004c19b4" * (cast_expression "(undefined4 *)PTR_parameters_004c19b4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (if_statement "if (iVar1 == 1) {\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }" { (labeled_statement "gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_segment_headers::do_sized_write<32,true>(param_1,param_2);" statement_identifier : (ERROR ":" :) (expression_statement "do_sized_write<32,true>(param_1,param_2);" (comma_expression "do_sized_write<32,true>(param_1,param_2)" (binary_expression "do_sized_write<32" identifier < number_literal) , (binary_expression "true>(param_1,param_2)" true > (parenthesized_expression "(param_1,param_2)" ( (comma_expression "param_1,param_2" identifier , identifier) )))) ;))) (return_statement "return;" return ;) })) (if_statement "if (iVar1 == 0) {\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }" { (labeled_statement "gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_segment_headers::do_sized_write<32,false>(param_1,param_2);" statement_identifier : (ERROR ":" :) (expression_statement "do_sized_write<32,false>(param_1,param_2);" (comma_expression "do_sized_write<32,false>(param_1,param_2)" (binary_expression "do_sized_write<32" identifier < number_literal) , (binary_expression "false>(param_1,param_2)" false > (parenthesized_expression "(param_1,param_2)" ( (comma_expression "param_1,param_2" identifier , identifier) )))) ;))) (return_statement "return;" return ;) })) (if_statement "if (iVar1 == 2) {\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }" if (parenthesized_expression "(iVar1 == 2)" ( (binary_expression "iVar1 == 2" identifier == number_literal) )) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }" { (labeled_statement "gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_segment_headers::do_sized_write<64,false>(param_1,param_2);" statement_identifier : (ERROR ":" :) (expression_statement "do_sized_write<64,false>(param_1,param_2);" (comma_expression "do_sized_write<64,false>(param_1,param_2)" (binary_expression "do_sized_write<64" identifier < number_literal) , (binary_expression "false>(param_1,param_2)" false > (parenthesized_expression "(param_1,param_2)" ( (comma_expression "param_1,param_2" identifier , identifier) )))) ;))) (return_statement "return;" return ;) })) (if_statement "if (iVar1 == 3) {\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }" if (parenthesized_expression "(iVar1 == 3)" ( (binary_expression "iVar1 == 3" identifier == number_literal) )) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }" { (labeled_statement "gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_segment_headers::do_sized_write<64,true>(param_1,param_2);" statement_identifier : (ERROR ":" :) (expression_statement "do_sized_write<64,true>(param_1,param_2);" (comma_expression "do_sized_write<64,true>(param_1,param_2)" (binary_expression "do_sized_write<64" identifier < number_literal) , (binary_expression "true>(param_1,param_2)" true > (parenthesized_expression "(param_1,param_2)" ( (comma_expression "param_1,param_2" identifier , identifier) )))) ;))) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2b28" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Struct "Output_segment_headers": ignoring overlapping field "segment_list_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* DWARF original prototype: void do_write(Output_segment_headers * this, Output_file * of) */\n\nvoid __thiscall gold::Output_segment_headers::do_write(Output_segment_headers *this,Output_file *of)\n\n{\n  bool bVar1;\n  off_t oVar2;\n  int iVar3;\n  int iVar4;\n  pointer pIVar5;\n  _func_int_varargs **pp_Var6;\n  pointer ppOVar7;\n  undefined4 *puVar8;\n  uint uVar9;\n  _func_int_varargs **pp_Var10;\n  uint extraout_v1;\n  vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *this_00;\n  Output_section *os;\n  anon_union_4_4_139239c7_for_u2_ aVar11;\n  Relobj *this_01;\n  Output_data *pOVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  Input_section *__args_0;\n  iterator __position;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  iterator __position_00;\n  int iVar18;\n  code *pcVar19;\n  int *piVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  undefined4 uStack_7c;\n  Output_segment_headers *pOStack_74;\n  Output_file *pOStack_70;\n  Output_data *apOStack_24 [3];\n  \n  iVar3 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);\n  if (iVar3 == 1) {\n    do_sized_write<32,_true>(this,of);\n    return;\n  }\n  if (iVar3 == 0) {\n    do_sized_write<32,_false>(this,of);\n    return;\n  }\n  if (iVar3 == 2) {\n    do_sized_write<64,_false>(this,of);\n    return;\n  }\n  if (iVar3 == 3) {\n    do_sized_write<64,_true>(this,of);\n    return;\n  }\n  pOVar12 = (Output_data *)0x194;\n  this_00 = (vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4);\n  puVar21 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x194,PTR_s_in_a_linker_script_004c191c + -0x2b28);\n  apOStack_24[0] = pOVar12;\n  if (-1 < (int)this_00[0x22].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_end_of_storage) {\n    ppOVar7 = (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)\n              ._M_impl._M_finish;\n    __position_00._M_current =\n         (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n         _M_impl._M_start;\n    if (ppOVar7 ==\n        (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n        _M_impl._M_end_of_storage) {\n      std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n      _M_realloc_insert<gold::Output_data*_const&>(this_00,__position_00,apOStack_24);\n      return;\n    }\n    if (__position_00._M_current == ppOVar7) {\n      *__position_00._M_current = pOVar12;\n      (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl\n      ._M_finish = ppOVar7 + 1;\n      return;\n    }\n    *ppOVar7 = ppOVar7[-1];\n    (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n    _M_finish = ppOVar7 + 1;\n    if (__position_00._M_current != ppOVar7 + -1) {\n      (**(code **)(puVar21 + 0x2abf88))\n                ((int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current),\n                 __position_00._M_current);\n    }\n    *__position_00._M_current = pOVar12;\n    return;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x2a7ec0);\n  iVar3 = *(int *)(puVar21 + 0x2a7dac) + -0x48b4;\n  (*pcVar22)(iVar3,0x1065,*(int *)(puVar21 + 0x2a7dac) + -0x3248);\n  puVar13 = *(undefined4 **)(iVar3 + 0x34);\n  piVar20 = *(int **)(pcVar22 + 0x2a7d5c);\n  pOStack_74 = this;\n  pOStack_70 = of;\n  if ((puVar13 == *(undefined4 **)(iVar3 + 0x30)) || (puVar13[-2] != 0)) {\n    iVar4 = *(int *)(*piVar20 + 8);\n    if (iVar4 != 0) {\n      iVar4 = *(int *)(iVar4 + 0x386c);\n      puVar8 = *(undefined4 **)(iVar3 + 0x38);\n      if (0 < iVar4) {\n        pcVar19 = *(code **)(pcVar22 + 0x2a82f8);\n        iVar18 = 0;\n        puVar14 = puVar13;\n        do {\n          while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }\n          puVar13 = puVar14 + 4;\n          iVar18 = iVar18 + 1;\n          *puVar14 = 0;\n          puVar14[2] = 0;\n          puVar14[1] = uStack_84;\n          puVar14[3] = 0xffffffff;\n          *(undefined4 **)(iVar3 + 0x34) = puVar13;\n          puVar14 = puVar13;\n        } while (iVar18 != iVar4);\n      }\nLAB_00219d38:\n      uStack_80 = 0;\n      uStack_88 = 0;\n      uStack_7c = 0xffffffff;\n      if (puVar13 == puVar8) {\n        (**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88);\n      }\n      else {\n        *puVar13 = 0;\n        puVar13[2] = 0;\n        puVar13[1] = uStack_84;\n        puVar13[3] = 0xffffffff;\n        *(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;\n      }\n      goto LAB_00219d68;\n    }\n  }\n  else {\nLAB_00219d68:\n    iVar4 = *(int *)(*piVar20 + 0xc);\n    iVar18 = *(int *)(pcVar22 + 0x2a7cc4);\n    if (iVar4 != 0) {\n      iVar4 = **(int **)(iVar4 + 4);\n      if (iVar4 == 0x20) {\n        iVar18 = 8;\n      }\n      else {\n        iVar18 = 0x10;\n        if (iVar4 != 0x40) goto LAB_00219e74;\n      }\n      if ((-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3)) {\n        *(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;\n        *(undefined4 *)(iVar3 + 0x10) = 0;\n        *(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;\n        return;\n      }\n      iVar18 = *(int *)(pcVar22 + 0x2a7cc4) + -0x2b80;\n      (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18);\n    }\n    (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x69,iVar18 + -0x2998);\n  }\n  (**(code **)(pcVar22 + 0x2a7dd8))\n            (*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x5c,*(int *)(pcVar22 + 0x2a7cc4) + -0x29c4);\nLAB_00219e74:\n  __args_0 = (Input_section *)&DAT_00000793;\n  pcVar19 = *(code **)(pcVar22 + 0x2a7dd8);\n  os = (Output_section *)(*(int *)(pcVar22 + 0x2a7cc4) + -0x48b4);\n  (*pcVar19)(os,0x793,*(int *)(pcVar22 + 0x2a7cc4) + -0x2cc0);\n  __position._M_current =\n       (os->input_sections_).\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_finish;\n  if (__position._M_current ==\n      (os->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_start) {\n    oVar2 = (os->super_Output_data).data_size_;\n    *(undefined4 *)&os->first_input_offset_ = *(undefined4 *)&(os->super_Output_data).data_size_;\n    *(int *)((int)&os->first_input_offset_ + 4) = (int)oVar2;\n    pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;\n  }\n  else {\n    pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;\n  }\n  if (__position._M_current == pIVar5) {\n    std::\n    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&os->input_sections_,__position,__args_0);\n  }\n  else {\n    uVar17 = __args_0->p2align_;\n    uVar16 = *(undefined4 *)&__args_0->u1_;\n    uVar15 = *(undefined4 *)((int)&__args_0->u1_ + 4);\n    aVar11 = __args_0->u2_;\n    uVar9 = __args_0->section_order_index_;\n    (__position._M_current)->shndx_ = __args_0->shndx_;\n    (__position._M_current)->p2align_ = uVar17;\n    *(undefined4 *)&(__position._M_current)->u1_ = uVar16;\n    *(undefined4 *)((int)&(__position._M_current)->u1_ + 4) = uVar15;\n    (__position._M_current)->u2_ = aVar11;\n    (__position._M_current)->section_order_index_ = uVar9;\n    (os->input_sections_).\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }\n  uVar9 = __args_0->p2align_;\n  uVar17 = __args_0->shndx_ + 4;\n  if (uVar9 != 0) goto LAB_00219f98;\n  bVar1 = uVar17 < 4;\n  if (!bVar1) {\n    iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n    goto LAB_00219f80;\n  }\n  this_01 = (__args_0->u2_).object;\n  pp_Var10 = (this_01->super_Object)._vptr_Object;\n  if (pp_Var10[3] != *(_func_int_varargs **)(pcVar19 + 0x2a9654)) {\n    pp_Var6 = (_func_int_varargs **)(*pp_Var10[3])();\n    uVar17 = __args_0->shndx_ + 4;\n    goto LAB_00219fb4;\n  }\n  pp_Var6 = (_func_int_varargs **)(this_01->super_Object).shnum_;\n  pp_Var10 = *(_func_int_varargs ***)&(this_01->super_Object).field_0x2c;\n  if ((pp_Var6 <= *(_func_int_varargs ***)&os->addralign_) &&\n     ((*(_func_int_varargs ***)&os->addralign_ != pp_Var6 ||\n      (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4))))) {\nLAB_00219f68:\n    Output_section_data::set_output_section((Output_section_data *)this_01,os);\n    return;\n  }\nLAB_00219f4c:\n  do {\n    *(_func_int_varargs ***)&os->addralign_ = pp_Var6;\n    *(_func_int_varargs ***)((int)&os->addralign_ + 4) = pp_Var10;\n    do {\n      while( true ) {\n        iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n        if (bVar1) {\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }\nLAB_00219f80:\n        uVar17 = 0xf3c;\n        (**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);\n        uVar9 = extraout_v1;\nLAB_00219f98:\n        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));\n        if ((uVar9 - 1 & 0x20) == 0) {\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }\n        else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }\nLAB_00219fb4:\n        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }\n        if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;\n        bVar1 = uVar17 < 4;\n      }\n      bVar1 = uVar17 < 4;\n    } while (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4));\n  } while( true );\n}\n\n" comment comment comment comment (function_definition "void __thiscall gold::Output_segment_headers::do_write(Output_segment_headers *this,Output_file *of)\n\n{\n  bool bVar1;\n  off_t oVar2;\n  int iVar3;\n  int iVar4;\n  pointer pIVar5;\n  _func_int_varargs **pp_Var6;\n  pointer ppOVar7;\n  undefined4 *puVar8;\n  uint uVar9;\n  _func_int_varargs **pp_Var10;\n  uint extraout_v1;\n  vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *this_00;\n  Output_section *os;\n  anon_union_4_4_139239c7_for_u2_ aVar11;\n  Relobj *this_01;\n  Output_data *pOVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  Input_section *__args_0;\n  iterator __position;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  iterator __position_00;\n  int iVar18;\n  code *pcVar19;\n  int *piVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  undefined4 uStack_7c;\n  Output_segment_headers *pOStack_74;\n  Output_file *pOStack_70;\n  Output_data *apOStack_24 [3];\n  \n  iVar3 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);\n  if (iVar3 == 1) {\n    do_sized_write<32,_true>(this,of);\n    return;\n  }\n  if (iVar3 == 0) {\n    do_sized_write<32,_false>(this,of);\n    return;\n  }\n  if (iVar3 == 2) {\n    do_sized_write<64,_false>(this,of);\n    return;\n  }\n  if (iVar3 == 3) {\n    do_sized_write<64,_true>(this,of);\n    return;\n  }\n  pOVar12 = (Output_data *)0x194;\n  this_00 = (vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4);\n  puVar21 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x194,PTR_s_in_a_linker_script_004c191c + -0x2b28);\n  apOStack_24[0] = pOVar12;\n  if (-1 < (int)this_00[0x22].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_end_of_storage) {\n    ppOVar7 = (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)\n              ._M_impl._M_finish;\n    __position_00._M_current =\n         (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n         _M_impl._M_start;\n    if (ppOVar7 ==\n        (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n        _M_impl._M_end_of_storage) {\n      std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n      _M_realloc_insert<gold::Output_data*_const&>(this_00,__position_00,apOStack_24);\n      return;\n    }\n    if (__position_00._M_current == ppOVar7) {\n      *__position_00._M_current = pOVar12;\n      (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl\n      ._M_finish = ppOVar7 + 1;\n      return;\n    }\n    *ppOVar7 = ppOVar7[-1];\n    (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n    _M_finish = ppOVar7 + 1;\n    if (__position_00._M_current != ppOVar7 + -1) {\n      (**(code **)(puVar21 + 0x2abf88))\n                ((int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current),\n                 __position_00._M_current);\n    }\n    *__position_00._M_current = pOVar12;\n    return;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x2a7ec0);\n  iVar3 = *(int *)(puVar21 + 0x2a7dac) + -0x48b4;\n  (*pcVar22)(iVar3,0x1065,*(int *)(puVar21 + 0x2a7dac) + -0x3248);\n  puVar13 = *(undefined4 **)(iVar3 + 0x34);\n  piVar20 = *(int **)(pcVar22 + 0x2a7d5c);\n  pOStack_74 = this;\n  pOStack_70 = of;\n  if ((puVar13 == *(undefined4 **)(iVar3 + 0x30)) || (puVar13[-2] != 0)) {\n    iVar4 = *(int *)(*piVar20 + 8);\n    if (iVar4 != 0) {\n      iVar4 = *(int *)(iVar4 + 0x386c);\n      puVar8 = *(undefined4 **)(iVar3 + 0x38);\n      if (0 < iVar4) {\n        pcVar19 = *(code **)(pcVar22 + 0x2a82f8);\n        iVar18 = 0;\n        puVar14 = puVar13;\n        do {\n          while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }\n          puVar13 = puVar14 + 4;\n          iVar18 = iVar18 + 1;\n          *puVar14 = 0;\n          puVar14[2] = 0;\n          puVar14[1] = uStack_84;\n          puVar14[3] = 0xffffffff;\n          *(undefined4 **)(iVar3 + 0x34) = puVar13;\n          puVar14 = puVar13;\n        } while (iVar18 != iVar4);\n      }\nLAB_00219d38:\n      uStack_80 = 0;\n      uStack_88 = 0;\n      uStack_7c = 0xffffffff;\n      if (puVar13 == puVar8) {\n        (**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88);\n      }\n      else {\n        *puVar13 = 0;\n        puVar13[2] = 0;\n        puVar13[1] = uStack_84;\n        puVar13[3] = 0xffffffff;\n        *(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;\n      }\n      goto LAB_00219d68;\n    }\n  }\n  else {\nLAB_00219d68:\n    iVar4 = *(int *)(*piVar20 + 0xc);\n    iVar18 = *(int *)(pcVar22 + 0x2a7cc4);\n    if (iVar4 != 0) {\n      iVar4 = **(int **)(iVar4 + 4);\n      if (iVar4 == 0x20) {\n        iVar18 = 8;\n      }\n      else {\n        iVar18 = 0x10;\n        if (iVar4 != 0x40) goto LAB_00219e74;\n      }\n      if ((-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3)) {\n        *(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;\n        *(undefined4 *)(iVar3 + 0x10) = 0;\n        *(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;\n        return;\n      }\n      iVar18 = *(int *)(pcVar22 + 0x2a7cc4) + -0x2b80;\n      (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18);\n    }\n    (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x69,iVar18 + -0x2998);\n  }\n  (**(code **)(pcVar22 + 0x2a7dd8))\n            (*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x5c,*(int *)(pcVar22 + 0x2a7cc4) + -0x29c4);\nLAB_00219e74:\n  __args_0 = (Input_section *)&DAT_00000793;\n  pcVar19 = *(code **)(pcVar22 + 0x2a7dd8);\n  os = (Output_section *)(*(int *)(pcVar22 + 0x2a7cc4) + -0x48b4);\n  (*pcVar19)(os,0x793,*(int *)(pcVar22 + 0x2a7cc4) + -0x2cc0);\n  __position._M_current =\n       (os->input_sections_).\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_finish;\n  if (__position._M_current ==\n      (os->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_start) {\n    oVar2 = (os->super_Output_data).data_size_;\n    *(undefined4 *)&os->first_input_offset_ = *(undefined4 *)&(os->super_Output_data).data_size_;\n    *(int *)((int)&os->first_input_offset_ + 4) = (int)oVar2;\n    pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;\n  }\n  else {\n    pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;\n  }\n  if (__position._M_current == pIVar5) {\n    std::\n    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&os->input_sections_,__position,__args_0);\n  }\n  else {\n    uVar17 = __args_0->p2align_;\n    uVar16 = *(undefined4 *)&__args_0->u1_;\n    uVar15 = *(undefined4 *)((int)&__args_0->u1_ + 4);\n    aVar11 = __args_0->u2_;\n    uVar9 = __args_0->section_order_index_;\n    (__position._M_current)->shndx_ = __args_0->shndx_;\n    (__position._M_current)->p2align_ = uVar17;\n    *(undefined4 *)&(__position._M_current)->u1_ = uVar16;\n    *(undefined4 *)((int)&(__position._M_current)->u1_ + 4) = uVar15;\n    (__position._M_current)->u2_ = aVar11;\n    (__position._M_current)->section_order_index_ = uVar9;\n    (os->input_sections_).\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }\n  uVar9 = __args_0->p2align_;\n  uVar17 = __args_0->shndx_ + 4;\n  if (uVar9 != 0) goto LAB_00219f98;\n  bVar1 = uVar17 < 4;\n  if (!bVar1) {\n    iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n    goto LAB_00219f80;\n  }\n  this_01 = (__args_0->u2_).object;\n  pp_Var10 = (this_01->super_Object)._vptr_Object;\n  if (pp_Var10[3] != *(_func_int_varargs **)(pcVar19 + 0x2a9654)) {\n    pp_Var6 = (_func_int_varargs **)(*pp_Var10[3])();\n    uVar17 = __args_0->shndx_ + 4;\n    goto LAB_00219fb4;\n  }\n  pp_Var6 = (_func_int_varargs **)(this_01->super_Object).shnum_;\n  pp_Var10 = *(_func_int_varargs ***)&(this_01->super_Object).field_0x2c;\n  if ((pp_Var6 <= *(_func_int_varargs ***)&os->addralign_) &&\n     ((*(_func_int_varargs ***)&os->addralign_ != pp_Var6 ||\n      (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4))))) {\nLAB_00219f68:\n    Output_section_data::set_output_section((Output_section_data *)this_01,os);\n    return;\n  }\nLAB_00219f4c:\n  do {\n    *(_func_int_varargs ***)&os->addralign_ = pp_Var6;\n    *(_func_int_varargs ***)((int)&os->addralign_ + 4) = pp_Var10;\n    do {\n      while( true ) {\n        iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n        if (bVar1) {\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }\nLAB_00219f80:\n        uVar17 = 0xf3c;\n        (**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);\n        uVar9 = extraout_v1;\nLAB_00219f98:\n        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));\n        if ((uVar9 - 1 & 0x20) == 0) {\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }\n        else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }\nLAB_00219fb4:\n        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }\n        if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;\n        bVar1 = uVar17 < 4;\n      }\n      bVar1 = uVar17 < 4;\n    } while (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4));\n  } while( true );\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_segment_headers::" identifier : : identifier : :) (function_declarator "do_write(Output_segment_headers *this,Output_file *of)" identifier (parameter_list "(Output_segment_headers *this,Output_file *of)" ( (parameter_declaration "Output_segment_headers *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  off_t oVar2;\n  int iVar3;\n  int iVar4;\n  pointer pIVar5;\n  _func_int_varargs **pp_Var6;\n  pointer ppOVar7;\n  undefined4 *puVar8;\n  uint uVar9;\n  _func_int_varargs **pp_Var10;\n  uint extraout_v1;\n  vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *this_00;\n  Output_section *os;\n  anon_union_4_4_139239c7_for_u2_ aVar11;\n  Relobj *this_01;\n  Output_data *pOVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  Input_section *__args_0;\n  iterator __position;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  iterator __position_00;\n  int iVar18;\n  code *pcVar19;\n  int *piVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined4 uStack_88;\n  undefined4 uStack_84;\n  undefined4 uStack_80;\n  undefined4 uStack_7c;\n  Output_segment_headers *pOStack_74;\n  Output_file *pOStack_70;\n  Output_data *apOStack_24 [3];\n  \n  iVar3 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);\n  if (iVar3 == 1) {\n    do_sized_write<32,_true>(this,of);\n    return;\n  }\n  if (iVar3 == 0) {\n    do_sized_write<32,_false>(this,of);\n    return;\n  }\n  if (iVar3 == 2) {\n    do_sized_write<64,_false>(this,of);\n    return;\n  }\n  if (iVar3 == 3) {\n    do_sized_write<64,_true>(this,of);\n    return;\n  }\n  pOVar12 = (Output_data *)0x194;\n  this_00 = (vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4);\n  puVar21 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x194,PTR_s_in_a_linker_script_004c191c + -0x2b28);\n  apOStack_24[0] = pOVar12;\n  if (-1 < (int)this_00[0x22].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_end_of_storage) {\n    ppOVar7 = (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)\n              ._M_impl._M_finish;\n    __position_00._M_current =\n         (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n         _M_impl._M_start;\n    if (ppOVar7 ==\n        (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n        _M_impl._M_end_of_storage) {\n      std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n      _M_realloc_insert<gold::Output_data*_const&>(this_00,__position_00,apOStack_24);\n      return;\n    }\n    if (__position_00._M_current == ppOVar7) {\n      *__position_00._M_current = pOVar12;\n      (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl\n      ._M_finish = ppOVar7 + 1;\n      return;\n    }\n    *ppOVar7 = ppOVar7[-1];\n    (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n    _M_finish = ppOVar7 + 1;\n    if (__position_00._M_current != ppOVar7 + -1) {\n      (**(code **)(puVar21 + 0x2abf88))\n                ((int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current),\n                 __position_00._M_current);\n    }\n    *__position_00._M_current = pOVar12;\n    return;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x2a7ec0);\n  iVar3 = *(int *)(puVar21 + 0x2a7dac) + -0x48b4;\n  (*pcVar22)(iVar3,0x1065,*(int *)(puVar21 + 0x2a7dac) + -0x3248);\n  puVar13 = *(undefined4 **)(iVar3 + 0x34);\n  piVar20 = *(int **)(pcVar22 + 0x2a7d5c);\n  pOStack_74 = this;\n  pOStack_70 = of;\n  if ((puVar13 == *(undefined4 **)(iVar3 + 0x30)) || (puVar13[-2] != 0)) {\n    iVar4 = *(int *)(*piVar20 + 8);\n    if (iVar4 != 0) {\n      iVar4 = *(int *)(iVar4 + 0x386c);\n      puVar8 = *(undefined4 **)(iVar3 + 0x38);\n      if (0 < iVar4) {\n        pcVar19 = *(code **)(pcVar22 + 0x2a82f8);\n        iVar18 = 0;\n        puVar14 = puVar13;\n        do {\n          while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }\n          puVar13 = puVar14 + 4;\n          iVar18 = iVar18 + 1;\n          *puVar14 = 0;\n          puVar14[2] = 0;\n          puVar14[1] = uStack_84;\n          puVar14[3] = 0xffffffff;\n          *(undefined4 **)(iVar3 + 0x34) = puVar13;\n          puVar14 = puVar13;\n        } while (iVar18 != iVar4);\n      }\nLAB_00219d38:\n      uStack_80 = 0;\n      uStack_88 = 0;\n      uStack_7c = 0xffffffff;\n      if (puVar13 == puVar8) {\n        (**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88);\n      }\n      else {\n        *puVar13 = 0;\n        puVar13[2] = 0;\n        puVar13[1] = uStack_84;\n        puVar13[3] = 0xffffffff;\n        *(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;\n      }\n      goto LAB_00219d68;\n    }\n  }\n  else {\nLAB_00219d68:\n    iVar4 = *(int *)(*piVar20 + 0xc);\n    iVar18 = *(int *)(pcVar22 + 0x2a7cc4);\n    if (iVar4 != 0) {\n      iVar4 = **(int **)(iVar4 + 4);\n      if (iVar4 == 0x20) {\n        iVar18 = 8;\n      }\n      else {\n        iVar18 = 0x10;\n        if (iVar4 != 0x40) goto LAB_00219e74;\n      }\n      if ((-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3)) {\n        *(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;\n        *(undefined4 *)(iVar3 + 0x10) = 0;\n        *(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;\n        return;\n      }\n      iVar18 = *(int *)(pcVar22 + 0x2a7cc4) + -0x2b80;\n      (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18);\n    }\n    (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x69,iVar18 + -0x2998);\n  }\n  (**(code **)(pcVar22 + 0x2a7dd8))\n            (*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x5c,*(int *)(pcVar22 + 0x2a7cc4) + -0x29c4);\nLAB_00219e74:\n  __args_0 = (Input_section *)&DAT_00000793;\n  pcVar19 = *(code **)(pcVar22 + 0x2a7dd8);\n  os = (Output_section *)(*(int *)(pcVar22 + 0x2a7cc4) + -0x48b4);\n  (*pcVar19)(os,0x793,*(int *)(pcVar22 + 0x2a7cc4) + -0x2cc0);\n  __position._M_current =\n       (os->input_sections_).\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_finish;\n  if (__position._M_current ==\n      (os->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_start) {\n    oVar2 = (os->super_Output_data).data_size_;\n    *(undefined4 *)&os->first_input_offset_ = *(undefined4 *)&(os->super_Output_data).data_size_;\n    *(int *)((int)&os->first_input_offset_ + 4) = (int)oVar2;\n    pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;\n  }\n  else {\n    pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;\n  }\n  if (__position._M_current == pIVar5) {\n    std::\n    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&os->input_sections_,__position,__args_0);\n  }\n  else {\n    uVar17 = __args_0->p2align_;\n    uVar16 = *(undefined4 *)&__args_0->u1_;\n    uVar15 = *(undefined4 *)((int)&__args_0->u1_ + 4);\n    aVar11 = __args_0->u2_;\n    uVar9 = __args_0->section_order_index_;\n    (__position._M_current)->shndx_ = __args_0->shndx_;\n    (__position._M_current)->p2align_ = uVar17;\n    *(undefined4 *)&(__position._M_current)->u1_ = uVar16;\n    *(undefined4 *)((int)&(__position._M_current)->u1_ + 4) = uVar15;\n    (__position._M_current)->u2_ = aVar11;\n    (__position._M_current)->section_order_index_ = uVar9;\n    (os->input_sections_).\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }\n  uVar9 = __args_0->p2align_;\n  uVar17 = __args_0->shndx_ + 4;\n  if (uVar9 != 0) goto LAB_00219f98;\n  bVar1 = uVar17 < 4;\n  if (!bVar1) {\n    iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n    goto LAB_00219f80;\n  }\n  this_01 = (__args_0->u2_).object;\n  pp_Var10 = (this_01->super_Object)._vptr_Object;\n  if (pp_Var10[3] != *(_func_int_varargs **)(pcVar19 + 0x2a9654)) {\n    pp_Var6 = (_func_int_varargs **)(*pp_Var10[3])();\n    uVar17 = __args_0->shndx_ + 4;\n    goto LAB_00219fb4;\n  }\n  pp_Var6 = (_func_int_varargs **)(this_01->super_Object).shnum_;\n  pp_Var10 = *(_func_int_varargs ***)&(this_01->super_Object).field_0x2c;\n  if ((pp_Var6 <= *(_func_int_varargs ***)&os->addralign_) &&\n     ((*(_func_int_varargs ***)&os->addralign_ != pp_Var6 ||\n      (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4))))) {\nLAB_00219f68:\n    Output_section_data::set_output_section((Output_section_data *)this_01,os);\n    return;\n  }\nLAB_00219f4c:\n  do {\n    *(_func_int_varargs ***)&os->addralign_ = pp_Var6;\n    *(_func_int_varargs ***)((int)&os->addralign_ + 4) = pp_Var10;\n    do {\n      while( true ) {\n        iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n        if (bVar1) {\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }\nLAB_00219f80:\n        uVar17 = 0xf3c;\n        (**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);\n        uVar9 = extraout_v1;\nLAB_00219f98:\n        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));\n        if ((uVar9 - 1 & 0x20) == 0) {\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }\n        else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }\nLAB_00219fb4:\n        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }\n        if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;\n        bVar1 = uVar17 < 4;\n      }\n      bVar1 = uVar17 < 4;\n    } while (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4));\n  } while( true );\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "off_t oVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "pointer pIVar5;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var6;" type_identifier (pointer_declarator "**pp_Var6" * (pointer_declarator "*pp_Var6" * identifier)) ;) (declaration "pointer ppOVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var10;" type_identifier (pointer_declarator "**pp_Var10" * (pointer_declarator "*pp_Var10" * identifier)) ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (ERROR "vector<gold::Output_data*,_std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Output_data*,_std" identifier * (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_data*>_> *this_00;" (binary_expression "Output_data*>_> *this_00" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*this_00" * identifier)) ;) (declaration "Output_section *os;" type_identifier (pointer_declarator "*os" * identifier) ;) (declaration "anon_union_4_4_139239c7_for_u2_ aVar11;" type_identifier identifier ;) (declaration "Relobj *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "Output_data *pOVar12;" type_identifier (pointer_declarator "*pOVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "Input_section *__args_0;" type_identifier (pointer_declarator "*__args_0" * identifier) ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "iterator __position_00;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined4 uStack_88;" type_identifier identifier ;) (declaration "undefined4 uStack_84;" type_identifier identifier ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "undefined4 uStack_7c;" type_identifier identifier ;) (declaration "Output_segment_headers *pOStack_74;" type_identifier (pointer_declarator "*pOStack_74" * identifier) ;) (declaration "Output_file *pOStack_70;" type_identifier (pointer_declarator "*pOStack_70" * identifier) ;) (declaration "Output_data *apOStack_24 [3];" type_identifier (pointer_declarator "*apOStack_24 [3]" * (array_declarator "apOStack_24 [3]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);" (assignment_expression "iVar3 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4)" identifier = (call_expression "(*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4)" (parenthesized_expression "(*(code *)PTR_size_and_endianness_004c2370)" ( (pointer_expression "*(code *)PTR_size_and_endianness_004c2370" * (cast_expression "(code *)PTR_size_and_endianness_004c2370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_parameters_004c19b4)" ( (pointer_expression "*(undefined4 *)PTR_parameters_004c19b4" * (cast_expression "(undefined4 *)PTR_parameters_004c19b4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (if_statement "if (iVar3 == 1) {\n    do_sized_write<32,_true>(this,of);\n    return;\n  }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n    do_sized_write<32,_true>(this,of);\n    return;\n  }" { (expression_statement "do_sized_write<32,_true>(this,of);" (comma_expression "do_sized_write<32,_true>(this,of)" (binary_expression "do_sized_write<32" identifier < number_literal) , (binary_expression "_true>(this,of)" identifier > (parenthesized_expression "(this,of)" ( (comma_expression "this,of" identifier , identifier) )))) ;) (return_statement "return;" return ;) })) (if_statement "if (iVar3 == 0) {\n    do_sized_write<32,_false>(this,of);\n    return;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    do_sized_write<32,_false>(this,of);\n    return;\n  }" { (expression_statement "do_sized_write<32,_false>(this,of);" (comma_expression "do_sized_write<32,_false>(this,of)" (binary_expression "do_sized_write<32" identifier < number_literal) , (binary_expression "_false>(this,of)" identifier > (parenthesized_expression "(this,of)" ( (comma_expression "this,of" identifier , identifier) )))) ;) (return_statement "return;" return ;) })) (if_statement "if (iVar3 == 2) {\n    do_sized_write<64,_false>(this,of);\n    return;\n  }" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (compound_statement "{\n    do_sized_write<64,_false>(this,of);\n    return;\n  }" { (expression_statement "do_sized_write<64,_false>(this,of);" (comma_expression "do_sized_write<64,_false>(this,of)" (binary_expression "do_sized_write<64" identifier < number_literal) , (binary_expression "_false>(this,of)" identifier > (parenthesized_expression "(this,of)" ( (comma_expression "this,of" identifier , identifier) )))) ;) (return_statement "return;" return ;) })) (if_statement "if (iVar3 == 3) {\n    do_sized_write<64,_true>(this,of);\n    return;\n  }" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (compound_statement "{\n    do_sized_write<64,_true>(this,of);\n    return;\n  }" { (expression_statement "do_sized_write<64,_true>(this,of);" (comma_expression "do_sized_write<64,_true>(this,of)" (binary_expression "do_sized_write<64" identifier < number_literal) , (binary_expression "_true>(this,of)" identifier > (parenthesized_expression "(this,of)" ( (comma_expression "this,of" identifier , identifier) )))) ;) (return_statement "return;" return ;) })) (expression_statement "pOVar12 = (Output_data *)0x194;" (assignment_expression "pOVar12 = (Output_data *)0x194" identifier = (cast_expression "(Output_data *)0x194" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this_00 = (vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4);" (assignment_expression "this_00 = (vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4)" identifier = (call_expression "(vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4)" (parenthesized_expression "(vector<gold::Output_data*,_std::allocator<gold::Output_data*>_> *)" ( (ERROR "vector<gold::Output_data*,_std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (type_descriptor "Output_data*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_data*>_> *" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*" * identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) )))) ;) (expression_statement "puVar21 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar21 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x194,PTR_s_in_a_linker_script_004c191c + -0x2b28);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x194,PTR_s_in_a_linker_script_004c191c + -0x2b28)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this_00,0x194,PTR_s_in_a_linker_script_004c191c + -0x2b28)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2b28" identifier + number_literal) ))) ;) (expression_statement "apOStack_24[0] = pOVar12;" (assignment_expression "apOStack_24[0] = pOVar12" (subscript_expression "apOStack_24[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (-1 < (int)this_00[0x22].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_end_of_storage) {\n    ppOVar7 = (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)\n              ._M_impl._M_finish;\n    __position_00._M_current =\n         (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n         _M_impl._M_start;\n    if (ppOVar7 ==\n        (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n        _M_impl._M_end_of_storage) {\n      std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n      _M_realloc_insert<gold::Output_data*_const&>(this_00,__position_00,apOStack_24);\n      return;\n    }\n    if (__position_00._M_current == ppOVar7) {\n      *__position_00._M_current = pOVar12;\n      (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl\n      ._M_finish = ppOVar7 + 1;\n      return;\n    }\n    *ppOVar7 = ppOVar7[-1];\n    (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n    _M_finish = ppOVar7 + 1;\n    if (__position_00._M_current != ppOVar7 + -1) {\n      (**(code **)(puVar21 + 0x2abf88))\n                ((int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current),\n                 __position_00._M_current);\n    }\n    *__position_00._M_current = pOVar12;\n    return;\n  }" if (parenthesized_expression "(-1 < (int)this_00[0x22].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_end_of_storage)" ( (field_expression "-1 < (int)this_00[0x22].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_end_of_storage" (field_expression "-1 < (int)this_00[0x22].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "-1 < (int)this_00[0x22].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "-1 < (int)this_00[0x22].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "-1 < (int)this_00[0x22].\n                super__Vector_base<gold::Output_data*,_std" (binary_expression "-1 < (int)this_00[0x22].\n                super__Vector_base<gold" (binary_expression "-1 < (int)this_00[0x22].\n                super__Vector_base" number_literal < (cast_expression "(int)this_00[0x22].\n                super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "this_00[0x22].\n                super__Vector_base" (subscript_expression "this_00[0x22]" identifier [ number_literal ]) . field_identifier))) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    ppOVar7 = (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)\n              ._M_impl._M_finish;\n    __position_00._M_current =\n         (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n         _M_impl._M_start;\n    if (ppOVar7 ==\n        (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n        _M_impl._M_end_of_storage) {\n      std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n      _M_realloc_insert<gold::Output_data*_const&>(this_00,__position_00,apOStack_24);\n      return;\n    }\n    if (__position_00._M_current == ppOVar7) {\n      *__position_00._M_current = pOVar12;\n      (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl\n      ._M_finish = ppOVar7 + 1;\n      return;\n    }\n    *ppOVar7 = ppOVar7[-1];\n    (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n    _M_finish = ppOVar7 + 1;\n    if (__position_00._M_current != ppOVar7 + -1) {\n      (**(code **)(puVar21 + 0x2abf88))\n                ((int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current),\n                 __position_00._M_current);\n    }\n    *__position_00._M_current = pOVar12;\n    return;\n  }" { (expression_statement "ppOVar7 = (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)\n              ._M_impl._M_finish;" (assignment_expression "ppOVar7 = (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)\n              ._M_impl._M_finish" identifier = (field_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)\n              ._M_impl._M_finish" (field_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)\n              ._M_impl" (parenthesized_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)" ( (ERROR "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "this_00->super__Vector_base<gold::Output_data*,_std" (binary_expression "this_00->super__Vector_base<gold::Output_data*" (binary_expression "this_00->super__Vector_base<gold" (field_expression "this_00->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_data*>_>" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "__position_00._M_current =\n         (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n         _M_impl._M_start;" (assignment_expression "__position_00._M_current =\n         (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n         _M_impl._M_start" (field_expression "__position_00._M_current" identifier . field_identifier) = (field_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n         _M_impl._M_start" (field_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n         _M_impl" (parenthesized_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)" ( (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std" (binary_expression "this_00->super__Vector_base<gold" (field_expression "this_00->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (ppOVar7 ==\n        (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n        _M_impl._M_end_of_storage) {\n      std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n      _M_realloc_insert<gold::Output_data*_const&>(this_00,__position_00,apOStack_24);\n      return;\n    }" if (parenthesized_expression "(ppOVar7 ==\n        (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n        _M_impl._M_end_of_storage)" ( (binary_expression "ppOVar7 ==\n        (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n        _M_impl._M_end_of_storage" identifier == (field_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n        _M_impl._M_end_of_storage" (field_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n        _M_impl" (parenthesized_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)" ( (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std" (binary_expression "this_00->super__Vector_base<gold" (field_expression "this_00->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n      std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n      _M_realloc_insert<gold::Output_data*_const&>(this_00,__position_00,apOStack_24);\n      return;\n    }" { (ERROR "std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n      _M_realloc_insert<gold::" (comma_expression "std::vector<gold::Output_data*,_std" identifier (ERROR "::vector<gold::Output_data*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Output_data*>_>::\n      _M_realloc_insert<gold" (binary_expression "Output_data*>_>::\n      _M_realloc_insert" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Output_data*_const&>(this_00,__position_00,apOStack_24);" (binary_expression "Output_data*_const&>(this_00,__position_00,apOStack_24)" (binary_expression "Output_data*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "(this_00,__position_00,apOStack_24)" ( (comma_expression "this_00,__position_00,apOStack_24" identifier , (comma_expression "__position_00,apOStack_24" identifier , identifier)) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (__position_00._M_current == ppOVar7) {\n      *__position_00._M_current = pOVar12;\n      (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl\n      ._M_finish = ppOVar7 + 1;\n      return;\n    }" if (parenthesized_expression "(__position_00._M_current == ppOVar7)" ( (binary_expression "__position_00._M_current == ppOVar7" (field_expression "__position_00._M_current" identifier . field_identifier) == identifier) )) (compound_statement "{\n      *__position_00._M_current = pOVar12;\n      (this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl\n      ._M_finish = ppOVar7 + 1;\n      return;\n    }" { (expression_statement "*__position_00._M_current = pOVar12;" (assignment_expression "*__position_00._M_current = pOVar12" (pointer_expression "*__position_00._M_current" * (field_expression "__position_00._M_current" identifier . field_identifier)) = identifier) ;) (expression_statement "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl\n      ._M_finish = ppOVar7 + 1;" (assignment_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl\n      ._M_finish = ppOVar7 + 1" (field_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl\n      ._M_finish" (field_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl" (parenthesized_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)" ( (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std" (binary_expression "this_00->super__Vector_base<gold" (field_expression "this_00->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "ppOVar7 + 1" identifier + number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "*ppOVar7 = ppOVar7[-1];" (assignment_expression "*ppOVar7 = ppOVar7[-1]" (pointer_expression "*ppOVar7" * identifier) = (subscript_expression "ppOVar7[-1]" identifier [ number_literal ])) ;) (expression_statement "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n    _M_finish = ppOVar7 + 1;" (assignment_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n    _M_finish = ppOVar7 + 1" (field_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n    _M_finish" (field_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl" (parenthesized_expression "(this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)" ( (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "this_00->super__Vector_base<gold::Output_data*,_std" (binary_expression "this_00->super__Vector_base<gold" (field_expression "this_00->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "ppOVar7 + 1" identifier + number_literal)) ;) (if_statement "if (__position_00._M_current != ppOVar7 + -1) {\n      (**(code **)(puVar21 + 0x2abf88))\n                ((int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current),\n                 __position_00._M_current);\n    }" if (parenthesized_expression "(__position_00._M_current != ppOVar7 + -1)" ( (binary_expression "__position_00._M_current != ppOVar7 + -1" (field_expression "__position_00._M_current" identifier . field_identifier) != (binary_expression "ppOVar7 + -1" identifier + number_literal)) )) (compound_statement "{\n      (**(code **)(puVar21 + 0x2abf88))\n                ((int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current),\n                 __position_00._M_current);\n    }" { (expression_statement "(**(code **)(puVar21 + 0x2abf88))\n                ((int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current),\n                 __position_00._M_current);" (call_expression "(**(code **)(puVar21 + 0x2abf88))\n                ((int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current),\n                 __position_00._M_current)" (parenthesized_expression "(**(code **)(puVar21 + 0x2abf88))" ( (pointer_expression "**(code **)(puVar21 + 0x2abf88)" * (pointer_expression "*(code **)(puVar21 + 0x2abf88)" * (cast_expression "(code **)(puVar21 + 0x2abf88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x2abf88)" ( (binary_expression "puVar21 + 0x2abf88" identifier + number_literal) ))))) )) (argument_list "((int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current),\n                 __position_00._M_current)" ( (binary_expression "(int)ppOVar7 - ((int)(ppOVar7 + -1) - (int)__position_00._M_current)" (cast_expression "(int)ppOVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((int)(ppOVar7 + -1) - (int)__position_00._M_current)" ( (binary_expression "(int)(ppOVar7 + -1) - (int)__position_00._M_current" (cast_expression "(int)(ppOVar7 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppOVar7 + -1)" ( (binary_expression "ppOVar7 + -1" identifier + number_literal) ))) - (cast_expression "(int)__position_00._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__position_00._M_current" identifier . field_identifier))) ))) , (field_expression "__position_00._M_current" identifier . field_identifier) ))) ;) })) (expression_statement "*__position_00._M_current = pOVar12;" (assignment_expression "*__position_00._M_current = pOVar12" (pointer_expression "*__position_00._M_current" * (field_expression "__position_00._M_current" identifier . field_identifier)) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar22 = *(code **)(puVar21 + 0x2a7ec0);" (assignment_expression "pcVar22 = *(code **)(puVar21 + 0x2a7ec0)" identifier = (pointer_expression "*(code **)(puVar21 + 0x2a7ec0)" * (cast_expression "(code **)(puVar21 + 0x2a7ec0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x2a7ec0)" ( (binary_expression "puVar21 + 0x2a7ec0" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar21 + 0x2a7dac) + -0x48b4;" (assignment_expression "iVar3 = *(int *)(puVar21 + 0x2a7dac) + -0x48b4" identifier = (binary_expression "*(int *)(puVar21 + 0x2a7dac) + -0x48b4" (pointer_expression "*(int *)(puVar21 + 0x2a7dac)" * (cast_expression "(int *)(puVar21 + 0x2a7dac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x2a7dac)" ( (binary_expression "puVar21 + 0x2a7dac" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar22)(iVar3,0x1065,*(int *)(puVar21 + 0x2a7dac) + -0x3248);" (call_expression "(*pcVar22)(iVar3,0x1065,*(int *)(puVar21 + 0x2a7dac) + -0x3248)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(iVar3,0x1065,*(int *)(puVar21 + 0x2a7dac) + -0x3248)" ( identifier , number_literal , (binary_expression "*(int *)(puVar21 + 0x2a7dac) + -0x3248" (pointer_expression "*(int *)(puVar21 + 0x2a7dac)" * (cast_expression "(int *)(puVar21 + 0x2a7dac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x2a7dac)" ( (binary_expression "puVar21 + 0x2a7dac" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "puVar13 = *(undefined4 **)(iVar3 + 0x34);" (assignment_expression "puVar13 = *(undefined4 **)(iVar3 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(iVar3 + 0x34)" * (cast_expression "(undefined4 **)(iVar3 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x34)" ( (binary_expression "iVar3 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = *(int **)(pcVar22 + 0x2a7d5c);" (assignment_expression "piVar20 = *(int **)(pcVar22 + 0x2a7d5c)" identifier = (pointer_expression "*(int **)(pcVar22 + 0x2a7d5c)" * (cast_expression "(int **)(pcVar22 + 0x2a7d5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x2a7d5c)" ( (binary_expression "pcVar22 + 0x2a7d5c" identifier + number_literal) ))))) ;) (expression_statement "pOStack_74 = this;" (assignment_expression "pOStack_74 = this" identifier = identifier) ;) (expression_statement "pOStack_70 = of;" (assignment_expression "pOStack_70 = of" identifier = identifier) ;) (if_statement "if ((puVar13 == *(undefined4 **)(iVar3 + 0x30)) || (puVar13[-2] != 0)) {\n    iVar4 = *(int *)(*piVar20 + 8);\n    if (iVar4 != 0) {\n      iVar4 = *(int *)(iVar4 + 0x386c);\n      puVar8 = *(undefined4 **)(iVar3 + 0x38);\n      if (0 < iVar4) {\n        pcVar19 = *(code **)(pcVar22 + 0x2a82f8);\n        iVar18 = 0;\n        puVar14 = puVar13;\n        do {\n          while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }\n          puVar13 = puVar14 + 4;\n          iVar18 = iVar18 + 1;\n          *puVar14 = 0;\n          puVar14[2] = 0;\n          puVar14[1] = uStack_84;\n          puVar14[3] = 0xffffffff;\n          *(undefined4 **)(iVar3 + 0x34) = puVar13;\n          puVar14 = puVar13;\n        } while (iVar18 != iVar4);\n      }\nLAB_00219d38:\n      uStack_80 = 0;\n      uStack_88 = 0;\n      uStack_7c = 0xffffffff;\n      if (puVar13 == puVar8) {\n        (**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88);\n      }\n      else {\n        *puVar13 = 0;\n        puVar13[2] = 0;\n        puVar13[1] = uStack_84;\n        puVar13[3] = 0xffffffff;\n        *(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;\n      }\n      goto LAB_00219d68;\n    }\n  }\n  else {\nLAB_00219d68:\n    iVar4 = *(int *)(*piVar20 + 0xc);\n    iVar18 = *(int *)(pcVar22 + 0x2a7cc4);\n    if (iVar4 != 0) {\n      iVar4 = **(int **)(iVar4 + 4);\n      if (iVar4 == 0x20) {\n        iVar18 = 8;\n      }\n      else {\n        iVar18 = 0x10;\n        if (iVar4 != 0x40) goto LAB_00219e74;\n      }\n      if ((-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3)) {\n        *(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;\n        *(undefined4 *)(iVar3 + 0x10) = 0;\n        *(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;\n        return;\n      }\n      iVar18 = *(int *)(pcVar22 + 0x2a7cc4) + -0x2b80;\n      (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18);\n    }\n    (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x69,iVar18 + -0x2998);\n  }" if (parenthesized_expression "((puVar13 == *(undefined4 **)(iVar3 + 0x30)) || (puVar13[-2] != 0))" ( (binary_expression "(puVar13 == *(undefined4 **)(iVar3 + 0x30)) || (puVar13[-2] != 0)" (parenthesized_expression "(puVar13 == *(undefined4 **)(iVar3 + 0x30))" ( (binary_expression "puVar13 == *(undefined4 **)(iVar3 + 0x30)" identifier == (pointer_expression "*(undefined4 **)(iVar3 + 0x30)" * (cast_expression "(undefined4 **)(iVar3 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) )) || (parenthesized_expression "(puVar13[-2] != 0)" ( (binary_expression "puVar13[-2] != 0" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    iVar4 = *(int *)(*piVar20 + 8);\n    if (iVar4 != 0) {\n      iVar4 = *(int *)(iVar4 + 0x386c);\n      puVar8 = *(undefined4 **)(iVar3 + 0x38);\n      if (0 < iVar4) {\n        pcVar19 = *(code **)(pcVar22 + 0x2a82f8);\n        iVar18 = 0;\n        puVar14 = puVar13;\n        do {\n          while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }\n          puVar13 = puVar14 + 4;\n          iVar18 = iVar18 + 1;\n          *puVar14 = 0;\n          puVar14[2] = 0;\n          puVar14[1] = uStack_84;\n          puVar14[3] = 0xffffffff;\n          *(undefined4 **)(iVar3 + 0x34) = puVar13;\n          puVar14 = puVar13;\n        } while (iVar18 != iVar4);\n      }\nLAB_00219d38:\n      uStack_80 = 0;\n      uStack_88 = 0;\n      uStack_7c = 0xffffffff;\n      if (puVar13 == puVar8) {\n        (**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88);\n      }\n      else {\n        *puVar13 = 0;\n        puVar13[2] = 0;\n        puVar13[1] = uStack_84;\n        puVar13[3] = 0xffffffff;\n        *(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;\n      }\n      goto LAB_00219d68;\n    }\n  }" { (expression_statement "iVar4 = *(int *)(*piVar20 + 8);" (assignment_expression "iVar4 = *(int *)(*piVar20 + 8)" identifier = (pointer_expression "*(int *)(*piVar20 + 8)" * (cast_expression "(int *)(*piVar20 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar20 + 8)" ( (binary_expression "*piVar20 + 8" (pointer_expression "*piVar20" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar4 != 0) {\n      iVar4 = *(int *)(iVar4 + 0x386c);\n      puVar8 = *(undefined4 **)(iVar3 + 0x38);\n      if (0 < iVar4) {\n        pcVar19 = *(code **)(pcVar22 + 0x2a82f8);\n        iVar18 = 0;\n        puVar14 = puVar13;\n        do {\n          while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }\n          puVar13 = puVar14 + 4;\n          iVar18 = iVar18 + 1;\n          *puVar14 = 0;\n          puVar14[2] = 0;\n          puVar14[1] = uStack_84;\n          puVar14[3] = 0xffffffff;\n          *(undefined4 **)(iVar3 + 0x34) = puVar13;\n          puVar14 = puVar13;\n        } while (iVar18 != iVar4);\n      }\nLAB_00219d38:\n      uStack_80 = 0;\n      uStack_88 = 0;\n      uStack_7c = 0xffffffff;\n      if (puVar13 == puVar8) {\n        (**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88);\n      }\n      else {\n        *puVar13 = 0;\n        puVar13[2] = 0;\n        puVar13[1] = uStack_84;\n        puVar13[3] = 0xffffffff;\n        *(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;\n      }\n      goto LAB_00219d68;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar4 = *(int *)(iVar4 + 0x386c);\n      puVar8 = *(undefined4 **)(iVar3 + 0x38);\n      if (0 < iVar4) {\n        pcVar19 = *(code **)(pcVar22 + 0x2a82f8);\n        iVar18 = 0;\n        puVar14 = puVar13;\n        do {\n          while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }\n          puVar13 = puVar14 + 4;\n          iVar18 = iVar18 + 1;\n          *puVar14 = 0;\n          puVar14[2] = 0;\n          puVar14[1] = uStack_84;\n          puVar14[3] = 0xffffffff;\n          *(undefined4 **)(iVar3 + 0x34) = puVar13;\n          puVar14 = puVar13;\n        } while (iVar18 != iVar4);\n      }\nLAB_00219d38:\n      uStack_80 = 0;\n      uStack_88 = 0;\n      uStack_7c = 0xffffffff;\n      if (puVar13 == puVar8) {\n        (**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88);\n      }\n      else {\n        *puVar13 = 0;\n        puVar13[2] = 0;\n        puVar13[1] = uStack_84;\n        puVar13[3] = 0xffffffff;\n        *(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;\n      }\n      goto LAB_00219d68;\n    }" { (expression_statement "iVar4 = *(int *)(iVar4 + 0x386c);" (assignment_expression "iVar4 = *(int *)(iVar4 + 0x386c)" identifier = (pointer_expression "*(int *)(iVar4 + 0x386c)" * (cast_expression "(int *)(iVar4 + 0x386c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x386c)" ( (binary_expression "iVar4 + 0x386c" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = *(undefined4 **)(iVar3 + 0x38);" (assignment_expression "puVar8 = *(undefined4 **)(iVar3 + 0x38)" identifier = (pointer_expression "*(undefined4 **)(iVar3 + 0x38)" * (cast_expression "(undefined4 **)(iVar3 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar4) {\n        pcVar19 = *(code **)(pcVar22 + 0x2a82f8);\n        iVar18 = 0;\n        puVar14 = puVar13;\n        do {\n          while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }\n          puVar13 = puVar14 + 4;\n          iVar18 = iVar18 + 1;\n          *puVar14 = 0;\n          puVar14[2] = 0;\n          puVar14[1] = uStack_84;\n          puVar14[3] = 0xffffffff;\n          *(undefined4 **)(iVar3 + 0x34) = puVar13;\n          puVar14 = puVar13;\n        } while (iVar18 != iVar4);\n      }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n        pcVar19 = *(code **)(pcVar22 + 0x2a82f8);\n        iVar18 = 0;\n        puVar14 = puVar13;\n        do {\n          while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }\n          puVar13 = puVar14 + 4;\n          iVar18 = iVar18 + 1;\n          *puVar14 = 0;\n          puVar14[2] = 0;\n          puVar14[1] = uStack_84;\n          puVar14[3] = 0xffffffff;\n          *(undefined4 **)(iVar3 + 0x34) = puVar13;\n          puVar14 = puVar13;\n        } while (iVar18 != iVar4);\n      }" { (expression_statement "pcVar19 = *(code **)(pcVar22 + 0x2a82f8);" (assignment_expression "pcVar19 = *(code **)(pcVar22 + 0x2a82f8)" identifier = (pointer_expression "*(code **)(pcVar22 + 0x2a82f8)" * (cast_expression "(code **)(pcVar22 + 0x2a82f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x2a82f8)" ( (binary_expression "pcVar22 + 0x2a82f8" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }\n          puVar13 = puVar14 + 4;\n          iVar18 = iVar18 + 1;\n          *puVar14 = 0;\n          puVar14[2] = 0;\n          puVar14[1] = uStack_84;\n          puVar14[3] = 0xffffffff;\n          *(undefined4 **)(iVar3 + 0x34) = puVar13;\n          puVar14 = puVar13;\n        } while (iVar18 != iVar4);" do (compound_statement "{\n          while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }\n          puVar13 = puVar14 + 4;\n          iVar18 = iVar18 + 1;\n          *puVar14 = 0;\n          puVar14[2] = 0;\n          puVar14[1] = uStack_84;\n          puVar14[3] = 0xffffffff;\n          *(undefined4 **)(iVar3 + 0x34) = puVar13;\n          puVar14 = puVar13;\n        }" { (while_statement "while( true ) {\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uStack_80 = 0;\n            uStack_7c = 0xffffffff;\n            uStack_88 = 0;\n            if (puVar14 != puVar8) break;\n            iVar18 = iVar18 + 1;\n            (*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);\n            puVar13 = *(undefined4 **)(iVar3 + 0x34);\n            puVar8 = *(undefined4 **)(iVar3 + 0x38);\n            puVar14 = puVar13;\n            if (iVar18 == iVar4) goto LAB_00219d38;\n          }" { (expression_statement "uStack_80 = 0;" (assignment_expression "uStack_80 = 0" identifier = number_literal) ;) (expression_statement "uStack_7c = 0xffffffff;" (assignment_expression "uStack_7c = 0xffffffff" identifier = number_literal) ;) (expression_statement "uStack_88 = 0;" (assignment_expression "uStack_88 = 0" identifier = number_literal) ;) (if_statement "if (puVar14 != puVar8) break;" if (parenthesized_expression "(puVar14 != puVar8)" ( (binary_expression "puVar14 != puVar8" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88);" (call_expression "(*pcVar19)(iVar3 + 0x30,puVar14,&uStack_88)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar3 + 0x30,puVar14,&uStack_88)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) , identifier , (pointer_expression "&uStack_88" & identifier) ))) ;) (expression_statement "puVar13 = *(undefined4 **)(iVar3 + 0x34);" (assignment_expression "puVar13 = *(undefined4 **)(iVar3 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(iVar3 + 0x34)" * (cast_expression "(undefined4 **)(iVar3 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x34)" ( (binary_expression "iVar3 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = *(undefined4 **)(iVar3 + 0x38);" (assignment_expression "puVar8 = *(undefined4 **)(iVar3 + 0x38)" identifier = (pointer_expression "*(undefined4 **)(iVar3 + 0x38)" * (cast_expression "(undefined4 **)(iVar3 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) (if_statement "if (iVar18 == iVar4) goto LAB_00219d38;" if (parenthesized_expression "(iVar18 == iVar4)" ( (binary_expression "iVar18 == iVar4" identifier == identifier) )) (goto_statement "goto LAB_00219d38;" goto statement_identifier ;)) })) (expression_statement "puVar13 = puVar14 + 4;" (assignment_expression "puVar13 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[1] = uStack_84;" (assignment_expression "puVar14[1] = uStack_84" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = 0xffffffff;" (assignment_expression "puVar14[3] = 0xffffffff" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar3 + 0x34) = puVar13;" (assignment_expression "*(undefined4 **)(iVar3 + 0x34) = puVar13" (pointer_expression "*(undefined4 **)(iVar3 + 0x34)" * (cast_expression "(undefined4 **)(iVar3 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x34)" ( (binary_expression "iVar3 + 0x34" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "(iVar18 != iVar4)" ( (binary_expression "iVar18 != iVar4" identifier != identifier) )) ;) })) (labeled_statement "LAB_00219d38:\n      uStack_80 = 0;" statement_identifier : (expression_statement "uStack_80 = 0;" (assignment_expression "uStack_80 = 0" identifier = number_literal) ;)) (expression_statement "uStack_88 = 0;" (assignment_expression "uStack_88 = 0" identifier = number_literal) ;) (expression_statement "uStack_7c = 0xffffffff;" (assignment_expression "uStack_7c = 0xffffffff" identifier = number_literal) ;) (if_statement "if (puVar13 == puVar8) {\n        (**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88);\n      }\n      else {\n        *puVar13 = 0;\n        puVar13[2] = 0;\n        puVar13[1] = uStack_84;\n        puVar13[3] = 0xffffffff;\n        *(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;\n      }" if (parenthesized_expression "(puVar13 == puVar8)" ( (binary_expression "puVar13 == puVar8" identifier == identifier) )) (compound_statement "{\n        (**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88);\n      }" { (expression_statement "(**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88);" (call_expression "(**(code **)(pcVar22 + 0x2a82f8))(iVar3 + 0x30,puVar13,&uStack_88)" (parenthesized_expression "(**(code **)(pcVar22 + 0x2a82f8))" ( (pointer_expression "**(code **)(pcVar22 + 0x2a82f8)" * (pointer_expression "*(code **)(pcVar22 + 0x2a82f8)" * (cast_expression "(code **)(pcVar22 + 0x2a82f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x2a82f8)" ( (binary_expression "pcVar22 + 0x2a82f8" identifier + number_literal) ))))) )) (argument_list "(iVar3 + 0x30,puVar13,&uStack_88)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) , identifier , (pointer_expression "&uStack_88" & identifier) ))) ;) }) (else_clause "else {\n        *puVar13 = 0;\n        puVar13[2] = 0;\n        puVar13[1] = uStack_84;\n        puVar13[3] = 0xffffffff;\n        *(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;\n      }" else (compound_statement "{\n        *puVar13 = 0;\n        puVar13[2] = 0;\n        puVar13[1] = uStack_84;\n        puVar13[3] = 0xffffffff;\n        *(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;\n      }" { (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[2] = 0;" (assignment_expression "puVar13[2] = 0" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13[1] = uStack_84;" (assignment_expression "puVar13[1] = uStack_84" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = 0xffffffff;" (assignment_expression "puVar13[3] = 0xffffffff" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar3 + 0x34) = puVar13 + 4;" (assignment_expression "*(undefined4 **)(iVar3 + 0x34) = puVar13 + 4" (pointer_expression "*(undefined4 **)(iVar3 + 0x34)" * (cast_expression "(undefined4 **)(iVar3 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x34)" ( (binary_expression "iVar3 + 0x34" identifier + number_literal) )))) = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) }))) (goto_statement "goto LAB_00219d68;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00219d68:\n    iVar4 = *(int *)(*piVar20 + 0xc);\n    iVar18 = *(int *)(pcVar22 + 0x2a7cc4);\n    if (iVar4 != 0) {\n      iVar4 = **(int **)(iVar4 + 4);\n      if (iVar4 == 0x20) {\n        iVar18 = 8;\n      }\n      else {\n        iVar18 = 0x10;\n        if (iVar4 != 0x40) goto LAB_00219e74;\n      }\n      if ((-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3)) {\n        *(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;\n        *(undefined4 *)(iVar3 + 0x10) = 0;\n        *(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;\n        return;\n      }\n      iVar18 = *(int *)(pcVar22 + 0x2a7cc4) + -0x2b80;\n      (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18);\n    }\n    (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x69,iVar18 + -0x2998);\n  }" else (compound_statement "{\nLAB_00219d68:\n    iVar4 = *(int *)(*piVar20 + 0xc);\n    iVar18 = *(int *)(pcVar22 + 0x2a7cc4);\n    if (iVar4 != 0) {\n      iVar4 = **(int **)(iVar4 + 4);\n      if (iVar4 == 0x20) {\n        iVar18 = 8;\n      }\n      else {\n        iVar18 = 0x10;\n        if (iVar4 != 0x40) goto LAB_00219e74;\n      }\n      if ((-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3)) {\n        *(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;\n        *(undefined4 *)(iVar3 + 0x10) = 0;\n        *(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;\n        return;\n      }\n      iVar18 = *(int *)(pcVar22 + 0x2a7cc4) + -0x2b80;\n      (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18);\n    }\n    (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x69,iVar18 + -0x2998);\n  }" { (labeled_statement "LAB_00219d68:\n    iVar4 = *(int *)(*piVar20 + 0xc);" statement_identifier : (expression_statement "iVar4 = *(int *)(*piVar20 + 0xc);" (assignment_expression "iVar4 = *(int *)(*piVar20 + 0xc)" identifier = (pointer_expression "*(int *)(*piVar20 + 0xc)" * (cast_expression "(int *)(*piVar20 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar20 + 0xc)" ( (binary_expression "*piVar20 + 0xc" (pointer_expression "*piVar20" * identifier) + number_literal) ))))) ;)) (expression_statement "iVar18 = *(int *)(pcVar22 + 0x2a7cc4);" (assignment_expression "iVar18 = *(int *)(pcVar22 + 0x2a7cc4)" identifier = (pointer_expression "*(int *)(pcVar22 + 0x2a7cc4)" * (cast_expression "(int *)(pcVar22 + 0x2a7cc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x2a7cc4)" ( (binary_expression "pcVar22 + 0x2a7cc4" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 != 0) {\n      iVar4 = **(int **)(iVar4 + 4);\n      if (iVar4 == 0x20) {\n        iVar18 = 8;\n      }\n      else {\n        iVar18 = 0x10;\n        if (iVar4 != 0x40) goto LAB_00219e74;\n      }\n      if ((-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3)) {\n        *(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;\n        *(undefined4 *)(iVar3 + 0x10) = 0;\n        *(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;\n        return;\n      }\n      iVar18 = *(int *)(pcVar22 + 0x2a7cc4) + -0x2b80;\n      (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18);\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar4 = **(int **)(iVar4 + 4);\n      if (iVar4 == 0x20) {\n        iVar18 = 8;\n      }\n      else {\n        iVar18 = 0x10;\n        if (iVar4 != 0x40) goto LAB_00219e74;\n      }\n      if ((-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3)) {\n        *(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;\n        *(undefined4 *)(iVar3 + 0x10) = 0;\n        *(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;\n        return;\n      }\n      iVar18 = *(int *)(pcVar22 + 0x2a7cc4) + -0x2b80;\n      (**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18);\n    }" { (expression_statement "iVar4 = **(int **)(iVar4 + 4);" (assignment_expression "iVar4 = **(int **)(iVar4 + 4)" identifier = (pointer_expression "**(int **)(iVar4 + 4)" * (pointer_expression "*(int **)(iVar4 + 4)" * (cast_expression "(int **)(iVar4 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))))) ;) (if_statement "if (iVar4 == 0x20) {\n        iVar18 = 8;\n      }\n      else {\n        iVar18 = 0x10;\n        if (iVar4 != 0x40) goto LAB_00219e74;\n      }" if (parenthesized_expression "(iVar4 == 0x20)" ( (binary_expression "iVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n        iVar18 = 8;\n      }" { (expression_statement "iVar18 = 8;" (assignment_expression "iVar18 = 8" identifier = number_literal) ;) }) (else_clause "else {\n        iVar18 = 0x10;\n        if (iVar4 != 0x40) goto LAB_00219e74;\n      }" else (compound_statement "{\n        iVar18 = 0x10;\n        if (iVar4 != 0x40) goto LAB_00219e74;\n      }" { (expression_statement "iVar18 = 0x10;" (assignment_expression "iVar18 = 0x10" identifier = number_literal) ;) (if_statement "if (iVar4 != 0x40) goto LAB_00219e74;" if (parenthesized_expression "(iVar4 != 0x40)" ( (binary_expression "iVar4 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_00219e74;" goto statement_identifier ;)) }))) (if_statement "if ((-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3)) {\n        *(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;\n        *(undefined4 *)(iVar3 + 0x10) = 0;\n        *(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;\n        return;\n      }" if (parenthesized_expression "((-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3))" ( (binary_expression "(-1 < *(int *)(iVar3 + 0x20) << 1) && (-1 < *(int *)(iVar3 + 0x20) << 3)" (parenthesized_expression "(-1 < *(int *)(iVar3 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar3 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar3 + 0x20) << 1" (pointer_expression "*(int *)(iVar3 + 0x20)" * (cast_expression "(int *)(iVar3 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) << number_literal)) )) && (parenthesized_expression "(-1 < *(int *)(iVar3 + 0x20) << 3)" ( (binary_expression "-1 < *(int *)(iVar3 + 0x20) << 3" number_literal < (binary_expression "*(int *)(iVar3 + 0x20) << 3" (pointer_expression "*(int *)(iVar3 + 0x20)" * (cast_expression "(int *)(iVar3 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) << number_literal)) ))) )) (compound_statement "{\n        *(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;\n        *(undefined4 *)(iVar3 + 0x10) = 0;\n        *(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;\n        return;\n      }" { (expression_statement "*(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18;" (assignment_expression "*(int *)(iVar3 + 0x14) = (*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = (binary_expression "(*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4) * iVar18" (parenthesized_expression "(*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4)" ( (binary_expression "*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30) >> 4" (binary_expression "*(int *)(iVar3 + 0x34) - *(int *)(iVar3 + 0x30)" (pointer_expression "*(int *)(iVar3 + 0x34)" * (cast_expression "(int *)(iVar3 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x34)" ( (binary_expression "iVar3 + 0x34" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar3 + 0x30)" * (cast_expression "(int *)(iVar3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) >> number_literal) )) * identifier)) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40;" (assignment_expression "*(byte *)(iVar3 + 0x20) = *(byte *)(iVar3 + 0x20) & 0xbf | 0x40" (pointer_expression "*(byte *)(iVar3 + 0x20)" * (cast_expression "(byte *)(iVar3 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar3 + 0x20) & 0xbf | 0x40" (binary_expression "*(byte *)(iVar3 + 0x20) & 0xbf" (pointer_expression "*(byte *)(iVar3 + 0x20)" * (cast_expression "(byte *)(iVar3 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "iVar18 = *(int *)(pcVar22 + 0x2a7cc4) + -0x2b80;" (assignment_expression "iVar18 = *(int *)(pcVar22 + 0x2a7cc4) + -0x2b80" identifier = (binary_expression "*(int *)(pcVar22 + 0x2a7cc4) + -0x2b80" (pointer_expression "*(int *)(pcVar22 + 0x2a7cc4)" * (cast_expression "(int *)(pcVar22 + 0x2a7cc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x2a7cc4)" ( (binary_expression "pcVar22 + 0x2a7cc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18);" (call_expression "(**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18)" (parenthesized_expression "(**(code **)(pcVar22 + 0x2a7dd8))" ( (pointer_expression "**(code **)(pcVar22 + 0x2a7dd8)" * (pointer_expression "*(code **)(pcVar22 + 0x2a7dd8)" * (cast_expression "(code **)(pcVar22 + 0x2a7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x2a7dd8)" ( (binary_expression "pcVar22 + 0x2a7dd8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar22 + 0x2a7624) + 0x3574,0x218,iVar18)" ( (binary_expression "*(int *)(pcVar22 + 0x2a7624) + 0x3574" (pointer_expression "*(int *)(pcVar22 + 0x2a7624)" * (cast_expression "(int *)(pcVar22 + 0x2a7624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x2a7624)" ( (binary_expression "pcVar22 + 0x2a7624" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) })) (expression_statement "(**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x69,iVar18 + -0x2998);" (call_expression "(**(code **)(pcVar22 + 0x2a7dd8))(*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x69,iVar18 + -0x2998)" (parenthesized_expression "(**(code **)(pcVar22 + 0x2a7dd8))" ( (pointer_expression "**(code **)(pcVar22 + 0x2a7dd8)" * (pointer_expression "*(code **)(pcVar22 + 0x2a7dd8)" * (cast_expression "(code **)(pcVar22 + 0x2a7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x2a7dd8)" ( (binary_expression "pcVar22 + 0x2a7dd8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x69,iVar18 + -0x2998)" ( (binary_expression "*(int *)(pcVar22 + 0x2a7624) + -0x9b8" (pointer_expression "*(int *)(pcVar22 + 0x2a7624)" * (cast_expression "(int *)(pcVar22 + 0x2a7624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x2a7624)" ( (binary_expression "pcVar22 + 0x2a7624" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar18 + -0x2998" identifier + number_literal) ))) ;) }))) (expression_statement "(**(code **)(pcVar22 + 0x2a7dd8))\n            (*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x5c,*(int *)(pcVar22 + 0x2a7cc4) + -0x29c4);" (call_expression "(**(code **)(pcVar22 + 0x2a7dd8))\n            (*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x5c,*(int *)(pcVar22 + 0x2a7cc4) + -0x29c4)" (parenthesized_expression "(**(code **)(pcVar22 + 0x2a7dd8))" ( (pointer_expression "**(code **)(pcVar22 + 0x2a7dd8)" * (pointer_expression "*(code **)(pcVar22 + 0x2a7dd8)" * (cast_expression "(code **)(pcVar22 + 0x2a7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x2a7dd8)" ( (binary_expression "pcVar22 + 0x2a7dd8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar22 + 0x2a7624) + -0x9b8,0x5c,*(int *)(pcVar22 + 0x2a7cc4) + -0x29c4)" ( (binary_expression "*(int *)(pcVar22 + 0x2a7624) + -0x9b8" (pointer_expression "*(int *)(pcVar22 + 0x2a7624)" * (cast_expression "(int *)(pcVar22 + 0x2a7624)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x2a7624)" ( (binary_expression "pcVar22 + 0x2a7624" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar22 + 0x2a7cc4) + -0x29c4" (pointer_expression "*(int *)(pcVar22 + 0x2a7cc4)" * (cast_expression "(int *)(pcVar22 + 0x2a7cc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x2a7cc4)" ( (binary_expression "pcVar22 + 0x2a7cc4" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_00219e74:\n  __args_0 = (Input_section *)&DAT_00000793;" statement_identifier : (expression_statement "__args_0 = (Input_section *)&DAT_00000793;" (assignment_expression "__args_0 = (Input_section *)&DAT_00000793" identifier = (cast_expression "(Input_section *)&DAT_00000793" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000793" & identifier))) ;)) (expression_statement "pcVar19 = *(code **)(pcVar22 + 0x2a7dd8);" (assignment_expression "pcVar19 = *(code **)(pcVar22 + 0x2a7dd8)" identifier = (pointer_expression "*(code **)(pcVar22 + 0x2a7dd8)" * (cast_expression "(code **)(pcVar22 + 0x2a7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x2a7dd8)" ( (binary_expression "pcVar22 + 0x2a7dd8" identifier + number_literal) ))))) ;) (expression_statement "os = (Output_section *)(*(int *)(pcVar22 + 0x2a7cc4) + -0x48b4);" (assignment_expression "os = (Output_section *)(*(int *)(pcVar22 + 0x2a7cc4) + -0x48b4)" identifier = (cast_expression "(Output_section *)(*(int *)(pcVar22 + 0x2a7cc4) + -0x48b4)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar22 + 0x2a7cc4) + -0x48b4)" ( (binary_expression "*(int *)(pcVar22 + 0x2a7cc4) + -0x48b4" (pointer_expression "*(int *)(pcVar22 + 0x2a7cc4)" * (cast_expression "(int *)(pcVar22 + 0x2a7cc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x2a7cc4)" ( (binary_expression "pcVar22 + 0x2a7cc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar19)(os,0x793,*(int *)(pcVar22 + 0x2a7cc4) + -0x2cc0);" (call_expression "(*pcVar19)(os,0x793,*(int *)(pcVar22 + 0x2a7cc4) + -0x2cc0)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(os,0x793,*(int *)(pcVar22 + 0x2a7cc4) + -0x2cc0)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar22 + 0x2a7cc4) + -0x2cc0" (pointer_expression "*(int *)(pcVar22 + 0x2a7cc4)" * (cast_expression "(int *)(pcVar22 + 0x2a7cc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x2a7cc4)" ( (binary_expression "pcVar22 + 0x2a7cc4" identifier + number_literal) )))) + number_literal) ))) ;) (ERROR "__position._M_current =\n       (os->input_sections_).\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::" (comma_expression "__position._M_current =\n       (os->input_sections_).\n       super__Vector_base<gold::Output_section::Input_section,_std" (assignment_expression "__position._M_current =\n       (os->input_sections_).\n       super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(os->input_sections_).\n       super__Vector_base<gold" (field_expression "(os->input_sections_).\n       super__Vector_base" (parenthesized_expression "(os->input_sections_)" ( (field_expression "os->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_section::Input_section>_>\n       ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n       ._M_impl._M_finish;" (field_expression "Input_section>_>\n       ._M_impl._M_finish" (field_expression "Input_section>_>\n       ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (if_statement "if (__position._M_current ==\n      (os->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_start) {\n    oVar2 = (os->super_Output_data).data_size_;\n    *(undefined4 *)&os->first_input_offset_ = *(undefined4 *)&(os->super_Output_data).data_size_;\n    *(int *)((int)&os->first_input_offset_ + 4) = (int)oVar2;\n    pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;\n  }\n  else {\n    pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;\n  }" if (parenthesized_expression "(__position._M_current ==\n      (os->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_start)" ( (ERROR "__position._M_current ==\n      (os->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "__position._M_current ==\n      (os->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "__position._M_current ==\n      (os->input_sections_).\n      super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) == (binary_expression "(os->input_sections_).\n      super__Vector_base<gold" (field_expression "(os->input_sections_).\n      super__Vector_base" (parenthesized_expression "(os->input_sections_)" ( (field_expression "os->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Input_section>_>\n      ._M_impl._M_start" (field_expression "Input_section>_>\n      ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    oVar2 = (os->super_Output_data).data_size_;\n    *(undefined4 *)&os->first_input_offset_ = *(undefined4 *)&(os->super_Output_data).data_size_;\n    *(int *)((int)&os->first_input_offset_ + 4) = (int)oVar2;\n    pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;\n  }" { (expression_statement "oVar2 = (os->super_Output_data).data_size_;" (assignment_expression "oVar2 = (os->super_Output_data).data_size_" identifier = (field_expression "(os->super_Output_data).data_size_" (parenthesized_expression "(os->super_Output_data)" ( (field_expression "os->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)&os->first_input_offset_ = *(undefined4 *)&(os->super_Output_data).data_size_;" (assignment_expression "*(undefined4 *)&os->first_input_offset_ = *(undefined4 *)&(os->super_Output_data).data_size_" (pointer_expression "*(undefined4 *)&os->first_input_offset_" * (cast_expression "(undefined4 *)&os->first_input_offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&os->first_input_offset_" & (field_expression "os->first_input_offset_" identifier -> field_identifier)))) = (pointer_expression "*(undefined4 *)&(os->super_Output_data).data_size_" * (cast_expression "(undefined4 *)&(os->super_Output_data).data_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(os->super_Output_data).data_size_" & (field_expression "(os->super_Output_data).data_size_" (parenthesized_expression "(os->super_Output_data)" ( (field_expression "os->super_Output_data" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(int *)((int)&os->first_input_offset_ + 4) = (int)oVar2;" (assignment_expression "*(int *)((int)&os->first_input_offset_ + 4) = (int)oVar2" (pointer_expression "*(int *)((int)&os->first_input_offset_ + 4)" * (cast_expression "(int *)((int)&os->first_input_offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&os->first_input_offset_ + 4)" ( (binary_expression "(int)&os->first_input_offset_ + 4" (cast_expression "(int)&os->first_input_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&os->first_input_offset_" & (field_expression "os->first_input_offset_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)oVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (ERROR "pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::" (assignment_expression "pIVar5 = (os->input_sections_).\n             super__Vector_base<gold" identifier = (binary_expression "(os->input_sections_).\n             super__Vector_base<gold" (field_expression "(os->input_sections_).\n             super__Vector_base" (parenthesized_expression "(os->input_sections_)" ( (field_expression "os->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;" 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_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n             ._M_impl._M_end_of_storage;" (field_expression "Input_section>_>\n             ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n             ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) }) (else_clause "else {\n    pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;\n  }" else (compound_statement "{\n    pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;\n  }" { (ERROR "pIVar5 = (os->input_sections_).\n             super__Vector_base<gold::" (assignment_expression "pIVar5 = (os->input_sections_).\n             super__Vector_base<gold" identifier = (binary_expression "(os->input_sections_).\n             super__Vector_base<gold" (field_expression "(os->input_sections_).\n             super__Vector_base" (parenthesized_expression "(os->input_sections_)" ( (field_expression "os->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_end_of_storage;" 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_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n             ._M_impl._M_end_of_storage;" (field_expression "Input_section>_>\n             ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n             ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) }))) (if_statement "if (__position._M_current == pIVar5) {\n    std::\n    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&os->input_sections_,__position,__args_0);\n  }\n  else {\n    uVar17 = __args_0->p2align_;\n    uVar16 = *(undefined4 *)&__args_0->u1_;\n    uVar15 = *(undefined4 *)((int)&__args_0->u1_ + 4);\n    aVar11 = __args_0->u2_;\n    uVar9 = __args_0->section_order_index_;\n    (__position._M_current)->shndx_ = __args_0->shndx_;\n    (__position._M_current)->p2align_ = uVar17;\n    *(undefined4 *)&(__position._M_current)->u1_ = uVar16;\n    *(undefined4 *)((int)&(__position._M_current)->u1_ + 4) = uVar15;\n    (__position._M_current)->u2_ = aVar11;\n    (__position._M_current)->section_order_index_ = uVar9;\n    (os->input_sections_).\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }" if (parenthesized_expression "(__position._M_current == pIVar5)" ( (binary_expression "__position._M_current == pIVar5" (field_expression "__position._M_current" identifier . field_identifier) == identifier) )) (compound_statement "{\n    std::\n    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&os->input_sections_,__position,__args_0);\n  }" { (labeled_statement "std::\n    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&os->input_sections_,__position,__args_0);" statement_identifier (ERROR "::\n    vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&os->input_sections_,__position,__args_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_realloc_insert<const_gold::Output_section::Input_section&>\n              (&os->input_sections_,__position,__args_0);" statement_identifier (ERROR "::Input_section>_>\n    ::_M_realloc_insert<const_gold:" : : (binary_expression "Input_section>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section&>\n              (&os->input_sections_,__position,__args_0);" statement_identifier : (ERROR ":" :) (expression_statement "Input_section&>\n              (&os->input_sections_,__position,__args_0);" (binary_expression "Input_section&>\n              (&os->input_sections_,__position,__args_0)" identifier (ERROR "&" &) > (parenthesized_expression "(&os->input_sections_,__position,__args_0)" ( (comma_expression "&os->input_sections_,__position,__args_0" (pointer_expression "&os->input_sections_" & (field_expression "os->input_sections_" identifier -> field_identifier)) , (comma_expression "__position,__args_0" identifier , identifier)) ))) ;))))) }) (else_clause "else {\n    uVar17 = __args_0->p2align_;\n    uVar16 = *(undefined4 *)&__args_0->u1_;\n    uVar15 = *(undefined4 *)((int)&__args_0->u1_ + 4);\n    aVar11 = __args_0->u2_;\n    uVar9 = __args_0->section_order_index_;\n    (__position._M_current)->shndx_ = __args_0->shndx_;\n    (__position._M_current)->p2align_ = uVar17;\n    *(undefined4 *)&(__position._M_current)->u1_ = uVar16;\n    *(undefined4 *)((int)&(__position._M_current)->u1_ + 4) = uVar15;\n    (__position._M_current)->u2_ = aVar11;\n    (__position._M_current)->section_order_index_ = uVar9;\n    (os->input_sections_).\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }" else (compound_statement "{\n    uVar17 = __args_0->p2align_;\n    uVar16 = *(undefined4 *)&__args_0->u1_;\n    uVar15 = *(undefined4 *)((int)&__args_0->u1_ + 4);\n    aVar11 = __args_0->u2_;\n    uVar9 = __args_0->section_order_index_;\n    (__position._M_current)->shndx_ = __args_0->shndx_;\n    (__position._M_current)->p2align_ = uVar17;\n    *(undefined4 *)&(__position._M_current)->u1_ = uVar16;\n    *(undefined4 *)((int)&(__position._M_current)->u1_ + 4) = uVar15;\n    (__position._M_current)->u2_ = aVar11;\n    (__position._M_current)->section_order_index_ = uVar9;\n    (os->input_sections_).\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }" { (expression_statement "uVar17 = __args_0->p2align_;" (assignment_expression "uVar17 = __args_0->p2align_" identifier = (field_expression "__args_0->p2align_" identifier -> field_identifier)) ;) (expression_statement "uVar16 = *(undefined4 *)&__args_0->u1_;" (assignment_expression "uVar16 = *(undefined4 *)&__args_0->u1_" identifier = (pointer_expression "*(undefined4 *)&__args_0->u1_" * (cast_expression "(undefined4 *)&__args_0->u1_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__args_0->u1_" & (field_expression "__args_0->u1_" identifier -> field_identifier))))) ;) (expression_statement "uVar15 = *(undefined4 *)((int)&__args_0->u1_ + 4);" (assignment_expression "uVar15 = *(undefined4 *)((int)&__args_0->u1_ + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&__args_0->u1_ + 4)" * (cast_expression "(undefined4 *)((int)&__args_0->u1_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__args_0->u1_ + 4)" ( (binary_expression "(int)&__args_0->u1_ + 4" (cast_expression "(int)&__args_0->u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__args_0->u1_" & (field_expression "__args_0->u1_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "aVar11 = __args_0->u2_;" (assignment_expression "aVar11 = __args_0->u2_" identifier = (field_expression "__args_0->u2_" identifier -> field_identifier)) ;) (expression_statement "uVar9 = __args_0->section_order_index_;" (assignment_expression "uVar9 = __args_0->section_order_index_" identifier = (field_expression "__args_0->section_order_index_" identifier -> field_identifier)) ;) (expression_statement "(__position._M_current)->shndx_ = __args_0->shndx_;" (assignment_expression "(__position._M_current)->shndx_ = __args_0->shndx_" (field_expression "(__position._M_current)->shndx_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "__args_0->shndx_" identifier -> field_identifier)) ;) (expression_statement "(__position._M_current)->p2align_ = uVar17;" (assignment_expression "(__position._M_current)->p2align_ = uVar17" (field_expression "(__position._M_current)->p2align_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&(__position._M_current)->u1_ = uVar16;" (assignment_expression "*(undefined4 *)&(__position._M_current)->u1_ = uVar16" (pointer_expression "*(undefined4 *)&(__position._M_current)->u1_" * (cast_expression "(undefined4 *)&(__position._M_current)->u1_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__position._M_current)->u1_" & (field_expression "(__position._M_current)->u1_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(__position._M_current)->u1_ + 4) = uVar15;" (assignment_expression "*(undefined4 *)((int)&(__position._M_current)->u1_ + 4) = uVar15" (pointer_expression "*(undefined4 *)((int)&(__position._M_current)->u1_ + 4)" * (cast_expression "(undefined4 *)((int)&(__position._M_current)->u1_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__position._M_current)->u1_ + 4)" ( (binary_expression "(int)&(__position._M_current)->u1_ + 4" (cast_expression "(int)&(__position._M_current)->u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__position._M_current)->u1_" & (field_expression "(__position._M_current)->u1_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "(__position._M_current)->u2_ = aVar11;" (assignment_expression "(__position._M_current)->u2_ = aVar11" (field_expression "(__position._M_current)->u2_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(__position._M_current)->section_order_index_ = uVar9;" (assignment_expression "(__position._M_current)->section_order_index_ = uVar9" (field_expression "(__position._M_current)->section_order_index_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (ERROR "(os->input_sections_).\n    super__Vector_base<gold::" (binary_expression "(os->input_sections_).\n    super__Vector_base<gold" (field_expression "(os->input_sections_).\n    super__Vector_base" (parenthesized_expression "(os->input_sections_)" ( (field_expression "os->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;" 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_finish = __position._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;" (assignment_expression "Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1" (field_expression "Input_section>_>\n    ._M_impl._M_finish" (field_expression "Input_section>_>\n    ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;))) }))) (expression_statement "uVar9 = __args_0->p2align_;" (assignment_expression "uVar9 = __args_0->p2align_" identifier = (field_expression "__args_0->p2align_" identifier -> field_identifier)) ;) (expression_statement "uVar17 = __args_0->shndx_ + 4;" (assignment_expression "uVar17 = __args_0->shndx_ + 4" identifier = (binary_expression "__args_0->shndx_ + 4" (field_expression "__args_0->shndx_" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (uVar9 != 0) goto LAB_00219f98;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00219f98;" goto statement_identifier ;)) (expression_statement "bVar1 = uVar17 < 4;" (assignment_expression "bVar1 = uVar17 < 4" identifier = (binary_expression "uVar17 < 4" identifier < number_literal)) ;) (if_statement "if (!bVar1) {\n    iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n    goto LAB_00219f80;\n  }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n    iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n    goto LAB_00219f80;\n  }" { (expression_statement "iVar3 = *(int *)(pcVar19 + 0x2a7a8c);" (assignment_expression "iVar3 = *(int *)(pcVar19 + 0x2a7a8c)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x2a7a8c)" * (cast_expression "(int *)(pcVar19 + 0x2a7a8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x2a7a8c)" ( (binary_expression "pcVar19 + 0x2a7a8c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00219f80;" goto statement_identifier ;) })) (expression_statement "this_01 = (__args_0->u2_).object;" (assignment_expression "this_01 = (__args_0->u2_).object" identifier = (field_expression "(__args_0->u2_).object" (parenthesized_expression "(__args_0->u2_)" ( (field_expression "__args_0->u2_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pp_Var10 = (this_01->super_Object)._vptr_Object;" (assignment_expression "pp_Var10 = (this_01->super_Object)._vptr_Object" identifier = (field_expression "(this_01->super_Object)._vptr_Object" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pp_Var10[3] != *(_func_int_varargs **)(pcVar19 + 0x2a9654)) {\n    pp_Var6 = (_func_int_varargs **)(*pp_Var10[3])();\n    uVar17 = __args_0->shndx_ + 4;\n    goto LAB_00219fb4;\n  }" if (parenthesized_expression "(pp_Var10[3] != *(_func_int_varargs **)(pcVar19 + 0x2a9654))" ( (binary_expression "pp_Var10[3] != *(_func_int_varargs **)(pcVar19 + 0x2a9654)" (subscript_expression "pp_Var10[3]" identifier [ number_literal ]) != (pointer_expression "*(_func_int_varargs **)(pcVar19 + 0x2a9654)" * (cast_expression "(_func_int_varargs **)(pcVar19 + 0x2a9654)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x2a9654)" ( (binary_expression "pcVar19 + 0x2a9654" identifier + number_literal) ))))) )) (compound_statement "{\n    pp_Var6 = (_func_int_varargs **)(*pp_Var10[3])();\n    uVar17 = __args_0->shndx_ + 4;\n    goto LAB_00219fb4;\n  }" { (expression_statement "pp_Var6 = (_func_int_varargs **)(*pp_Var10[3])();" (assignment_expression "pp_Var6 = (_func_int_varargs **)(*pp_Var10[3])()" identifier = (cast_expression "(_func_int_varargs **)(*pp_Var10[3])()" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*pp_Var10[3])()" (parenthesized_expression "(*pp_Var10[3])" ( (pointer_expression "*pp_Var10[3]" * (subscript_expression "pp_Var10[3]" identifier [ number_literal ])) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar17 = __args_0->shndx_ + 4;" (assignment_expression "uVar17 = __args_0->shndx_ + 4" identifier = (binary_expression "__args_0->shndx_ + 4" (field_expression "__args_0->shndx_" identifier -> field_identifier) + number_literal)) ;) (goto_statement "goto LAB_00219fb4;" goto statement_identifier ;) })) (expression_statement "pp_Var6 = (_func_int_varargs **)(this_01->super_Object).shnum_;" (assignment_expression "pp_Var6 = (_func_int_varargs **)(this_01->super_Object).shnum_" identifier = (cast_expression "(_func_int_varargs **)(this_01->super_Object).shnum_" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "(this_01->super_Object).shnum_" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pp_Var10 = *(_func_int_varargs ***)&(this_01->super_Object).field_0x2c;" (assignment_expression "pp_Var10 = *(_func_int_varargs ***)&(this_01->super_Object).field_0x2c" identifier = (pointer_expression "*(_func_int_varargs ***)&(this_01->super_Object).field_0x2c" * (cast_expression "(_func_int_varargs ***)&(this_01->super_Object).field_0x2c" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&(this_01->super_Object).field_0x2c" & (field_expression "(this_01->super_Object).field_0x2c" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if ((pp_Var6 <= *(_func_int_varargs ***)&os->addralign_) &&\n     ((*(_func_int_varargs ***)&os->addralign_ != pp_Var6 ||\n      (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4))))) {\nLAB_00219f68:\n    Output_section_data::set_output_section((Output_section_data *)this_01,os);\n    return;\n  }" if (parenthesized_expression "((pp_Var6 <= *(_func_int_varargs ***)&os->addralign_) &&\n     ((*(_func_int_varargs ***)&os->addralign_ != pp_Var6 ||\n      (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4)))))" ( (binary_expression "(pp_Var6 <= *(_func_int_varargs ***)&os->addralign_) &&\n     ((*(_func_int_varargs ***)&os->addralign_ != pp_Var6 ||\n      (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4))))" (parenthesized_expression "(pp_Var6 <= *(_func_int_varargs ***)&os->addralign_)" ( (binary_expression "pp_Var6 <= *(_func_int_varargs ***)&os->addralign_" identifier <= (pointer_expression "*(_func_int_varargs ***)&os->addralign_" * (cast_expression "(_func_int_varargs ***)&os->addralign_" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&os->addralign_" & (field_expression "os->addralign_" identifier -> field_identifier))))) )) && (parenthesized_expression "((*(_func_int_varargs ***)&os->addralign_ != pp_Var6 ||\n      (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4))))" ( (parenthesized_expression "(*(_func_int_varargs ***)&os->addralign_ != pp_Var6 ||\n      (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4)))" ( (binary_expression "*(_func_int_varargs ***)&os->addralign_ != pp_Var6 ||\n      (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4))" (binary_expression "*(_func_int_varargs ***)&os->addralign_ != pp_Var6" (pointer_expression "*(_func_int_varargs ***)&os->addralign_" * (cast_expression "(_func_int_varargs ***)&os->addralign_" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&os->addralign_" & (field_expression "os->addralign_" identifier -> field_identifier)))) != identifier) || (parenthesized_expression "(pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4))" ( (binary_expression "pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4)" identifier <= (pointer_expression "*(_func_int_varargs ***)((int)&os->addralign_ + 4)" * (cast_expression "(_func_int_varargs ***)((int)&os->addralign_ + 4)" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)&os->addralign_ + 4)" ( (binary_expression "(int)&os->addralign_ + 4" (cast_expression "(int)&os->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&os->addralign_" & (field_expression "os->addralign_" identifier -> field_identifier))) + number_literal) ))))) ))) )) ))) )) (compound_statement "{\nLAB_00219f68:\n    Output_section_data::set_output_section((Output_section_data *)this_01,os);\n    return;\n  }" { (labeled_statement "LAB_00219f68:\n    Output_section_data::set_output_section((Output_section_data *)this_01,os);" statement_identifier : (labeled_statement "Output_section_data::set_output_section((Output_section_data *)this_01,os);" statement_identifier : (ERROR ":" :) (expression_statement "set_output_section((Output_section_data *)this_01,os);" (call_expression "set_output_section((Output_section_data *)this_01,os)" identifier (argument_list "((Output_section_data *)this_01,os)" ( (cast_expression "(Output_section_data *)this_01" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;))) (return_statement "return;" return ;) })) (labeled_statement "LAB_00219f4c:\n  do {\n    *(_func_int_varargs ***)&os->addralign_ = pp_Var6;\n    *(_func_int_varargs ***)((int)&os->addralign_ + 4) = pp_Var10;\n    do {\n      while( true ) {\n        iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n        if (bVar1) {\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }\nLAB_00219f80:\n        uVar17 = 0xf3c;\n        (**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);\n        uVar9 = extraout_v1;\nLAB_00219f98:\n        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));\n        if ((uVar9 - 1 & 0x20) == 0) {\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }\n        else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }\nLAB_00219fb4:\n        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }\n        if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;\n        bVar1 = uVar17 < 4;\n      }\n      bVar1 = uVar17 < 4;\n    } while (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4));\n  } while( true );" statement_identifier : (do_statement "do {\n    *(_func_int_varargs ***)&os->addralign_ = pp_Var6;\n    *(_func_int_varargs ***)((int)&os->addralign_ + 4) = pp_Var10;\n    do {\n      while( true ) {\n        iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n        if (bVar1) {\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }\nLAB_00219f80:\n        uVar17 = 0xf3c;\n        (**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);\n        uVar9 = extraout_v1;\nLAB_00219f98:\n        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));\n        if ((uVar9 - 1 & 0x20) == 0) {\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }\n        else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }\nLAB_00219fb4:\n        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }\n        if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;\n        bVar1 = uVar17 < 4;\n      }\n      bVar1 = uVar17 < 4;\n    } while (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4));\n  } while( true );" do (compound_statement "{\n    *(_func_int_varargs ***)&os->addralign_ = pp_Var6;\n    *(_func_int_varargs ***)((int)&os->addralign_ + 4) = pp_Var10;\n    do {\n      while( true ) {\n        iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n        if (bVar1) {\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }\nLAB_00219f80:\n        uVar17 = 0xf3c;\n        (**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);\n        uVar9 = extraout_v1;\nLAB_00219f98:\n        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));\n        if ((uVar9 - 1 & 0x20) == 0) {\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }\n        else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }\nLAB_00219fb4:\n        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }\n        if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;\n        bVar1 = uVar17 < 4;\n      }\n      bVar1 = uVar17 < 4;\n    } while (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4));\n  }" { (expression_statement "*(_func_int_varargs ***)&os->addralign_ = pp_Var6;" (assignment_expression "*(_func_int_varargs ***)&os->addralign_ = pp_Var6" (pointer_expression "*(_func_int_varargs ***)&os->addralign_" * (cast_expression "(_func_int_varargs ***)&os->addralign_" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&os->addralign_" & (field_expression "os->addralign_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(_func_int_varargs ***)((int)&os->addralign_ + 4) = pp_Var10;" (assignment_expression "*(_func_int_varargs ***)((int)&os->addralign_ + 4) = pp_Var10" (pointer_expression "*(_func_int_varargs ***)((int)&os->addralign_ + 4)" * (cast_expression "(_func_int_varargs ***)((int)&os->addralign_ + 4)" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)&os->addralign_ + 4)" ( (binary_expression "(int)&os->addralign_ + 4" (cast_expression "(int)&os->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&os->addralign_" & (field_expression "os->addralign_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (do_statement "do {\n      while( true ) {\n        iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n        if (bVar1) {\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }\nLAB_00219f80:\n        uVar17 = 0xf3c;\n        (**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);\n        uVar9 = extraout_v1;\nLAB_00219f98:\n        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));\n        if ((uVar9 - 1 & 0x20) == 0) {\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }\n        else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }\nLAB_00219fb4:\n        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }\n        if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;\n        bVar1 = uVar17 < 4;\n      }\n      bVar1 = uVar17 < 4;\n    } while (pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4));" do (compound_statement "{\n      while( true ) {\n        iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n        if (bVar1) {\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }\nLAB_00219f80:\n        uVar17 = 0xf3c;\n        (**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);\n        uVar9 = extraout_v1;\nLAB_00219f98:\n        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));\n        if ((uVar9 - 1 & 0x20) == 0) {\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }\n        else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }\nLAB_00219fb4:\n        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }\n        if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;\n        bVar1 = uVar17 < 4;\n      }\n      bVar1 = uVar17 < 4;\n    }" { (while_statement "while( true ) {\n        iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n        if (bVar1) {\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }\nLAB_00219f80:\n        uVar17 = 0xf3c;\n        (**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);\n        uVar9 = extraout_v1;\nLAB_00219f98:\n        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));\n        if ((uVar9 - 1 & 0x20) == 0) {\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }\n        else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }\nLAB_00219fb4:\n        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }\n        if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;\n        bVar1 = uVar17 < 4;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar3 = *(int *)(pcVar19 + 0x2a7a8c);\n        if (bVar1) {\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }\nLAB_00219f80:\n        uVar17 = 0xf3c;\n        (**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);\n        uVar9 = extraout_v1;\nLAB_00219f98:\n        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));\n        if ((uVar9 - 1 & 0x20) == 0) {\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }\n        else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }\nLAB_00219fb4:\n        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }\n        if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;\n        bVar1 = uVar17 < 4;\n      }" { (expression_statement "iVar3 = *(int *)(pcVar19 + 0x2a7a8c);" (assignment_expression "iVar3 = *(int *)(pcVar19 + 0x2a7a8c)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x2a7a8c)" * (cast_expression "(int *)(pcVar19 + 0x2a7a8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x2a7a8c)" ( (binary_expression "pcVar19 + 0x2a7a8c" identifier + number_literal) ))))) ;) (if_statement "if (bVar1) {\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n          this_01 = (Relobj *)(__args_0->u2_).posd;\n          goto LAB_00219f68;\n        }" { (expression_statement "this_01 = (Relobj *)(__args_0->u2_).posd;" (assignment_expression "this_01 = (Relobj *)(__args_0->u2_).posd" identifier = (cast_expression "(Relobj *)(__args_0->u2_).posd" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(__args_0->u2_).posd" (parenthesized_expression "(__args_0->u2_)" ( (field_expression "__args_0->u2_" identifier -> field_identifier) )) . field_identifier))) ;) (goto_statement "goto LAB_00219f68;" goto statement_identifier ;) })) (labeled_statement "LAB_00219f80:\n        uVar17 = 0xf3c;" statement_identifier : (expression_statement "uVar17 = 0xf3c;" (assignment_expression "uVar17 = 0xf3c" identifier = number_literal) ;)) (expression_statement "(**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20);" (call_expression "(**(code **)(pcVar19 + 0x2a7ba0))\n                  (*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20)" (parenthesized_expression "(**(code **)(pcVar19 + 0x2a7ba0))" ( (pointer_expression "**(code **)(pcVar19 + 0x2a7ba0)" * (pointer_expression "*(code **)(pcVar19 + 0x2a7ba0)" * (cast_expression "(code **)(pcVar19 + 0x2a7ba0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x2a7ba0)" ( (binary_expression "pcVar19 + 0x2a7ba0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x2a73ec) + 0x3574,0xf3c,iVar3 + -0x2f20)" ( (binary_expression "*(int *)(pcVar19 + 0x2a73ec) + 0x3574" (pointer_expression "*(int *)(pcVar19 + 0x2a73ec)" * (cast_expression "(int *)(pcVar19 + 0x2a73ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x2a73ec)" ( (binary_expression "pcVar19 + 0x2a73ec" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar3 + -0x2f20" identifier + number_literal) ))) ;) (expression_statement "uVar9 = extraout_v1;" (assignment_expression "uVar9 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_00219f98:\n        pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));" statement_identifier : (expression_statement "pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f));" (assignment_expression "pp_Var10 = (_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f))" identifier = (cast_expression "(_func_int_varargs **)(1 << (uVar9 - 1 & 0x1f))" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(1 << (uVar9 - 1 & 0x1f))" ( (binary_expression "1 << (uVar9 - 1 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 - 1 & 0x1f)" ( (binary_expression "uVar9 - 1 & 0x1f" (binary_expression "uVar9 - 1" identifier - number_literal) & number_literal) ))) )))) ;)) (if_statement "if ((uVar9 - 1 & 0x20) == 0) {\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }\n        else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }" if (parenthesized_expression "((uVar9 - 1 & 0x20) == 0)" ( (binary_expression "(uVar9 - 1 & 0x20) == 0" (parenthesized_expression "(uVar9 - 1 & 0x20)" ( (binary_expression "uVar9 - 1 & 0x20" (binary_expression "uVar9 - 1" identifier - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n          pp_Var6 = (_func_int_varargs **)0x0;\n        }" { (expression_statement "pp_Var6 = (_func_int_varargs **)0x0;" (assignment_expression "pp_Var6 = (_func_int_varargs **)0x0" identifier = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }) (else_clause "else {\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }" else (compound_statement "{\n          pp_Var6 = pp_Var10;\n          pp_Var10 = (_func_int_varargs **)0x0;\n        }" { (expression_statement "pp_Var6 = pp_Var10;" (assignment_expression "pp_Var6 = pp_Var10" identifier = identifier) ;) (expression_statement "pp_Var10 = (_func_int_varargs **)0x0;" (assignment_expression "pp_Var10 = (_func_int_varargs **)0x0" identifier = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }))) (labeled_statement "LAB_00219fb4:\n        if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }" statement_identifier : (if_statement "if (*(_func_int_varargs ***)&os->addralign_ < pp_Var6) {\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }" if (parenthesized_expression "(*(_func_int_varargs ***)&os->addralign_ < pp_Var6)" ( (binary_expression "*(_func_int_varargs ***)&os->addralign_ < pp_Var6" (pointer_expression "*(_func_int_varargs ***)&os->addralign_" * (cast_expression "(_func_int_varargs ***)&os->addralign_" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&os->addralign_" & (field_expression "os->addralign_" identifier -> field_identifier)))) < identifier) )) (compound_statement "{\n          bVar1 = uVar17 < 4;\n          goto LAB_00219f4c;\n        }" { (expression_statement "bVar1 = uVar17 < 4;" (assignment_expression "bVar1 = uVar17 < 4" identifier = (binary_expression "uVar17 < 4" identifier < number_literal)) ;) (goto_statement "goto LAB_00219f4c;" goto statement_identifier ;) }))) (if_statement "if (*(_func_int_varargs ***)&os->addralign_ == pp_Var6) break;" if (parenthesized_expression "(*(_func_int_varargs ***)&os->addralign_ == pp_Var6)" ( (binary_expression "*(_func_int_varargs ***)&os->addralign_ == pp_Var6" (pointer_expression "*(_func_int_varargs ***)&os->addralign_" * (cast_expression "(_func_int_varargs ***)&os->addralign_" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&os->addralign_" & (field_expression "os->addralign_" identifier -> field_identifier)))) == identifier) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = uVar17 < 4;" (assignment_expression "bVar1 = uVar17 < 4" identifier = (binary_expression "uVar17 < 4" identifier < number_literal)) ;) })) (expression_statement "bVar1 = uVar17 < 4;" (assignment_expression "bVar1 = uVar17 < 4" identifier = (binary_expression "uVar17 < 4" identifier < number_literal)) ;) }) while (parenthesized_expression "(pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4))" ( (binary_expression "pp_Var10 <= *(_func_int_varargs ***)((int)&os->addralign_ + 4)" identifier <= (pointer_expression "*(_func_int_varargs ***)((int)&os->addralign_ + 4)" * (cast_expression "(_func_int_varargs ***)((int)&os->addralign_ + 4)" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)&os->addralign_ + 4)" ( (binary_expression "(int)&os->addralign_ + 4" (cast_expression "(int)&os->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&os->addralign_" & (field_expression "os->addralign_" identifier -> field_identifier))) + number_literal) ))))) )) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "void FUN_00219a7c(Output_segment_headers *param_1,Output_file *param_2)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);\n  if (iVar1 == 1) {\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 0) {\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 2) {\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 3) {\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28);\n  return;\n}\n\n" (function_definition "void FUN_00219a7c(Output_segment_headers *param_1,Output_file *param_2)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);\n  if (iVar1 == 1) {\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 0) {\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 2) {\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 3) {\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28);\n  return;\n}" primitive_type (function_declarator "FUN_00219a7c(Output_segment_headers *param_1,Output_file *param_2)" identifier (parameter_list "(Output_segment_headers *param_1,Output_file *param_2)" ( (parameter_declaration "Output_segment_headers *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Output_file *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);\n  if (iVar1 == 1) {\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 0) {\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 2) {\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 3) {\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);" (assignment_expression "iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4)" identifier = (call_expression "(*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4)" (parenthesized_expression "(*(code *)PTR_size_and_endianness_004c2370)" ( (pointer_expression "*(code *)PTR_size_and_endianness_004c2370" * (cast_expression "(code *)PTR_size_and_endianness_004c2370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_parameters_004c19b4)" ( (pointer_expression "*(undefined4 *)PTR_parameters_004c19b4" * (cast_expression "(undefined4 *)PTR_parameters_004c19b4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (if_statement "if (iVar1 == 1) {\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }" { (labeled_statement "gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_segment_headers::do_sized_write<32,true>(param_1,param_2);" statement_identifier : (ERROR ":" :) (expression_statement "do_sized_write<32,true>(param_1,param_2);" (comma_expression "do_sized_write<32,true>(param_1,param_2)" (binary_expression "do_sized_write<32" identifier < number_literal) , (binary_expression "true>(param_1,param_2)" true > (parenthesized_expression "(param_1,param_2)" ( (comma_expression "param_1,param_2" identifier , identifier) )))) ;))) (return_statement "return;" return ;) })) (if_statement "if (iVar1 == 0) {\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }" { (labeled_statement "gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_segment_headers::do_sized_write<32,false>(param_1,param_2);" statement_identifier : (ERROR ":" :) (expression_statement "do_sized_write<32,false>(param_1,param_2);" (comma_expression "do_sized_write<32,false>(param_1,param_2)" (binary_expression "do_sized_write<32" identifier < number_literal) , (binary_expression "false>(param_1,param_2)" false > (parenthesized_expression "(param_1,param_2)" ( (comma_expression "param_1,param_2" identifier , identifier) )))) ;))) (return_statement "return;" return ;) })) (if_statement "if (iVar1 == 2) {\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }" if (parenthesized_expression "(iVar1 == 2)" ( (binary_expression "iVar1 == 2" identifier == number_literal) )) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }" { (labeled_statement "gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_segment_headers::do_sized_write<64,false>(param_1,param_2);" statement_identifier : (ERROR ":" :) (expression_statement "do_sized_write<64,false>(param_1,param_2);" (comma_expression "do_sized_write<64,false>(param_1,param_2)" (binary_expression "do_sized_write<64" identifier < number_literal) , (binary_expression "false>(param_1,param_2)" false > (parenthesized_expression "(param_1,param_2)" ( (comma_expression "param_1,param_2" identifier , identifier) )))) ;))) (return_statement "return;" return ;) })) (if_statement "if (iVar1 == 3) {\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }" if (parenthesized_expression "(iVar1 == 3)" ( (binary_expression "iVar1 == 3" identifier == number_literal) )) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }" { (labeled_statement "gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_segment_headers::do_sized_write<64,true>(param_1,param_2);" statement_identifier : (ERROR ":" :) (expression_statement "do_sized_write<64,true>(param_1,param_2);" (comma_expression "do_sized_write<64,true>(param_1,param_2)" (binary_expression "do_sized_write<64" identifier < number_literal) , (binary_expression "true>(param_1,param_2)" true > (parenthesized_expression "(param_1,param_2)" ( (comma_expression "param_1,param_2" identifier , identifier) )))) ;))) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2b28" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (parenthesized_expression ( (comma_expression IDENT , IDENT) )))) ;))) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (parenthesized_expression ( (comma_expression IDENT , IDENT) )))) ;))) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (parenthesized_expression ( (comma_expression IDENT , IDENT) )))) ;))) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (parenthesized_expression ( (comma_expression IDENT , IDENT) )))) ;))) (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00219a7c(Output_segment_headers *param_1,Output_file *param_2)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);\n  if (iVar1 == 1) {\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 0) {\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 2) {\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 3) {\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00219a7c(Output_segment_headers *param_1,Output_file *param_2)" (identifier "FUN_00219a7c") (parameter_list "(Output_segment_headers *param_1,Output_file *param_2)" (( "(") (parameter_declaration "Output_segment_headers *param_1" (type_identifier "Output_segment_headers") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "Output_file *param_2" (type_identifier "Output_file") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);\n  if (iVar1 == 1) {\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 0) {\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 2) {\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }\n  if (iVar1 == 3) {\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (expression_statement "iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);" (assignment_expression "iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4)" (parenthesized_expression "(*(code *)PTR_size_and_endianness_004c2370)" (( "(") (pointer_expression "*(code *)PTR_size_and_endianness_004c2370" (* "*") (cast_expression "(code *)PTR_size_and_endianness_004c2370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_size_and_endianness_004c2370"))) () ")")) (argument_list "(*(undefined4 *)PTR_parameters_004c19b4)" (( "(") (pointer_expression "*(undefined4 *)PTR_parameters_004c19b4" (* "*") (cast_expression "(undefined4 *)PTR_parameters_004c19b4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_004c19b4"))) () ")")))) (; ";")) (if_statement "if (iVar1 == 1) {\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 == 1)" (( "(") (binary_expression "iVar1 == 1" (identifier "iVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);\n    return;\n  }" ({ "{") (labeled_statement "gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "Output_segment_headers::do_sized_write<32,true>(param_1,param_2);" (statement_identifier "Output_segment_headers") (: ":") (ERROR ":" (: ":")) (expression_statement "do_sized_write<32,true>(param_1,param_2);" (comma_expression "do_sized_write<32,true>(param_1,param_2)" (binary_expression "do_sized_write<32" (identifier "do_sized_write") (< "<") (number_literal "32")) (, ",") (binary_expression "true>(param_1,param_2)" (true "true") (> ">") (parenthesized_expression "(param_1,param_2)" (( "(") (comma_expression "param_1,param_2" (identifier "param_1") (, ",") (identifier "param_2")) () ")")))) (; ";")))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (iVar1 == 0) {\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);\n    return;\n  }" ({ "{") (labeled_statement "gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "Output_segment_headers::do_sized_write<32,false>(param_1,param_2);" (statement_identifier "Output_segment_headers") (: ":") (ERROR ":" (: ":")) (expression_statement "do_sized_write<32,false>(param_1,param_2);" (comma_expression "do_sized_write<32,false>(param_1,param_2)" (binary_expression "do_sized_write<32" (identifier "do_sized_write") (< "<") (number_literal "32")) (, ",") (binary_expression "false>(param_1,param_2)" (false "false") (> ">") (parenthesized_expression "(param_1,param_2)" (( "(") (comma_expression "param_1,param_2" (identifier "param_1") (, ",") (identifier "param_2")) () ")")))) (; ";")))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (iVar1 == 2) {\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 == 2)" (( "(") (binary_expression "iVar1 == 2" (identifier "iVar1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);\n    return;\n  }" ({ "{") (labeled_statement "gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "Output_segment_headers::do_sized_write<64,false>(param_1,param_2);" (statement_identifier "Output_segment_headers") (: ":") (ERROR ":" (: ":")) (expression_statement "do_sized_write<64,false>(param_1,param_2);" (comma_expression "do_sized_write<64,false>(param_1,param_2)" (binary_expression "do_sized_write<64" (identifier "do_sized_write") (< "<") (number_literal "64")) (, ",") (binary_expression "false>(param_1,param_2)" (false "false") (> ">") (parenthesized_expression "(param_1,param_2)" (( "(") (comma_expression "param_1,param_2" (identifier "param_1") (, ",") (identifier "param_2")) () ")")))) (; ";")))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (iVar1 == 3) {\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 == 3)" (( "(") (binary_expression "iVar1 == 3" (identifier "iVar1") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);\n    return;\n  }" ({ "{") (labeled_statement "gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "Output_segment_headers::do_sized_write<64,true>(param_1,param_2);" (statement_identifier "Output_segment_headers") (: ":") (ERROR ":" (: ":")) (expression_statement "do_sized_write<64,true>(param_1,param_2);" (comma_expression "do_sized_write<64,true>(param_1,param_2)" (binary_expression "do_sized_write<64" (identifier "do_sized_write") (< "<") (number_literal "64")) (, ",") (binary_expression "true>(param_1,param_2)" (true "true") (> ">") (parenthesized_expression "(param_1,param_2)" (( "(") (comma_expression "param_1,param_2" (identifier "param_1") (, ",") (identifier "param_2")) () ")")))) (; ";")))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,\n             PTR_s_in_a_linker_script_004c191c + -0x2b28)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x48b4")) (, ",") (number_literal "0x194") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2b28" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2b28")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Struct "Output_segment_headers": ignoring overlapping field "segment_list_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* DWARF original prototype: void do_write(Output_segment_headers * this, Output_file * of) */

void __thiscall var_8::type_1::function_1(type_1 *this,type_2 *of)

{
  bool bVar1;
  type_3 oVar2;
  int var_3;
  int var_16;
  type_4 var_20;
  type_5 **var_24;
  type_4 var_11;
  type_6 *var_18;
  type_7 var_21;
  type_5 **var_25;
  type_7 extraout_v1;
  vector<var_8::var_1*,var_9::allocator<var_8::var_1*>var_2> *this_00;
  type_8 *os;
  type_9 aVar11;
  type_10 *this_01;
  var_1 *pOVar12;
  type_6 *var_15;
  type_6 *var_17;
  type_11 *__args_0;
  type_12 __position;
  type_6 uVar15;
  type_6 uVar16;
  type_7 var_22;
  type_12 __position_00;
  int var_19;
  type_13 *var_23;
  int *piVar20;
  type_14 *var_13;
  type_13 *var_14;
  type_6 uStack_88;
  type_6 uStack_84;
  type_6 uStack_80;
  type_6 uStack_7c;
  type_1 *pOStack_74;
  type_2 *pOStack_70;
  var_1 *apOStack_24 [3];
  
  var_3 = (*(type_13 *)PTR_size_and_endianness_004c2370)(*(type_6 *)PTR_parameters_004c19b4);
  if (var_3 == 1) {
    var_4<32,var_5>(this,of);
    return;
  }
  if (var_3 == 0) {
    var_4<32,var_6>(this,of);
    return;
  }
  if (var_3 == 2) {
    var_4<64,var_6>(this,of);
    return;
  }
  if (var_3 == 3) {
    var_4<64,var_5>(this,of);
    return;
  }
  pOVar12 = (var_1 *)0x194;
  this_00 = (vector<var_8::var_1*,var_9::allocator<var_8::var_1*>var_2> *var_10)
            (var_7 + -0x48b4);
  var_13 = PTR_do_gold_unreachable_004c1a30;
  (*(type_13 *)PTR_do_gold_unreachable_004c1a30)
            (this_00,0x194,var_7 + -0x2b28);
  apOStack_24[0] = pOVar12;
  if (-1 < (int)this_00[0x22].
                super__Vector_base<var_8::var_1*,var_9::allocator<var_8::var_1*>var_2>._M_impl.
                _M_end_of_storage) {
    var_11 = (this_00->super__Vector_base<var_8::var_1*var_10,var_9::allocator<var_8::var_1*>var_2>var_10)
              ._M_impl._M_finish;
    __position_00._M_current =
         (this_00->super__Vector_base<var_8::var_1*,var_9::allocator<var_8::var_1*>var_2>var_10).
         _M_impl._M_start;
    if (var_11 ==
        (this_00->super__Vector_base<var_8::var_1*,var_9::allocator<var_8::var_1*>var_2>var_10).
        _M_impl._M_end_of_storage) {
      std::vector<var_8::var_1*,var_9::allocator<var_8::var_1*>var_2>::
      _M_realloc_insert<var_8::var_1*var_12&>(this_00,__position_00,apOStack_24);
      return;
    }
    if (__position_00._M_current == var_11) {
      *__position_00._M_current = pOVar12;
      (this_00->super__Vector_base<var_8::var_1*,var_9::allocator<var_8::var_1*>var_2>var_10)._M_impl
      ._M_finish = var_11 + 1;
      return;
    }
    *var_11 = var_11[-1];
    (this_00->super__Vector_base<var_8::var_1*,var_9::allocator<var_8::var_1*>var_2>var_10)._M_impl.
    _M_finish = var_11 + 1;
    if (__position_00._M_current != var_11 + -1) {
      (**(type_13 **)(var_13 + 0x2abf88))
                ((int)var_11 - ((int)(var_11 + -1) - (int)__position_00._M_current),
                 __position_00._M_current);
    }
    *__position_00._M_current = pOVar12;
    return;
  }
  var_14 = *(type_13 **)(var_13 + 0x2a7ec0);
  var_3 = *(int *)(var_13 + 0x2a7dac) + -0x48b4;
  (*var_14)(var_3,0x1065,*(int *)(var_13 + 0x2a7dac) + -0x3248);
  var_15 = *(type_6 **)(var_3 + 0x34);
  piVar20 = *(int **)(var_14 + 0x2a7d5c);
  pOStack_74 = this;
  pOStack_70 = of;
  if ((var_15 == *(type_6 **)(var_3 + 0x30)) || (var_15[-2] != 0)) {
    var_16 = *(int *)(*piVar20 + 8);
    if (var_16 != 0) {
      var_16 = *(int *)(var_16 + 0x386c);
      var_18 = *(type_6 **)(var_3 + 0x38);
      if (0 < var_16) {
        var_23 = *(type_13 **)(var_14 + 0x2a82f8);
        var_19 = 0;
        var_17 = var_15;
        do {
          while( true ) {
            uStack_80 = 0;
            uStack_7c = 0xffffffff;
            uStack_88 = 0;
            if (var_17 != var_18) break;
            var_19 = var_19 + 1;
            (*var_23)(var_3 + 0x30,var_17,&uStack_88);
            var_15 = *(type_6 **)(var_3 + 0x34);
            var_18 = *(type_6 **)(var_3 + 0x38);
            var_17 = var_15;
            if (var_19 == var_16) goto LAB_00219d38;
          }
          var_15 = var_17 + 4;
          var_19 = var_19 + 1;
          *var_17 = 0;
          var_17[2] = 0;
          var_17[1] = uStack_84;
          var_17[3] = 0xffffffff;
          *(type_6 **)(var_3 + 0x34) = var_15;
          var_17 = var_15;
        } while (var_19 != var_16);
      }
LAB_00219d38:
      uStack_80 = 0;
      uStack_88 = 0;
      uStack_7c = 0xffffffff;
      if (var_15 == var_18) {
        (**(type_13 **)(var_14 + 0x2a82f8))(var_3 + 0x30,var_15,&uStack_88);
      }
      else {
        *var_15 = 0;
        var_15[2] = 0;
        var_15[1] = uStack_84;
        var_15[3] = 0xffffffff;
        *(type_6 **)(var_3 + 0x34) = var_15 + 4;
      }
      goto LAB_00219d68;
    }
  }
  else {
LAB_00219d68:
    var_16 = *(int *)(*piVar20 + 0xc);
    var_19 = *(int *)(var_14 + 0x2a7cc4);
    if (var_16 != 0) {
      var_16 = **(int **)(var_16 + 4);
      if (var_16 == 0x20) {
        var_19 = 8;
      }
      else {
        var_19 = 0x10;
        if (var_16 != 0x40) goto LAB_00219e74;
      }
      if ((-1 < *(int *)(var_3 + 0x20) << 1) && (-1 < *(int *)(var_3 + 0x20) << 3)) {
        *(int *)(var_3 + 0x14) = (*(int *)(var_3 + 0x34) - *(int *)(var_3 + 0x30) >> 4) * var_19;
        *(type_6 *)(var_3 + 0x10) = 0;
        *(type_15 *)(var_3 + 0x20) = *(type_15 *)(var_3 + 0x20) & 0xbf | 0x40;
        return;
      }
      var_19 = *(int *)(var_14 + 0x2a7cc4) + -0x2b80;
      (**(type_13 **)(var_14 + 0x2a7dd8))(*(int *)(var_14 + 0x2a7624) + 0x3574,0x218,var_19);
    }
    (**(type_13 **)(var_14 + 0x2a7dd8))(*(int *)(var_14 + 0x2a7624) + -0x9b8,0x69,var_19 + -0x2998);
  }
  (**(type_13 **)(var_14 + 0x2a7dd8))
            (*(int *)(var_14 + 0x2a7624) + -0x9b8,0x5c,*(int *)(var_14 + 0x2a7cc4) + -0x29c4);
LAB_00219e74:
  __args_0 = (type_11 *)&DAT_00000793;
  var_23 = *(type_13 **)(var_14 + 0x2a7dd8);
  os = (type_8 *)(*(int *)(var_14 + 0x2a7cc4) + -0x48b4);
  (*var_23)(os,0x793,*(int *)(var_14 + 0x2a7cc4) + -0x2cc0);
  __position._M_current =
       (os->input_sections_).
       super__Vector_base<var_8::type_8::type_11,var_9::allocator<var_8::Output_section::type_11>var_2>
       ._M_impl._M_finish;
  if (__position._M_current ==
      (os->input_sections_).
      super__Vector_base<var_8::type_8::type_11,var_9::allocator<var_8::type_8::type_11>var_2>
      ._M_impl._M_start) {
    oVar2 = (os->super_Output_data).data_size_;
    *(type_6 *)&os->first_input_offset_ = *(type_6 *)&(os->super_Output_data).data_size_;
    *(int *)((int)&os->first_input_offset_ + 4) = (int)oVar2;
    var_20 = (os->input_sections_).
             super__Vector_base<var_8::Output_section::type_11,var_9::allocator<var_8::Output_section::type_11>var_2>
             ._M_impl._M_end_of_storage;
  }
  else {
    var_20 = (os->input_sections_).
             super__Vector_base<var_8::Output_section::type_11,var_9::allocator<var_8::Output_section::type_11>var_2>
             ._M_impl._M_end_of_storage;
  }
  if (__position._M_current == var_20) {
    std::
    vector<var_8::Output_section::type_11,var_9::allocator<var_8::Output_section::type_11>var_2>
    ::_M_realloc_insert<const_gold::Output_section::type_11&>
              (&os->input_sections_,__position,__args_0);
  }
  else {
    var_22 = __args_0->p2align_;
    uVar16 = *(type_6 *)&__args_0->u1_;
    uVar15 = *(type_6 *)((int)&__args_0->u1_ + 4);
    aVar11 = __args_0->u2_;
    var_21 = __args_0->section_order_index_;
    (__position._M_current)->shndx_ = __args_0->shndx_;
    (__position._M_current)->p2align_ = var_22;
    *(type_6 *)&(__position._M_current)->u1_ = uVar16;
    *(type_6 *)((int)&(__position._M_current)->u1_ + 4) = uVar15;
    (__position._M_current)->u2_ = aVar11;
    (__position._M_current)->section_order_index_ = var_21;
    (os->input_sections_).
    super__Vector_base<var_8::Output_section::type_11,var_9::allocator<var_8::Output_section::type_11>var_2>
    ._M_impl._M_finish = __position._M_current + 1;
  }
  var_21 = __args_0->p2align_;
  var_22 = __args_0->shndx_ + 4;
  if (var_21 != 0) goto LAB_00219f98;
  bVar1 = var_22 < 4;
  if (!bVar1) {
    var_3 = *(int *)(var_23 + 0x2a7a8c);
    goto LAB_00219f80;
  }
  this_01 = (__args_0->u2_).object;
  var_25 = (this_01->super_Object)._vptr_Object;
  if (var_25[3] != *(type_5 **)(var_23 + 0x2a9654)) {
    var_24 = (type_5 **)(*var_25[3])();
    var_22 = __args_0->shndx_ + 4;
    goto LAB_00219fb4;
  }
  var_24 = (type_5 **)(this_01->super_Object).shnum_;
  var_25 = *(type_5 ***)&(this_01->super_Object).field_0x2c;
  if ((var_24 <= *(type_5 ***)&os->addralign_) &&
     ((*(type_5 ***)&os->addralign_ != var_24 ||
      (var_25 <= *(type_5 ***)((int)&os->addralign_ + 4))))) {
LAB_00219f68:
    Output_section_data::var_26((type_16 *)this_01,os);
    return;
  }
LAB_00219f4c:
  do {
    *(type_5 ***)&os->addralign_ = var_24;
    *(type_5 ***)((int)&os->addralign_ + 4) = var_25;
    do {
      while( true ) {
        var_3 = *(int *)(var_23 + 0x2a7a8c);
        if (bVar1) {
          this_01 = (type_10 *)(__args_0->u2_).posd;
          goto LAB_00219f68;
        }
LAB_00219f80:
        var_22 = 0xf3c;
        (**(type_13 **)(var_23 + 0x2a7ba0))
                  (*(int *)(var_23 + 0x2a73ec) + 0x3574,0xf3c,var_3 + -0x2f20);
        var_21 = extraout_v1;
LAB_00219f98:
        var_25 = (type_5 **)(1 << (var_21 - 1 & 0x1f));
        if ((var_21 - 1 & 0x20) == 0) {
          var_24 = (type_5 **)0x0;
        }
        else {
          var_24 = var_25;
          var_25 = (type_5 **)0x0;
        }
LAB_00219fb4:
        if (*(type_5 ***)&os->addralign_ < var_24) {
          bVar1 = var_22 < 4;
          goto LAB_00219f4c;
        }
        if (*(type_5 ***)&os->addralign_ == var_24) break;
        bVar1 = var_22 < 4;
      }
      bVar1 = var_22 < 4;
    } while (var_25 <= *(type_5 ***)((int)&os->addralign_ + 4));
  } while( true );
}


(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: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (true) right: (parenthesized_expression (comma_expression left: (identifier) right: (identifier)))))))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (false) right: (parenthesized_expression (comma_expression left: (identifier) right: (identifier)))))))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (false) right: (parenthesized_expression (comma_expression left: (identifier) right: (identifier)))))))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (true) right: (parenthesized_expression (comma_expression left: (identifier) right: (identifier)))))))) (return_statement))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))))

void MASKED(Output_segment_headers *param_1,Output_file *param_2)

{
  int iVar1;
  
  iVar1 = (*(code *)PTR_size_and_endianness_004c2370)(*(undefined4 *)PTR_parameters_004c19b4);
  if (iVar1 == 1) {
    gold::Output_segment_headers::do_sized_write<32,true>(param_1,param_2);
    return;
  }
  if (iVar1 == 0) {
    gold::Output_segment_headers::do_sized_write<32,false>(param_1,param_2);
    return;
  }
  if (iVar1 == 2) {
    gold::Output_segment_headers::do_sized_write<64,false>(param_1,param_2);
    return;
  }
  if (iVar1 == 3) {
    gold::Output_segment_headers::do_sized_write<64,true>(param_1,param_2);
    return;
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x194,
             PTR_s_in_a_linker_script_004c191c + -0x2b28);
  return;
}

