
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original name:
   __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,
   std::vector<gold::Output_section*> >, gold::Output_section**,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections> > */

void std::
     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>
               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
                        __last,Output_section **__buffer,
               _Iter_comp_iter<gold::Sort_output_sections> __comp)

{
  Output_section **ppOVar1;
  __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
  _Var2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
  _Var7;
  Output_section **ppOVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  Output_section **local_40;
  code *local_3c;
  Output_section ***local_38;
  code *local_34;
  Output_section **local_30;
  int local_2c;
  
  iVar3 = (int)__last._M_current - (int)__first._M_current;
  iVar9 = (int)__buffer + iVar3;
  if (iVar3 < 0x19) {
    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>
              (__first,__last,__comp);
    return;
  }
  iVar6 = iVar3 >> 2;
  _Var7._M_current = __first._M_current;
  local_30 = __buffer;
  do {
    _Var2._M_current = _Var7._M_current + 7;
    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>
              (_Var7,_Var2,__comp);
    _Var7._M_current = _Var2._M_current;
  } while (0x18 < (int)__last._M_current - (int)_Var2._M_current);
  __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>
            (_Var2,__last,__comp);
  if (0x1c < iVar3) {
    local_3c = (code *)
               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,_gold_Output_section**,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4810
    ;
    iVar10 = 7;
    iVar5 = 0xe;
    local_34 = (code *)
               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4814
    ;
    local_38 = &local_40;
    iVar4 = 0x1c;
    ppOVar1 = local_30;
    iVar3 = iVar6;
    _Var7._M_current = __first._M_current;
    iVar11 = iVar10;
    if (iVar6 < 0xe) goto LAB_002a3600;
    do {
      local_2c = iVar10 << 3;
      ppOVar1 = local_30;
      _Var2._M_current = __first._M_current;
      do {
        _Var7._M_current = _Var2._M_current + local_2c;
        ppOVar1 = (Output_section **)
                  (*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,
                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,
                              __comp._M_comp.elements_);
        iVar3 = (int)__last._M_current - (int)_Var7._M_current >> 2;
        _Var2._M_current = _Var7._M_current;
        iVar11 = iVar10;
      } while (iVar5 <= iVar3);
LAB_002a3600:
      do {
        iVar10 = iVar4;
        if (iVar11 <= iVar3) {
          iVar3 = iVar11;
        }
        (*local_3c)(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,
                    __last._M_current,ppOVar1,__comp._M_comp.elements_);
        if (iVar6 < iVar10) {
          if (iVar6 <= iVar5) {
            iVar5 = iVar6;
          }
          (*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,
                      __comp._M_comp.elements_);
          return;
        }
        local_2c = iVar5 << 2;
        iVar4 = iVar10 * 4;
        ppOVar1 = local_30;
        _Var7._M_current = __first._M_current;
        do {
          ppOVar8 = ppOVar1 + iVar10;
          (*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,
                      _Var7._M_current,__comp._M_comp.elements_);
          iVar3 = iVar9 - (int)ppOVar8 >> 2;
          ppOVar1 = ppOVar8;
          _Var7._M_current = local_40;
        } while (iVar10 <= iVar3);
        if (iVar5 < iVar3) {
          iVar3 = iVar5;
        }
        (*local_34)(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,
                    __comp._M_comp.elements_);
        iVar5 = iVar10 << 1;
        if (iVar6 <= iVar10) {
          return;
        }
        ppOVar1 = local_30;
        iVar3 = iVar6;
        _Var7._M_current = __first._M_current;
        iVar11 = iVar10;
      } while (iVar6 < iVar5);
    } while( true );
  }
  return;
}



/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* void std::__merge_sort_with_buffer<__normal_iterator<gold::Output_section**,
   std::vector<gold::Output_section*, std::allocator<gold::Output_section*> > >,
   gold::Output_section**, __ops::_Iter_comp_iter<gold::Sort_output_sections>
   >(__normal_iterator<gold::Output_section**, std::vector<gold::Output_section*,
   std::allocator<gold::Output_section*> > >, __normal_iterator<gold::Output_section**,
   std::vector<gold::Output_section*, std::allocator<gold::Output_section*> > >,
   gold::Output_section**, __ops::_Iter_comp_iter<gold::Sort_output_sections>) */

void std::
     __merge_sort_with_buffer<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,gold::Output_section**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>
               (int param_1,int param_2,int param_3,undefined4 param_4)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int local_40;
  code *local_3c;
  int *local_38;
  code *local_34;
  int local_30;
  int local_2c;
  
  iVar3 = param_2 - param_1;
  iVar8 = param_3 + iVar3;
  if (iVar3 < 0x19) {
    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>
              (param_1,param_2,param_4);
    return;
  }
  iVar5 = iVar3 >> 2;
  iVar2 = param_1;
  local_30 = param_3;
  do {
    iVar9 = iVar2 + 0x1c;
    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>
              (iVar2,iVar9,param_4);
    iVar2 = iVar9;
  } while (0x18 < param_2 - iVar9);
  __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>
            (iVar9,param_2,param_4);
  if (0x1c < iVar3) {
    local_3c = (code *)
               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810
    ;
    iVar10 = 7;
    iVar4 = 0xe;
    local_34 = (code *)
               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814
    ;
    local_38 = &local_40;
    iVar9 = 0x1c;
    iVar3 = local_30;
    iVar2 = iVar5;
    iVar6 = param_1;
    iVar7 = iVar10;
    if (iVar5 < 0xe) goto LAB_002a3600;
    do {
      local_2c = iVar10 << 3;
      iVar3 = local_30;
      iVar1 = param_1;
      do {
        iVar6 = iVar1 + local_2c;
        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);
        iVar2 = param_2 - iVar6 >> 2;
        iVar1 = iVar6;
        iVar7 = iVar10;
      } while (iVar4 <= iVar2);
LAB_002a3600:
      do {
        iVar10 = iVar9;
        if (iVar7 <= iVar2) {
          iVar2 = iVar7;
        }
        iVar2 = iVar6 + iVar2 * 4;
        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);
        if (iVar5 < iVar10) {
          if (iVar5 <= iVar4) {
            iVar4 = iVar5;
          }
          iVar3 = local_30 + iVar4 * 4;
          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);
          return;
        }
        local_2c = iVar4 << 2;
        iVar9 = iVar10 * 4;
        iVar3 = local_30;
        iVar2 = param_1;
        do {
          iVar7 = iVar3 + iVar9;
          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);
          iVar6 = iVar8 - iVar7 >> 2;
          iVar3 = iVar7;
          iVar2 = local_40;
        } while (iVar10 <= iVar6);
        if (iVar4 < iVar6) {
          iVar6 = iVar4;
        }
        iVar3 = iVar7 + iVar6 * 4;
        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);
        iVar4 = iVar10 << 1;
        if (iVar5 <= iVar10) {
          return;
        }
        iVar3 = local_30;
        iVar2 = iVar5;
        iVar6 = param_1;
        iVar7 = iVar10;
      } while (iVar5 < iVar4);
    } while( true );
  }
  return;
}


lui gp,0x22
addiu gp,gp,0x5d58
addu gp,gp,t9
addiu sp,sp,-0x68
sw s0,0x40(sp)
subu s0,a1,a0
sw gp,0x20(sp)
slti v0,s0,0x19
sw s7,0x5c(sp)
sw ra,0x64(sp)
addu s7,a2,s0
sw s8,0x60(sp)
sw s6,0x58(sp)
sw s5,0x54(sp)
sw s4,0x50(sp)
sw s3,0x4c(sp)
sw s2,0x48(sp)
bne v0,zero,0x002a374c
_sw s1,0x44(sp)
lw s1,-0x4a38(gp)
sra s4,s0,0x2
or s6,a0,zero
sw a2,0x38(sp)
or s3,a1,zero
or s2,a3,zero
addiu s8,a0,0x1c
or a2,s2,zero
or t9,s1,zero
bal 0x0029e770
_or a1,s8,zero
subu v0,s3,s8
slti v0,v0,0x19
beq v0,zero,0x002a354c
_or a0,s8,zero
or a2,s2,zero
or a1,s3,zero
or t9,s1,zero
bal 0x0029e770
_slti s0,s0,0x1d
bne s0,zero,0x002a371c
_lw gp,0x20(sp)
lw v0,-0x4a30(gp)
li s8,0x7
sll s1,s8,0x1
sw v0,0x2c(sp)
lw v0,-0x4a2c(gp)
sw v0,0x34(sp)
addiu v0,sp,0x28
sw v0,0x30(sp)
slt v0,s4,s1
bne v0,zero,0x002a36d8
_li s0,0x1c
sll v0,s8,0x3
or a0,s6,zero
sw v0,0x3c(sp)
lw v0,0x38(sp)
lw t9,0x2c(sp)
addu a2,a0,s0
sw v0,0x10(sp)
lw v0,0x3c(sp)
or a1,a2,zero
sw s2,0x14(sp)
addu s5,a0,v0
jalr t9
_or a3,s5,zero
subu a2,s3,s5
sra a2,a2,0x2
slt a1,a2,s1
beq a1,zero,0x002a35c8
_or a0,s5,zero
slt a0,a2,s8
lw t9,0x2c(sp)
movz a2,s8,a0
or a3,s3,zero
or a0,s5,zero
sw s2,0x14(sp)
or s8,s0,zero
sw v0,0x10(sp)
sll a2,a2,0x2
addu a2,s5,a2
jalr t9
_or a1,a2,zero
slt v0,s4,s0
bne v0,zero,0x002a36e8
_or a2,s6,zero
sll v0,s1,0x2
sll s0,s0,0x2
sw v0,0x3c(sp)
lw v0,0x38(sp)
lw v1,0x3c(sp)
addu s5,v0,s0
lw a0,0x30(sp)
or a1,v0,zero
lw t9,0x34(sp)
addu a3,v0,v1
sw a2,0x14(sp)
sw s2,0x18(sp)
or a2,a3,zero
jalr t9
_sw s5,0x10(sp)
subu a3,s7,s5
lw a2,0x28(sp)
sra a3,a3,0x2
slt v1,a3,s8
beq v1,zero,0x002a364c
_or v0,s5,zero
slt v1,s1,a3
lw a0,0x30(sp)
movn a3,s1,v1
or a1,s5,zero
lw t9,0x34(sp)
sw a2,0x14(sp)
sll a3,a3,0x2
sw s2,0x18(sp)
sw s7,0x10(sp)
addu a3,s5,a3
jalr t9
_or a2,a3,zero
slt v0,s8,s4
beq v0,zero,0x002a371c
_sll s1,s8,0x1
slt v0,s4,s1
beq v0,zero,0x002a35b8
_nop
lw v0,0x38(sp)
or a2,s4,zero
b 0x002a3600
_or s5,s6,zero
slt a3,s1,s4
lw v0,0x38(sp)
movz s1,s4,a3
lw a0,0x30(sp)
or a1,v0,zero
lw t9,0x34(sp)
sll a3,s1,0x2
sw s2,0x18(sp)
sw s6,0x14(sp)
addu a3,v0,a3
sw s7,0x10(sp)
jalr t9
_or a2,a3,zero
lw ra,0x64(sp)
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
lw ra,0x64(sp)
or a2,a3,zero
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
lw t9,-0x4a38(gp)
b 0x0029e770
_addiu sp,sp,0x68
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* void std::__merge_sort_with_buffer<__normal_iterator<gold::Output_section**,\n   std::vector<gold::Output_section*, std::allocator<gold::Output_section*> > >,\n   gold::Output_section**, __ops::_Iter_comp_iter<gold::Sort_output_sections>\n   >(__normal_iterator<gold::Output_section**, std::vector<gold::Output_section*,\n   std::allocator<gold::Output_section*> > >, __normal_iterator<gold::Output_section**,\n   std::vector<gold::Output_section*, std::allocator<gold::Output_section*> > >,\n   gold::Output_section**, __ops::_Iter_comp_iter<gold::Sort_output_sections>) */\n\nvoid std::\n     __merge_sort_with_buffer<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,gold::Output_section**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int local_40;\n  code *local_3c;\n  int *local_38;\n  code *local_34;\n  int local_30;\n  int local_2c;\n  \n  iVar3 = param_2 - param_1;\n  iVar8 = param_3 + iVar3;\n  if (iVar3 < 0x19) {\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4);\n    return;\n  }\n  iVar5 = iVar3 >> 2;\n  iVar2 = param_1;\n  local_30 = param_3;\n  do {\n    iVar9 = iVar2 + 0x1c;\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4);\n    iVar2 = iVar9;\n  } while (0x18 < param_2 - iVar9);\n  __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n            (iVar9,param_2,param_4);\n  if (0x1c < iVar3) {\n    local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810\n    ;\n    iVar10 = 7;\n    iVar4 = 0xe;\n    local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814\n    ;\n    local_38 = &local_40;\n    iVar9 = 0x1c;\n    iVar3 = local_30;\n    iVar2 = iVar5;\n    iVar6 = param_1;\n    iVar7 = iVar10;\n    if (iVar5 < 0xe) goto LAB_002a3600;\n    do {\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    } while( true );\n  }\n  return;\n}\n\n" comment comment (declaration "void std::\n     __merge_sort_with_buffer<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,gold::Output_section**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  int iVar1;" primitive_type (ERROR "std::\n     __merge_sort_with_buffer<__normal_iterator<gold::Output_section" identifier : : identifier < identifier < identifier : : identifier) (pointer_declarator "**,std::vector<gold::Output_section" * (pointer_declarator "*,std::vector<gold::Output_section" * (ERROR ",std::vector<gold::" , identifier : : identifier < identifier : :) identifier)) (ERROR "*" *) , (ERROR "std::allocator<gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>>>" * >> >) , (ERROR "gold::Output_section**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  int" identifier : : identifier (pointer_declarator "**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)" * (function_declarator "*,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)" (pointer_declarator "*,__ops::_Iter_comp_iter<gold::Sort_output_sections" * (ERROR ",__ops::_Iter_comp_iter<gold::" , identifier : : identifier < identifier : :) identifier) (ERROR ">>" >>) (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) )))) { primitive_type) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "code *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "int *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "iVar3 = param_2 - param_1;" (assignment_expression "iVar3 = param_2 - param_1" identifier = (binary_expression "param_2 - param_1" identifier - identifier)) ;) (expression_statement "iVar8 = param_3 + iVar3;" (assignment_expression "iVar8 = param_3 + iVar3" identifier = (binary_expression "param_3 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < 0x19) {\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4);\n    return;\n  }" if (parenthesized_expression "(iVar3 < 0x19)" ( (binary_expression "iVar3 < 0x19" identifier < number_literal) )) (compound_statement "{\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4);\n    return;\n  }" { (expression_statement "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4);" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std" (binary_expression "__insertion_sort<__normal_iterator<gold" (binary_expression "__insertion_sort<__normal_iterator" identifier < identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section*>>" : : identifier * >>) > (ERROR "," ,) identifier) (ERROR "::_Iter_comp_iter" : : identifier) < identifier) (ERROR "::Sort_output_sections" : : identifier) >> (parenthesized_expression "(param_1,param_2,param_4)" ( (comma_expression "param_1,param_2,param_4" identifier , (comma_expression "param_2,param_4" identifier , identifier)) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar5 = iVar3 >> 2;" (assignment_expression "iVar5 = iVar3 >> 2" identifier = (binary_expression "iVar3 >> 2" identifier >> number_literal)) ;) (expression_statement "iVar2 = param_1;" (assignment_expression "iVar2 = param_1" identifier = identifier) ;) (expression_statement "local_30 = param_3;" (assignment_expression "local_30 = param_3" identifier = identifier) ;) (do_statement "do {\n    iVar9 = iVar2 + 0x1c;\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4);\n    iVar2 = iVar9;\n  } while (0x18 < param_2 - iVar9);" do (compound_statement "{\n    iVar9 = iVar2 + 0x1c;\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4);\n    iVar2 = iVar9;\n  }" { (expression_statement "iVar9 = iVar2 + 0x1c;" (assignment_expression "iVar9 = iVar2 + 0x1c" identifier = (binary_expression "iVar2 + 0x1c" identifier + number_literal)) ;) (expression_statement "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4);" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std" (binary_expression "__insertion_sort<__normal_iterator<gold" (binary_expression "__insertion_sort<__normal_iterator" identifier < identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section*>>" : : identifier * >>) > (ERROR "," ,) identifier) (ERROR "::_Iter_comp_iter" : : identifier) < identifier) (ERROR "::Sort_output_sections" : : identifier) >> (parenthesized_expression "(iVar2,iVar9,param_4)" ( (comma_expression "iVar2,iVar9,param_4" identifier , (comma_expression "iVar9,param_4" identifier , identifier)) ))) ;) (expression_statement "iVar2 = iVar9;" (assignment_expression "iVar2 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(0x18 < param_2 - iVar9)" ( (binary_expression "0x18 < param_2 - iVar9" number_literal < (binary_expression "param_2 - iVar9" identifier - identifier)) )) ;) (expression_statement "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n            (iVar9,param_2,param_4);" (update_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n            (iVar9,param_2,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n            (iVar9,param_2,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std" (binary_expression "__insertion_sort<__normal_iterator<gold" (binary_expression "__insertion_sort<__normal_iterator" identifier < identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section*>>" : : identifier * >>) > (ERROR "," ,) identifier) (ERROR "::_Iter_comp_iter" : : identifier) < identifier) (ERROR "::Sort_output_sections" : : identifier) >> (parenthesized_expression "(iVar9,param_2,param_4)" ( (comma_expression "iVar9,param_2,param_4" identifier , (comma_expression "param_2,param_4" identifier , identifier)) ))) --) ;) (if_statement "if (0x1c < iVar3) {\n    local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810\n    ;\n    iVar10 = 7;\n    iVar4 = 0xe;\n    local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814\n    ;\n    local_38 = &local_40;\n    iVar9 = 0x1c;\n    iVar3 = local_30;\n    iVar2 = iVar5;\n    iVar6 = param_1;\n    iVar7 = iVar10;\n    if (iVar5 < 0xe) goto LAB_002a3600;\n    do {\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    } while( true );\n  }" if (parenthesized_expression "(0x1c < iVar3)" ( (binary_expression "0x1c < iVar3" number_literal < identifier) )) (compound_statement "{\n    local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810\n    ;\n    iVar10 = 7;\n    iVar4 = 0xe;\n    local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814\n    ;\n    local_38 = &local_40;\n    iVar9 = 0x1c;\n    iVar3 = local_30;\n    iVar2 = iVar5;\n    iVar6 = param_1;\n    iVar7 = iVar10;\n    if (iVar5 < 0xe) goto LAB_002a3600;\n    do {\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    } while( true );\n  }" { (expression_statement "local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810\n    ;" (comma_expression "local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810" (assignment_expression "local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" identifier = (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator" (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector" (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator" (cast_expression "(code *)\n               PTR___move_merge" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < identifier) < (binary_expression "gold_Output_section**,std_vector" identifier * (pointer_expression "*,std_vector" * (ERROR "," ,) identifier))) < (binary_expression "gold_Output_section*,std_allocator" identifier * (ERROR "," ,) identifier)) < identifier)) (ERROR "*>>>" * >> >) , (binary_expression "gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810" (binary_expression "gold_Output_section**,__ops__Iter_comp_iter" identifier * (pointer_expression "*,__ops__Iter_comp_iter" * (ERROR "," ,) identifier)) < (binary_expression "gold_Sort_output_sections>>_004c4810" identifier >> identifier))) ;) (expression_statement "iVar10 = 7;" (assignment_expression "iVar10 = 7" identifier = number_literal) ;) (expression_statement "iVar4 = 0xe;" (assignment_expression "iVar4 = 0xe" identifier = number_literal) ;) (expression_statement "local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814\n    ;" (comma_expression "local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814" (assignment_expression "local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" identifier = (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator" (cast_expression "(code *)\n               PTR___move_merge" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < (binary_expression "gold_Output_section**,__normal_iterator" identifier * (pointer_expression "*,__normal_iterator" * (ERROR "," ,) identifier))) < (binary_expression "gold_Output_section**,std_vector" identifier * (pointer_expression "*,std_vector" * (ERROR "," ,) identifier))) < (binary_expression "gold_Output_section*,std_allocator" identifier * (ERROR "," ,) identifier)) < identifier)) (ERROR "*>>>" * >> >) , (binary_expression "__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814" identifier < (binary_expression "gold_Sort_output_sections>>_004c4814" identifier >> identifier))) ;) (expression_statement "local_38 = &local_40;" (assignment_expression "local_38 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "iVar9 = 0x1c;" (assignment_expression "iVar9 = 0x1c" identifier = number_literal) ;) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" identifier = identifier) ;) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" identifier = identifier) ;) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" identifier = identifier) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) (if_statement "if (iVar5 < 0xe) goto LAB_002a3600;" if (parenthesized_expression "(iVar5 < 0xe)" ( (binary_expression "iVar5 < 0xe" identifier < number_literal) )) (goto_statement "goto LAB_002a3600;" goto statement_identifier ;)) (do_statement "do {\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    } while( true );" do (compound_statement "{\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    }" { (expression_statement "local_2c = iVar10 << 3;" (assignment_expression "local_2c = iVar10 << 3" identifier = (binary_expression "iVar10 << 3" identifier << number_literal)) ;) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" identifier = identifier) ;) (expression_statement "iVar1 = param_1;" (assignment_expression "iVar1 = param_1" identifier = identifier) ;) (do_statement "do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);" do (compound_statement "{\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      }" { (expression_statement "iVar6 = iVar1 + local_2c;" (assignment_expression "iVar6 = iVar1 + local_2c" identifier = (binary_expression "iVar1 + local_2c" identifier + identifier)) ;) (expression_statement "iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);" (assignment_expression "iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4)" identifier = (call_expression "(*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4)" ( identifier , (binary_expression "iVar1 + iVar9" identifier + identifier) , (binary_expression "iVar1 + iVar9" identifier + identifier) , identifier , identifier , identifier )))) ;) (expression_statement "iVar2 = param_2 - iVar6 >> 2;" (assignment_expression "iVar2 = param_2 - iVar6 >> 2" identifier = (binary_expression "param_2 - iVar6 >> 2" (binary_expression "param_2 - iVar6" identifier - identifier) >> number_literal)) ;) (expression_statement "iVar1 = iVar6;" (assignment_expression "iVar1 = iVar6" identifier = identifier) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 <= iVar2)" ( (binary_expression "iVar4 <= iVar2" identifier <= identifier) )) ;) (labeled_statement "LAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);" statement_identifier : (do_statement "do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);" do (compound_statement "{\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      }" { (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) (if_statement "if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }" if (parenthesized_expression "(iVar7 <= iVar2)" ( (binary_expression "iVar7 <= iVar2" identifier <= identifier) )) (compound_statement "{\n          iVar2 = iVar7;\n        }" { (expression_statement "iVar2 = iVar7;" (assignment_expression "iVar2 = iVar7" identifier = identifier) ;) })) (expression_statement "iVar2 = iVar6 + iVar2 * 4;" (assignment_expression "iVar2 = iVar6 + iVar2 * 4" identifier = (binary_expression "iVar6 + iVar2 * 4" identifier + (binary_expression "iVar2 * 4" identifier * number_literal))) ;) (expression_statement "(*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);" (call_expression "(*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(iVar6,iVar2,iVar2,param_2,iVar3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }" if (parenthesized_expression "(iVar5 < iVar10)" ( (binary_expression "iVar5 < iVar10" identifier < identifier) )) (compound_statement "{\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }" { (if_statement "if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }" if (parenthesized_expression "(iVar5 <= iVar4)" ( (binary_expression "iVar5 <= iVar4" identifier <= identifier) )) (compound_statement "{\n            iVar4 = iVar5;\n          }" { (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" identifier = identifier) ;) })) (expression_statement "iVar3 = local_30 + iVar4 * 4;" (assignment_expression "iVar3 = local_30 + iVar4 * 4" identifier = (binary_expression "local_30 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal))) ;) (expression_statement "(*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);" (call_expression "(*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_2c = iVar4 << 2;" (assignment_expression "local_2c = iVar4 << 2" identifier = (binary_expression "iVar4 << 2" identifier << number_literal)) ;) (expression_statement "iVar9 = iVar10 * 4;" (assignment_expression "iVar9 = iVar10 * 4" identifier = (binary_expression "iVar10 * 4" identifier * number_literal)) ;) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" identifier = identifier) ;) (expression_statement "iVar2 = param_1;" (assignment_expression "iVar2 = param_1" identifier = identifier) ;) (do_statement "do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);" do (compound_statement "{\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        }" { (expression_statement "iVar7 = iVar3 + iVar9;" (assignment_expression "iVar7 = iVar3 + iVar9" identifier = (binary_expression "iVar3 + iVar9" identifier + identifier)) ;) (expression_statement "(*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);" (call_expression "(*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4)" ( identifier , identifier , (binary_expression "iVar3 + local_2c" identifier + identifier) , (binary_expression "iVar3 + local_2c" identifier + identifier) , identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = iVar8 - iVar7 >> 2;" (assignment_expression "iVar6 = iVar8 - iVar7 >> 2" identifier = (binary_expression "iVar8 - iVar7 >> 2" (binary_expression "iVar8 - iVar7" identifier - identifier) >> number_literal)) ;) (expression_statement "iVar3 = iVar7;" (assignment_expression "iVar3 = iVar7" identifier = identifier) ;) (expression_statement "iVar2 = local_40;" (assignment_expression "iVar2 = local_40" identifier = identifier) ;) }) while (parenthesized_expression "(iVar10 <= iVar6)" ( (binary_expression "iVar10 <= iVar6" identifier <= identifier) )) ;) (if_statement "if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }" if (parenthesized_expression "(iVar4 < iVar6)" ( (binary_expression "iVar4 < iVar6" identifier < identifier) )) (compound_statement "{\n          iVar6 = iVar4;\n        }" { (expression_statement "iVar6 = iVar4;" (assignment_expression "iVar6 = iVar4" identifier = identifier) ;) })) (expression_statement "iVar3 = iVar7 + iVar6 * 4;" (assignment_expression "iVar3 = iVar7 + iVar6 * 4" identifier = (binary_expression "iVar7 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal))) ;) (expression_statement "(*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);" (call_expression "(*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = iVar10 << 1;" (assignment_expression "iVar4 = iVar10 << 1" identifier = (binary_expression "iVar10 << 1" identifier << number_literal)) ;) (if_statement "if (iVar5 <= iVar10) {\n          return;\n        }" if (parenthesized_expression "(iVar5 <= iVar10)" ( (binary_expression "iVar5 <= iVar10" identifier <= identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" identifier = identifier) ;) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" identifier = identifier) ;) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" identifier = identifier) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) }) while (parenthesized_expression "(iVar5 < iVar4)" ( (binary_expression "iVar5 < iVar4" identifier < identifier) )) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original name:\n   __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,\n   std::vector<gold::Output_section*> >, gold::Output_section**,\n   __gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections> > */\n\nvoid std::\n     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                        __last,Output_section **__buffer,\n               _Iter_comp_iter<gold::Sort_output_sections> __comp)\n\n{\n  Output_section **ppOVar1;\n  __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var7;\n  Output_section **ppOVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  Output_section **local_40;\n  code *local_3c;\n  Output_section ***local_38;\n  code *local_34;\n  Output_section **local_30;\n  int local_2c;\n  \n  iVar3 = (int)__last._M_current - (int)__first._M_current;\n  iVar9 = (int)__buffer + iVar3;\n  if (iVar3 < 0x19) {\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n              (__first,__last,__comp);\n    return;\n  }\n  iVar6 = iVar3 >> 2;\n  _Var7._M_current = __first._M_current;\n  local_30 = __buffer;\n  do {\n    _Var2._M_current = _Var7._M_current + 7;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n              (_Var7,_Var2,__comp);\n    _Var7._M_current = _Var2._M_current;\n  } while (0x18 < (int)__last._M_current - (int)_Var2._M_current);\n  __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n            (_Var2,__last,__comp);\n  if (0x1c < iVar3) {\n    local_3c = (code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,_gold_Output_section**,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4810\n    ;\n    iVar10 = 7;\n    iVar5 = 0xe;\n    local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4814\n    ;\n    local_38 = &local_40;\n    iVar4 = 0x1c;\n    ppOVar1 = local_30;\n    iVar3 = iVar6;\n    _Var7._M_current = __first._M_current;\n    iVar11 = iVar10;\n    if (iVar6 < 0xe) goto LAB_002a3600;\n    do {\n      local_2c = iVar10 << 3;\n      ppOVar1 = local_30;\n      _Var2._M_current = __first._M_current;\n      do {\n        _Var7._M_current = _Var2._M_current + local_2c;\n        ppOVar1 = (Output_section **)\n                  (*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_);\n        iVar3 = (int)__last._M_current - (int)_Var7._M_current >> 2;\n        _Var2._M_current = _Var7._M_current;\n        iVar11 = iVar10;\n      } while (iVar5 <= iVar3);\nLAB_002a3600:\n      do {\n        iVar10 = iVar4;\n        if (iVar11 <= iVar3) {\n          iVar3 = iVar11;\n        }\n        (*local_3c)(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,\n                    __last._M_current,ppOVar1,__comp._M_comp.elements_);\n        if (iVar6 < iVar10) {\n          if (iVar6 <= iVar5) {\n            iVar5 = iVar6;\n          }\n          (*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_);\n          return;\n        }\n        local_2c = iVar5 << 2;\n        iVar4 = iVar10 * 4;\n        ppOVar1 = local_30;\n        _Var7._M_current = __first._M_current;\n        do {\n          ppOVar8 = ppOVar1 + iVar10;\n          (*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_);\n          iVar3 = iVar9 - (int)ppOVar8 >> 2;\n          ppOVar1 = ppOVar8;\n          _Var7._M_current = local_40;\n        } while (iVar10 <= iVar3);\n        if (iVar5 < iVar3) {\n          iVar3 = iVar5;\n        }\n        (*local_34)(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,\n                    __comp._M_comp.elements_);\n        iVar5 = iVar10 << 1;\n        if (iVar6 <= iVar10) {\n          return;\n        }\n        ppOVar1 = local_30;\n        iVar3 = iVar6;\n        _Var7._M_current = __first._M_current;\n        iVar11 = iVar10;\n      } while (iVar6 < iVar5);\n    } while( true );\n  }\n  return;\n}\n\n" comment comment comment comment (declaration "void std::\n     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                        __last,Output_section **__buffer,\n               _Iter_comp_iter<gold::Sort_output_sections> __comp)\n\n{\n  Output_section **ppOVar1;" primitive_type (ERROR "std::\n     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Output_section" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "**,_std::vector<gold::Output_section*>_" * (pointer_declarator "*,_std::vector<gold::Output_section*>_" * (ERROR ",_std::vector<gold::Output_section*>" , identifier : : identifier < identifier : : identifier * >) identifier)) (ERROR ">,_gold::Output_section**" > , (ERROR "_gold::Output_section" identifier : : identifier) * *) , (ERROR "___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                        __last,Output_section **__buffer,\n               _Iter_comp_iter<gold::Sort_output_sections> __comp)\n\n{\n  Output_section" identifier : : identifier : : identifier < identifier : : identifier > (function_declarator "_>\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                        __last,Output_section **__buffer,\n               _Iter_comp_iter<gold::Sort_output_sections> __comp)" identifier (ERROR ">" >) (parameter_list "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                        __last,Output_section **__buffer,\n               _Iter_comp_iter<gold::Sort_output_sections> __comp)" ( (parameter_declaration "__normal_iterator<gold::Output_section**" type_identifier (ERROR "<gold::Output_section" < identifier : : identifier) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "_std::vector<gold::Output_section*" type_identifier (ERROR "::vector<gold::Output_section" : : identifier < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Output_section*>_>_>\n                __first" type_identifier (ERROR "::allocator<gold::Output_section*>_>_>" : : identifier < identifier : : identifier * > identifier > identifier >) identifier) , (parameter_declaration "__normal_iterator<gold::Output_section**" type_identifier (ERROR "<gold::Output_section" < identifier : : identifier) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "_std::vector<gold::Output_section*" type_identifier (ERROR "::vector<gold::Output_section" : : identifier < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Output_section*>_>_>\n                        __last" type_identifier (ERROR "::allocator<gold::Output_section*>_>_>" : : identifier < identifier : : identifier * > identifier > identifier >) identifier) , (parameter_declaration "Output_section **__buffer" type_identifier (pointer_declarator "**__buffer" * (pointer_declarator "*__buffer" * identifier))) , (parameter_declaration "_Iter_comp_iter<gold::Sort_output_sections> __comp" type_identifier (ERROR "<gold::Sort_output_sections>" < identifier : : identifier >) identifier) ))) { identifier) (pointer_declarator "**ppOVar1" * (pointer_declarator "*ppOVar1" * identifier)) ;) (expression_statement "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var2;" (update_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var2" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var2" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) --) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (expression_statement "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var7;" (update_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var7" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var7" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) --) ;) (declaration "Output_section **ppOVar8;" type_identifier (pointer_declarator "**ppOVar8" * (pointer_declarator "*ppOVar8" * identifier)) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "Output_section **local_40;" type_identifier (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier)) ;) (declaration "code *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "Output_section ***local_38;" type_identifier (pointer_declarator "***local_38" * (pointer_declarator "**local_38" * (pointer_declarator "*local_38" * identifier))) ;) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "Output_section **local_30;" type_identifier (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "iVar3 = (int)__last._M_current - (int)__first._M_current;" (assignment_expression "iVar3 = (int)__last._M_current - (int)__first._M_current" identifier = (binary_expression "(int)__last._M_current - (int)__first._M_current" (cast_expression "(int)__last._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__last._M_current" identifier . field_identifier)) - (cast_expression "(int)__first._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__first._M_current" identifier . field_identifier)))) ;) (expression_statement "iVar9 = (int)__buffer + iVar3;" (assignment_expression "iVar9 = (int)__buffer + iVar3" identifier = (binary_expression "(int)__buffer + iVar3" (cast_expression "(int)__buffer" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (iVar3 < 0x19) {\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n              (__first,__last,__comp);\n    return;\n  }" if (parenthesized_expression "(iVar3 < 0x19)" ( (binary_expression "iVar3 < 0x19" identifier < number_literal) )) (compound_statement "{\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n              (__first,__last,__comp);\n    return;\n  }" { (expression_statement "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n              (__first,__last,__comp);" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n              (__first,__last,__comp)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Sort_output_sections" : : identifier) > identifier) > (parenthesized_expression "(__first,__last,__comp)" ( (comma_expression "__first,__last,__comp" identifier , (comma_expression "__last,__comp" identifier , identifier)) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = iVar3 >> 2;" (assignment_expression "iVar6 = iVar3 >> 2" identifier = (binary_expression "iVar3 >> 2" identifier >> number_literal)) ;) (expression_statement "_Var7._M_current = __first._M_current;" (assignment_expression "_Var7._M_current = __first._M_current" (field_expression "_Var7._M_current" identifier . field_identifier) = (field_expression "__first._M_current" identifier . field_identifier)) ;) (expression_statement "local_30 = __buffer;" (assignment_expression "local_30 = __buffer" identifier = identifier) ;) (do_statement "do {\n    _Var2._M_current = _Var7._M_current + 7;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n              (_Var7,_Var2,__comp);\n    _Var7._M_current = _Var2._M_current;\n  } while (0x18 < (int)__last._M_current - (int)_Var2._M_current);" do (compound_statement "{\n    _Var2._M_current = _Var7._M_current + 7;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n              (_Var7,_Var2,__comp);\n    _Var7._M_current = _Var2._M_current;\n  }" { (expression_statement "_Var2._M_current = _Var7._M_current + 7;" (assignment_expression "_Var2._M_current = _Var7._M_current + 7" (field_expression "_Var2._M_current" identifier . field_identifier) = (binary_expression "_Var7._M_current + 7" (field_expression "_Var7._M_current" identifier . field_identifier) + number_literal)) ;) (expression_statement "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n              (_Var7,_Var2,__comp);" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n              (_Var7,_Var2,__comp)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Sort_output_sections" : : identifier) > identifier) > (parenthesized_expression "(_Var7,_Var2,__comp)" ( (comma_expression "_Var7,_Var2,__comp" identifier , (comma_expression "_Var2,__comp" identifier , identifier)) ))) ;) (expression_statement "_Var7._M_current = _Var2._M_current;" (assignment_expression "_Var7._M_current = _Var2._M_current" (field_expression "_Var7._M_current" identifier . field_identifier) = (field_expression "_Var2._M_current" identifier . field_identifier)) ;) }) while (parenthesized_expression "(0x18 < (int)__last._M_current - (int)_Var2._M_current)" ( (binary_expression "0x18 < (int)__last._M_current - (int)_Var2._M_current" number_literal < (binary_expression "(int)__last._M_current - (int)_Var2._M_current" (cast_expression "(int)__last._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__last._M_current" identifier . field_identifier)) - (cast_expression "(int)_Var2._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "_Var2._M_current" identifier . field_identifier)))) )) ;) (expression_statement "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n            (_Var2,__last,__comp);" (update_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n            (_Var2,__last,__comp)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n            (_Var2,__last,__comp)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Sort_output_sections" : : identifier) > identifier) > (parenthesized_expression "(_Var2,__last,__comp)" ( (comma_expression "_Var2,__last,__comp" identifier , (comma_expression "__last,__comp" identifier , identifier)) ))) --) ;) (if_statement "if (0x1c < iVar3) {\n    local_3c = (code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,_gold_Output_section**,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4810\n    ;\n    iVar10 = 7;\n    iVar5 = 0xe;\n    local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4814\n    ;\n    local_38 = &local_40;\n    iVar4 = 0x1c;\n    ppOVar1 = local_30;\n    iVar3 = iVar6;\n    _Var7._M_current = __first._M_current;\n    iVar11 = iVar10;\n    if (iVar6 < 0xe) goto LAB_002a3600;\n    do {\n      local_2c = iVar10 << 3;\n      ppOVar1 = local_30;\n      _Var2._M_current = __first._M_current;\n      do {\n        _Var7._M_current = _Var2._M_current + local_2c;\n        ppOVar1 = (Output_section **)\n                  (*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_);\n        iVar3 = (int)__last._M_current - (int)_Var7._M_current >> 2;\n        _Var2._M_current = _Var7._M_current;\n        iVar11 = iVar10;\n      } while (iVar5 <= iVar3);\nLAB_002a3600:\n      do {\n        iVar10 = iVar4;\n        if (iVar11 <= iVar3) {\n          iVar3 = iVar11;\n        }\n        (*local_3c)(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,\n                    __last._M_current,ppOVar1,__comp._M_comp.elements_);\n        if (iVar6 < iVar10) {\n          if (iVar6 <= iVar5) {\n            iVar5 = iVar6;\n          }\n          (*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_);\n          return;\n        }\n        local_2c = iVar5 << 2;\n        iVar4 = iVar10 * 4;\n        ppOVar1 = local_30;\n        _Var7._M_current = __first._M_current;\n        do {\n          ppOVar8 = ppOVar1 + iVar10;\n          (*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_);\n          iVar3 = iVar9 - (int)ppOVar8 >> 2;\n          ppOVar1 = ppOVar8;\n          _Var7._M_current = local_40;\n        } while (iVar10 <= iVar3);\n        if (iVar5 < iVar3) {\n          iVar3 = iVar5;\n        }\n        (*local_34)(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,\n                    __comp._M_comp.elements_);\n        iVar5 = iVar10 << 1;\n        if (iVar6 <= iVar10) {\n          return;\n        }\n        ppOVar1 = local_30;\n        iVar3 = iVar6;\n        _Var7._M_current = __first._M_current;\n        iVar11 = iVar10;\n      } while (iVar6 < iVar5);\n    } while( true );\n  }" if (parenthesized_expression "(0x1c < iVar3)" ( (binary_expression "0x1c < iVar3" number_literal < identifier) )) (compound_statement "{\n    local_3c = (code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,_gold_Output_section**,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4810\n    ;\n    iVar10 = 7;\n    iVar5 = 0xe;\n    local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4814\n    ;\n    local_38 = &local_40;\n    iVar4 = 0x1c;\n    ppOVar1 = local_30;\n    iVar3 = iVar6;\n    _Var7._M_current = __first._M_current;\n    iVar11 = iVar10;\n    if (iVar6 < 0xe) goto LAB_002a3600;\n    do {\n      local_2c = iVar10 << 3;\n      ppOVar1 = local_30;\n      _Var2._M_current = __first._M_current;\n      do {\n        _Var7._M_current = _Var2._M_current + local_2c;\n        ppOVar1 = (Output_section **)\n                  (*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_);\n        iVar3 = (int)__last._M_current - (int)_Var7._M_current >> 2;\n        _Var2._M_current = _Var7._M_current;\n        iVar11 = iVar10;\n      } while (iVar5 <= iVar3);\nLAB_002a3600:\n      do {\n        iVar10 = iVar4;\n        if (iVar11 <= iVar3) {\n          iVar3 = iVar11;\n        }\n        (*local_3c)(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,\n                    __last._M_current,ppOVar1,__comp._M_comp.elements_);\n        if (iVar6 < iVar10) {\n          if (iVar6 <= iVar5) {\n            iVar5 = iVar6;\n          }\n          (*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_);\n          return;\n        }\n        local_2c = iVar5 << 2;\n        iVar4 = iVar10 * 4;\n        ppOVar1 = local_30;\n        _Var7._M_current = __first._M_current;\n        do {\n          ppOVar8 = ppOVar1 + iVar10;\n          (*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_);\n          iVar3 = iVar9 - (int)ppOVar8 >> 2;\n          ppOVar1 = ppOVar8;\n          _Var7._M_current = local_40;\n        } while (iVar10 <= iVar3);\n        if (iVar5 < iVar3) {\n          iVar3 = iVar5;\n        }\n        (*local_34)(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,\n                    __comp._M_comp.elements_);\n        iVar5 = iVar10 << 1;\n        if (iVar6 <= iVar10) {\n          return;\n        }\n        ppOVar1 = local_30;\n        iVar3 = iVar6;\n        _Var7._M_current = __first._M_current;\n        iVar11 = iVar10;\n      } while (iVar6 < iVar5);\n    } while( true );\n  }" { (expression_statement "local_3c = (code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,_gold_Output_section**,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4810\n    ;" (assignment_expression "local_3c = (code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,_gold_Output_section**,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4810" identifier = (binary_expression "(code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,_gold_Output_section**,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4810" (binary_expression "(code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,_gold_Output_section**,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_" (binary_expression "(code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,_gold_Output_section**,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections" (binary_expression "(code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,_gold_Output_section**,___gnu_cxx___ops__Iter_comp_iter" (binary_expression "(code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_" (binary_expression "(code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section" (binary_expression "(code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator<gold_Output_section**,_std_vector" (binary_expression "(code *)\n               PTR___move_merge<__gnu_cxx___normal_iterator" (cast_expression "(code *)\n               PTR___move_merge" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < identifier) < (binary_expression "gold_Output_section**,_std_vector" identifier * (pointer_expression "*,_std_vector" * (ERROR "," ,) identifier))) < identifier) (ERROR "*" *) > identifier) > (ERROR "," ,) (binary_expression "_gold_Output_section**,___gnu_cxx___ops__Iter_comp_iter" identifier * (pointer_expression "*,___gnu_cxx___ops__Iter_comp_iter" * (ERROR "," ,) identifier))) < identifier) > identifier) > identifier)) ;) (expression_statement "iVar10 = 7;" (assignment_expression "iVar10 = 7" identifier = number_literal) ;) (expression_statement "iVar5 = 0xe;" (assignment_expression "iVar5 = 0xe" identifier = number_literal) ;) (expression_statement "local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4814\n    ;" (assignment_expression "local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4814" identifier = (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_>_004c4814" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections>_" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,___gnu_cxx___ops__Iter_comp_iter<gold_Sort_output_sections" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_>,___gnu_cxx___ops__Iter_comp_iter" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section*>_" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector<gold_Output_section" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator<gold_Output_section**,_std_vector" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,___gnu_cxx___normal_iterator" (cast_expression "(code *)\n               PTR___move_merge" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < (binary_expression "gold_Output_section**,___gnu_cxx___normal_iterator" identifier * (pointer_expression "*,___gnu_cxx___normal_iterator" * (ERROR "," ,) identifier))) < (binary_expression "gold_Output_section**,_std_vector" identifier * (pointer_expression "*,_std_vector" * (ERROR "," ,) identifier))) < identifier) (ERROR "*" *) > identifier) > (ERROR "," ,) identifier) < identifier) > identifier) > identifier)) ;) (expression_statement "local_38 = &local_40;" (assignment_expression "local_38 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "iVar4 = 0x1c;" (assignment_expression "iVar4 = 0x1c" identifier = number_literal) ;) (expression_statement "ppOVar1 = local_30;" (assignment_expression "ppOVar1 = local_30" identifier = identifier) ;) (expression_statement "iVar3 = iVar6;" (assignment_expression "iVar3 = iVar6" identifier = identifier) ;) (expression_statement "_Var7._M_current = __first._M_current;" (assignment_expression "_Var7._M_current = __first._M_current" (field_expression "_Var7._M_current" identifier . field_identifier) = (field_expression "__first._M_current" identifier . field_identifier)) ;) (expression_statement "iVar11 = iVar10;" (assignment_expression "iVar11 = iVar10" identifier = identifier) ;) (if_statement "if (iVar6 < 0xe) goto LAB_002a3600;" if (parenthesized_expression "(iVar6 < 0xe)" ( (binary_expression "iVar6 < 0xe" identifier < number_literal) )) (goto_statement "goto LAB_002a3600;" goto statement_identifier ;)) (do_statement "do {\n      local_2c = iVar10 << 3;\n      ppOVar1 = local_30;\n      _Var2._M_current = __first._M_current;\n      do {\n        _Var7._M_current = _Var2._M_current + local_2c;\n        ppOVar1 = (Output_section **)\n                  (*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_);\n        iVar3 = (int)__last._M_current - (int)_Var7._M_current >> 2;\n        _Var2._M_current = _Var7._M_current;\n        iVar11 = iVar10;\n      } while (iVar5 <= iVar3);\nLAB_002a3600:\n      do {\n        iVar10 = iVar4;\n        if (iVar11 <= iVar3) {\n          iVar3 = iVar11;\n        }\n        (*local_3c)(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,\n                    __last._M_current,ppOVar1,__comp._M_comp.elements_);\n        if (iVar6 < iVar10) {\n          if (iVar6 <= iVar5) {\n            iVar5 = iVar6;\n          }\n          (*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_);\n          return;\n        }\n        local_2c = iVar5 << 2;\n        iVar4 = iVar10 * 4;\n        ppOVar1 = local_30;\n        _Var7._M_current = __first._M_current;\n        do {\n          ppOVar8 = ppOVar1 + iVar10;\n          (*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_);\n          iVar3 = iVar9 - (int)ppOVar8 >> 2;\n          ppOVar1 = ppOVar8;\n          _Var7._M_current = local_40;\n        } while (iVar10 <= iVar3);\n        if (iVar5 < iVar3) {\n          iVar3 = iVar5;\n        }\n        (*local_34)(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,\n                    __comp._M_comp.elements_);\n        iVar5 = iVar10 << 1;\n        if (iVar6 <= iVar10) {\n          return;\n        }\n        ppOVar1 = local_30;\n        iVar3 = iVar6;\n        _Var7._M_current = __first._M_current;\n        iVar11 = iVar10;\n      } while (iVar6 < iVar5);\n    } while( true );" do (compound_statement "{\n      local_2c = iVar10 << 3;\n      ppOVar1 = local_30;\n      _Var2._M_current = __first._M_current;\n      do {\n        _Var7._M_current = _Var2._M_current + local_2c;\n        ppOVar1 = (Output_section **)\n                  (*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_);\n        iVar3 = (int)__last._M_current - (int)_Var7._M_current >> 2;\n        _Var2._M_current = _Var7._M_current;\n        iVar11 = iVar10;\n      } while (iVar5 <= iVar3);\nLAB_002a3600:\n      do {\n        iVar10 = iVar4;\n        if (iVar11 <= iVar3) {\n          iVar3 = iVar11;\n        }\n        (*local_3c)(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,\n                    __last._M_current,ppOVar1,__comp._M_comp.elements_);\n        if (iVar6 < iVar10) {\n          if (iVar6 <= iVar5) {\n            iVar5 = iVar6;\n          }\n          (*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_);\n          return;\n        }\n        local_2c = iVar5 << 2;\n        iVar4 = iVar10 * 4;\n        ppOVar1 = local_30;\n        _Var7._M_current = __first._M_current;\n        do {\n          ppOVar8 = ppOVar1 + iVar10;\n          (*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_);\n          iVar3 = iVar9 - (int)ppOVar8 >> 2;\n          ppOVar1 = ppOVar8;\n          _Var7._M_current = local_40;\n        } while (iVar10 <= iVar3);\n        if (iVar5 < iVar3) {\n          iVar3 = iVar5;\n        }\n        (*local_34)(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,\n                    __comp._M_comp.elements_);\n        iVar5 = iVar10 << 1;\n        if (iVar6 <= iVar10) {\n          return;\n        }\n        ppOVar1 = local_30;\n        iVar3 = iVar6;\n        _Var7._M_current = __first._M_current;\n        iVar11 = iVar10;\n      } while (iVar6 < iVar5);\n    }" { (expression_statement "local_2c = iVar10 << 3;" (assignment_expression "local_2c = iVar10 << 3" identifier = (binary_expression "iVar10 << 3" identifier << number_literal)) ;) (expression_statement "ppOVar1 = local_30;" (assignment_expression "ppOVar1 = local_30" identifier = identifier) ;) (expression_statement "_Var2._M_current = __first._M_current;" (assignment_expression "_Var2._M_current = __first._M_current" (field_expression "_Var2._M_current" identifier . field_identifier) = (field_expression "__first._M_current" identifier . field_identifier)) ;) (do_statement "do {\n        _Var7._M_current = _Var2._M_current + local_2c;\n        ppOVar1 = (Output_section **)\n                  (*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_);\n        iVar3 = (int)__last._M_current - (int)_Var7._M_current >> 2;\n        _Var2._M_current = _Var7._M_current;\n        iVar11 = iVar10;\n      } while (iVar5 <= iVar3);" do (compound_statement "{\n        _Var7._M_current = _Var2._M_current + local_2c;\n        ppOVar1 = (Output_section **)\n                  (*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_);\n        iVar3 = (int)__last._M_current - (int)_Var7._M_current >> 2;\n        _Var2._M_current = _Var7._M_current;\n        iVar11 = iVar10;\n      }" { (expression_statement "_Var7._M_current = _Var2._M_current + local_2c;" (assignment_expression "_Var7._M_current = _Var2._M_current + local_2c" (field_expression "_Var7._M_current" identifier . field_identifier) = (binary_expression "_Var2._M_current + local_2c" (field_expression "_Var2._M_current" identifier . field_identifier) + identifier)) ;) (expression_statement "ppOVar1 = (Output_section **)\n                  (*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_);" (assignment_expression "ppOVar1 = (Output_section **)\n                  (*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_)" identifier = (cast_expression "(Output_section **)\n                  (*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*local_3c)(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(_Var2._M_current,(int)_Var2._M_current + iVar4,\n                              (int)_Var2._M_current + iVar4,_Var7._M_current,ppOVar1,\n                              __comp._M_comp.elements_)" ( (field_expression "_Var2._M_current" identifier . field_identifier) , (binary_expression "(int)_Var2._M_current + iVar4" (cast_expression "(int)_Var2._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "_Var2._M_current" identifier . field_identifier)) + identifier) , (binary_expression "(int)_Var2._M_current + iVar4" (cast_expression "(int)_Var2._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "_Var2._M_current" identifier . field_identifier)) + identifier) , (field_expression "_Var7._M_current" identifier . field_identifier) , identifier , (field_expression "__comp._M_comp.elements_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier) ))))) ;) (expression_statement "iVar3 = (int)__last._M_current - (int)_Var7._M_current >> 2;" (assignment_expression "iVar3 = (int)__last._M_current - (int)_Var7._M_current >> 2" identifier = (binary_expression "(int)__last._M_current - (int)_Var7._M_current >> 2" (binary_expression "(int)__last._M_current - (int)_Var7._M_current" (cast_expression "(int)__last._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__last._M_current" identifier . field_identifier)) - (cast_expression "(int)_Var7._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "_Var7._M_current" identifier . field_identifier))) >> number_literal)) ;) (expression_statement "_Var2._M_current = _Var7._M_current;" (assignment_expression "_Var2._M_current = _Var7._M_current" (field_expression "_Var2._M_current" identifier . field_identifier) = (field_expression "_Var7._M_current" identifier . field_identifier)) ;) (expression_statement "iVar11 = iVar10;" (assignment_expression "iVar11 = iVar10" identifier = identifier) ;) }) while (parenthesized_expression "(iVar5 <= iVar3)" ( (binary_expression "iVar5 <= iVar3" identifier <= identifier) )) ;) (labeled_statement "LAB_002a3600:\n      do {\n        iVar10 = iVar4;\n        if (iVar11 <= iVar3) {\n          iVar3 = iVar11;\n        }\n        (*local_3c)(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,\n                    __last._M_current,ppOVar1,__comp._M_comp.elements_);\n        if (iVar6 < iVar10) {\n          if (iVar6 <= iVar5) {\n            iVar5 = iVar6;\n          }\n          (*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_);\n          return;\n        }\n        local_2c = iVar5 << 2;\n        iVar4 = iVar10 * 4;\n        ppOVar1 = local_30;\n        _Var7._M_current = __first._M_current;\n        do {\n          ppOVar8 = ppOVar1 + iVar10;\n          (*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_);\n          iVar3 = iVar9 - (int)ppOVar8 >> 2;\n          ppOVar1 = ppOVar8;\n          _Var7._M_current = local_40;\n        } while (iVar10 <= iVar3);\n        if (iVar5 < iVar3) {\n          iVar3 = iVar5;\n        }\n        (*local_34)(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,\n                    __comp._M_comp.elements_);\n        iVar5 = iVar10 << 1;\n        if (iVar6 <= iVar10) {\n          return;\n        }\n        ppOVar1 = local_30;\n        iVar3 = iVar6;\n        _Var7._M_current = __first._M_current;\n        iVar11 = iVar10;\n      } while (iVar6 < iVar5);" statement_identifier : (do_statement "do {\n        iVar10 = iVar4;\n        if (iVar11 <= iVar3) {\n          iVar3 = iVar11;\n        }\n        (*local_3c)(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,\n                    __last._M_current,ppOVar1,__comp._M_comp.elements_);\n        if (iVar6 < iVar10) {\n          if (iVar6 <= iVar5) {\n            iVar5 = iVar6;\n          }\n          (*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_);\n          return;\n        }\n        local_2c = iVar5 << 2;\n        iVar4 = iVar10 * 4;\n        ppOVar1 = local_30;\n        _Var7._M_current = __first._M_current;\n        do {\n          ppOVar8 = ppOVar1 + iVar10;\n          (*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_);\n          iVar3 = iVar9 - (int)ppOVar8 >> 2;\n          ppOVar1 = ppOVar8;\n          _Var7._M_current = local_40;\n        } while (iVar10 <= iVar3);\n        if (iVar5 < iVar3) {\n          iVar3 = iVar5;\n        }\n        (*local_34)(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,\n                    __comp._M_comp.elements_);\n        iVar5 = iVar10 << 1;\n        if (iVar6 <= iVar10) {\n          return;\n        }\n        ppOVar1 = local_30;\n        iVar3 = iVar6;\n        _Var7._M_current = __first._M_current;\n        iVar11 = iVar10;\n      } while (iVar6 < iVar5);" do (compound_statement "{\n        iVar10 = iVar4;\n        if (iVar11 <= iVar3) {\n          iVar3 = iVar11;\n        }\n        (*local_3c)(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,\n                    __last._M_current,ppOVar1,__comp._M_comp.elements_);\n        if (iVar6 < iVar10) {\n          if (iVar6 <= iVar5) {\n            iVar5 = iVar6;\n          }\n          (*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_);\n          return;\n        }\n        local_2c = iVar5 << 2;\n        iVar4 = iVar10 * 4;\n        ppOVar1 = local_30;\n        _Var7._M_current = __first._M_current;\n        do {\n          ppOVar8 = ppOVar1 + iVar10;\n          (*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_);\n          iVar3 = iVar9 - (int)ppOVar8 >> 2;\n          ppOVar1 = ppOVar8;\n          _Var7._M_current = local_40;\n        } while (iVar10 <= iVar3);\n        if (iVar5 < iVar3) {\n          iVar3 = iVar5;\n        }\n        (*local_34)(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,\n                    __comp._M_comp.elements_);\n        iVar5 = iVar10 << 1;\n        if (iVar6 <= iVar10) {\n          return;\n        }\n        ppOVar1 = local_30;\n        iVar3 = iVar6;\n        _Var7._M_current = __first._M_current;\n        iVar11 = iVar10;\n      }" { (expression_statement "iVar10 = iVar4;" (assignment_expression "iVar10 = iVar4" identifier = identifier) ;) (if_statement "if (iVar11 <= iVar3) {\n          iVar3 = iVar11;\n        }" if (parenthesized_expression "(iVar11 <= iVar3)" ( (binary_expression "iVar11 <= iVar3" identifier <= identifier) )) (compound_statement "{\n          iVar3 = iVar11;\n        }" { (expression_statement "iVar3 = iVar11;" (assignment_expression "iVar3 = iVar11" identifier = identifier) ;) })) (expression_statement "(*local_3c)(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,\n                    __last._M_current,ppOVar1,__comp._M_comp.elements_);" (call_expression "(*local_3c)(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,\n                    __last._M_current,ppOVar1,__comp._M_comp.elements_)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(_Var7._M_current,_Var7._M_current + iVar3,_Var7._M_current + iVar3,\n                    __last._M_current,ppOVar1,__comp._M_comp.elements_)" ( (field_expression "_Var7._M_current" identifier . field_identifier) , (binary_expression "_Var7._M_current + iVar3" (field_expression "_Var7._M_current" identifier . field_identifier) + identifier) , (binary_expression "_Var7._M_current + iVar3" (field_expression "_Var7._M_current" identifier . field_identifier) + identifier) , (field_expression "__last._M_current" identifier . field_identifier) , identifier , (field_expression "__comp._M_comp.elements_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier) ))) ;) (if_statement "if (iVar6 < iVar10) {\n          if (iVar6 <= iVar5) {\n            iVar5 = iVar6;\n          }\n          (*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_);\n          return;\n        }" if (parenthesized_expression "(iVar6 < iVar10)" ( (binary_expression "iVar6 < iVar10" identifier < identifier) )) (compound_statement "{\n          if (iVar6 <= iVar5) {\n            iVar5 = iVar6;\n          }\n          (*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_);\n          return;\n        }" { (if_statement "if (iVar6 <= iVar5) {\n            iVar5 = iVar6;\n          }" if (parenthesized_expression "(iVar6 <= iVar5)" ( (binary_expression "iVar6 <= iVar5" identifier <= identifier) )) (compound_statement "{\n            iVar5 = iVar6;\n          }" { (expression_statement "iVar5 = iVar6;" (assignment_expression "iVar5 = iVar6" identifier = identifier) ;) })) (expression_statement "(*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_);" (call_expression "(*local_34)(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(local_38,local_30,local_30 + iVar5,local_30 + iVar5,iVar9,__first._M_current,\n                      __comp._M_comp.elements_)" ( identifier , identifier , (binary_expression "local_30 + iVar5" identifier + identifier) , (binary_expression "local_30 + iVar5" identifier + identifier) , identifier , (field_expression "__first._M_current" identifier . field_identifier) , (field_expression "__comp._M_comp.elements_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier) ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_2c = iVar5 << 2;" (assignment_expression "local_2c = iVar5 << 2" identifier = (binary_expression "iVar5 << 2" identifier << number_literal)) ;) (expression_statement "iVar4 = iVar10 * 4;" (assignment_expression "iVar4 = iVar10 * 4" identifier = (binary_expression "iVar10 * 4" identifier * number_literal)) ;) (expression_statement "ppOVar1 = local_30;" (assignment_expression "ppOVar1 = local_30" identifier = identifier) ;) (expression_statement "_Var7._M_current = __first._M_current;" (assignment_expression "_Var7._M_current = __first._M_current" (field_expression "_Var7._M_current" identifier . field_identifier) = (field_expression "__first._M_current" identifier . field_identifier)) ;) (do_statement "do {\n          ppOVar8 = ppOVar1 + iVar10;\n          (*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_);\n          iVar3 = iVar9 - (int)ppOVar8 >> 2;\n          ppOVar1 = ppOVar8;\n          _Var7._M_current = local_40;\n        } while (iVar10 <= iVar3);" do (compound_statement "{\n          ppOVar8 = ppOVar1 + iVar10;\n          (*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_);\n          iVar3 = iVar9 - (int)ppOVar8 >> 2;\n          ppOVar1 = ppOVar8;\n          _Var7._M_current = local_40;\n        }" { (expression_statement "ppOVar8 = ppOVar1 + iVar10;" (assignment_expression "ppOVar8 = ppOVar1 + iVar10" identifier = (binary_expression "ppOVar1 + iVar10" identifier + identifier)) ;) (expression_statement "(*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_);" (call_expression "(*local_34)(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(local_38,ppOVar1,(int)ppOVar1 + local_2c,(int)ppOVar1 + local_2c,ppOVar8,\n                      _Var7._M_current,__comp._M_comp.elements_)" ( identifier , identifier , (binary_expression "(int)ppOVar1 + local_2c" (cast_expression "(int)ppOVar1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "(int)ppOVar1 + local_2c" (cast_expression "(int)ppOVar1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , identifier , (field_expression "_Var7._M_current" identifier . field_identifier) , (field_expression "__comp._M_comp.elements_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "iVar3 = iVar9 - (int)ppOVar8 >> 2;" (assignment_expression "iVar3 = iVar9 - (int)ppOVar8 >> 2" identifier = (binary_expression "iVar9 - (int)ppOVar8 >> 2" (binary_expression "iVar9 - (int)ppOVar8" identifier - (cast_expression "(int)ppOVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "ppOVar1 = ppOVar8;" (assignment_expression "ppOVar1 = ppOVar8" identifier = identifier) ;) (expression_statement "_Var7._M_current = local_40;" (assignment_expression "_Var7._M_current = local_40" (field_expression "_Var7._M_current" identifier . field_identifier) = identifier) ;) }) while (parenthesized_expression "(iVar10 <= iVar3)" ( (binary_expression "iVar10 <= iVar3" identifier <= identifier) )) ;) (if_statement "if (iVar5 < iVar3) {\n          iVar3 = iVar5;\n        }" if (parenthesized_expression "(iVar5 < iVar3)" ( (binary_expression "iVar5 < iVar3" identifier < identifier) )) (compound_statement "{\n          iVar3 = iVar5;\n        }" { (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) })) (expression_statement "(*local_34)(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,\n                    __comp._M_comp.elements_);" (call_expression "(*local_34)(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,\n                    __comp._M_comp.elements_)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(local_38,ppOVar8,ppOVar8 + iVar3,ppOVar8 + iVar3,iVar9,local_40,\n                    __comp._M_comp.elements_)" ( identifier , identifier , (binary_expression "ppOVar8 + iVar3" identifier + identifier) , (binary_expression "ppOVar8 + iVar3" identifier + identifier) , identifier , identifier , (field_expression "__comp._M_comp.elements_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "iVar5 = iVar10 << 1;" (assignment_expression "iVar5 = iVar10 << 1" identifier = (binary_expression "iVar10 << 1" identifier << number_literal)) ;) (if_statement "if (iVar6 <= iVar10) {\n          return;\n        }" if (parenthesized_expression "(iVar6 <= iVar10)" ( (binary_expression "iVar6 <= iVar10" identifier <= identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "ppOVar1 = local_30;" (assignment_expression "ppOVar1 = local_30" identifier = identifier) ;) (expression_statement "iVar3 = iVar6;" (assignment_expression "iVar3 = iVar6" identifier = identifier) ;) (expression_statement "_Var7._M_current = __first._M_current;" (assignment_expression "_Var7._M_current = __first._M_current" (field_expression "_Var7._M_current" identifier . field_identifier) = (field_expression "__first._M_current" identifier . field_identifier)) ;) (expression_statement "iVar11 = iVar10;" (assignment_expression "iVar11 = iVar10" identifier = identifier) ;) }) while (parenthesized_expression "(iVar6 < iVar5)" ( (binary_expression "iVar6 < iVar5" identifier < identifier) )) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void std::\n     __merge_sort_with_buffer<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,gold::Output_section**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int local_40;\n  code *local_3c;\n  int *local_38;\n  code *local_34;\n  int local_30;\n  int local_2c;\n  \n  iVar3 = param_2 - param_1;\n  iVar8 = param_3 + iVar3;\n  if (iVar3 < 0x19) {\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4);\n    return;\n  }\n  iVar5 = iVar3 >> 2;\n  iVar2 = param_1;\n  local_30 = param_3;\n  do {\n    iVar9 = iVar2 + 0x1c;\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4);\n    iVar2 = iVar9;\n  } while (0x18 < param_2 - iVar9);\n  __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n            (iVar9,param_2,param_4);\n  if (0x1c < iVar3) {\n    local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810\n    ;\n    iVar10 = 7;\n    iVar4 = 0xe;\n    local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814\n    ;\n    local_38 = &local_40;\n    iVar9 = 0x1c;\n    iVar3 = local_30;\n    iVar2 = iVar5;\n    iVar6 = param_1;\n    iVar7 = iVar10;\n    if (iVar5 < 0xe) goto LAB_002a3600;\n    do {\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    } while( true );\n  }\n  return;\n}\n\n" (declaration "void std::\n     __merge_sort_with_buffer<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,gold::Output_section**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  int iVar1;" primitive_type (ERROR "std::\n     __merge_sort_with_buffer<__normal_iterator<gold::Output_section" identifier : : identifier < identifier < identifier : : identifier) (pointer_declarator "**,std::vector<gold::Output_section" * (pointer_declarator "*,std::vector<gold::Output_section" * (ERROR ",std::vector<gold::" , identifier : : identifier < identifier : :) identifier)) (ERROR "*" *) , (ERROR "std::allocator<gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>>>" * >> >) , (ERROR "gold::Output_section**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  int" identifier : : identifier (pointer_declarator "**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)" * (function_declarator "*,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)" (pointer_declarator "*,__ops::_Iter_comp_iter<gold::Sort_output_sections" * (ERROR ",__ops::_Iter_comp_iter<gold::" , identifier : : identifier < identifier : :) identifier) (ERROR ">>" >>) (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) )))) { primitive_type) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "code *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "int *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "iVar3 = param_2 - param_1;" (assignment_expression "iVar3 = param_2 - param_1" identifier = (binary_expression "param_2 - param_1" identifier - identifier)) ;) (expression_statement "iVar8 = param_3 + iVar3;" (assignment_expression "iVar8 = param_3 + iVar3" identifier = (binary_expression "param_3 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < 0x19) {\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4);\n    return;\n  }" if (parenthesized_expression "(iVar3 < 0x19)" ( (binary_expression "iVar3 < 0x19" identifier < number_literal) )) (compound_statement "{\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4);\n    return;\n  }" { (expression_statement "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4);" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std" (binary_expression "__insertion_sort<__normal_iterator<gold" (binary_expression "__insertion_sort<__normal_iterator" identifier < identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section*>>" : : identifier * >>) > (ERROR "," ,) identifier) (ERROR "::_Iter_comp_iter" : : identifier) < identifier) (ERROR "::Sort_output_sections" : : identifier) >> (parenthesized_expression "(param_1,param_2,param_4)" ( (comma_expression "param_1,param_2,param_4" identifier , (comma_expression "param_2,param_4" identifier , identifier)) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar5 = iVar3 >> 2;" (assignment_expression "iVar5 = iVar3 >> 2" identifier = (binary_expression "iVar3 >> 2" identifier >> number_literal)) ;) (expression_statement "iVar2 = param_1;" (assignment_expression "iVar2 = param_1" identifier = identifier) ;) (expression_statement "local_30 = param_3;" (assignment_expression "local_30 = param_3" identifier = identifier) ;) (do_statement "do {\n    iVar9 = iVar2 + 0x1c;\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4);\n    iVar2 = iVar9;\n  } while (0x18 < param_2 - iVar9);" do (compound_statement "{\n    iVar9 = iVar2 + 0x1c;\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4);\n    iVar2 = iVar9;\n  }" { (expression_statement "iVar9 = iVar2 + 0x1c;" (assignment_expression "iVar9 = iVar2 + 0x1c" identifier = (binary_expression "iVar2 + 0x1c" identifier + number_literal)) ;) (expression_statement "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4);" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std" (binary_expression "__insertion_sort<__normal_iterator<gold" (binary_expression "__insertion_sort<__normal_iterator" identifier < identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section*>>" : : identifier * >>) > (ERROR "," ,) identifier) (ERROR "::_Iter_comp_iter" : : identifier) < identifier) (ERROR "::Sort_output_sections" : : identifier) >> (parenthesized_expression "(iVar2,iVar9,param_4)" ( (comma_expression "iVar2,iVar9,param_4" identifier , (comma_expression "iVar9,param_4" identifier , identifier)) ))) ;) (expression_statement "iVar2 = iVar9;" (assignment_expression "iVar2 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(0x18 < param_2 - iVar9)" ( (binary_expression "0x18 < param_2 - iVar9" number_literal < (binary_expression "param_2 - iVar9" identifier - identifier)) )) ;) (expression_statement "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n            (iVar9,param_2,param_4);" (update_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n            (iVar9,param_2,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n            (iVar9,param_2,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std" (binary_expression "__insertion_sort<__normal_iterator<gold" (binary_expression "__insertion_sort<__normal_iterator" identifier < identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section*>>" : : identifier * >>) > (ERROR "," ,) identifier) (ERROR "::_Iter_comp_iter" : : identifier) < identifier) (ERROR "::Sort_output_sections" : : identifier) >> (parenthesized_expression "(iVar9,param_2,param_4)" ( (comma_expression "iVar9,param_2,param_4" identifier , (comma_expression "param_2,param_4" identifier , identifier)) ))) --) ;) (if_statement "if (0x1c < iVar3) {\n    local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810\n    ;\n    iVar10 = 7;\n    iVar4 = 0xe;\n    local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814\n    ;\n    local_38 = &local_40;\n    iVar9 = 0x1c;\n    iVar3 = local_30;\n    iVar2 = iVar5;\n    iVar6 = param_1;\n    iVar7 = iVar10;\n    if (iVar5 < 0xe) goto LAB_002a3600;\n    do {\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    } while( true );\n  }" if (parenthesized_expression "(0x1c < iVar3)" ( (binary_expression "0x1c < iVar3" number_literal < identifier) )) (compound_statement "{\n    local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810\n    ;\n    iVar10 = 7;\n    iVar4 = 0xe;\n    local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814\n    ;\n    local_38 = &local_40;\n    iVar9 = 0x1c;\n    iVar3 = local_30;\n    iVar2 = iVar5;\n    iVar6 = param_1;\n    iVar7 = iVar10;\n    if (iVar5 < 0xe) goto LAB_002a3600;\n    do {\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    } while( true );\n  }" { (expression_statement "local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810\n    ;" (comma_expression "local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810" (assignment_expression "local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" identifier = (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator" (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector" (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator" (cast_expression "(code *)\n               PTR___move_merge" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < identifier) < (binary_expression "gold_Output_section**,std_vector" identifier * (pointer_expression "*,std_vector" * (ERROR "," ,) identifier))) < (binary_expression "gold_Output_section*,std_allocator" identifier * (ERROR "," ,) identifier)) < identifier)) (ERROR "*>>>" * >> >) , (binary_expression "gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810" (binary_expression "gold_Output_section**,__ops__Iter_comp_iter" identifier * (pointer_expression "*,__ops__Iter_comp_iter" * (ERROR "," ,) identifier)) < (binary_expression "gold_Sort_output_sections>>_004c4810" identifier >> identifier))) ;) (expression_statement "iVar10 = 7;" (assignment_expression "iVar10 = 7" identifier = number_literal) ;) (expression_statement "iVar4 = 0xe;" (assignment_expression "iVar4 = 0xe" identifier = number_literal) ;) (expression_statement "local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814\n    ;" (comma_expression "local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814" (assignment_expression "local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" identifier = (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator" (cast_expression "(code *)\n               PTR___move_merge" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < (binary_expression "gold_Output_section**,__normal_iterator" identifier * (pointer_expression "*,__normal_iterator" * (ERROR "," ,) identifier))) < (binary_expression "gold_Output_section**,std_vector" identifier * (pointer_expression "*,std_vector" * (ERROR "," ,) identifier))) < (binary_expression "gold_Output_section*,std_allocator" identifier * (ERROR "," ,) identifier)) < identifier)) (ERROR "*>>>" * >> >) , (binary_expression "__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814" identifier < (binary_expression "gold_Sort_output_sections>>_004c4814" identifier >> identifier))) ;) (expression_statement "local_38 = &local_40;" (assignment_expression "local_38 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "iVar9 = 0x1c;" (assignment_expression "iVar9 = 0x1c" identifier = number_literal) ;) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" identifier = identifier) ;) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" identifier = identifier) ;) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" identifier = identifier) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) (if_statement "if (iVar5 < 0xe) goto LAB_002a3600;" if (parenthesized_expression "(iVar5 < 0xe)" ( (binary_expression "iVar5 < 0xe" identifier < number_literal) )) (goto_statement "goto LAB_002a3600;" goto statement_identifier ;)) (do_statement "do {\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    } while( true );" do (compound_statement "{\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    }" { (expression_statement "local_2c = iVar10 << 3;" (assignment_expression "local_2c = iVar10 << 3" identifier = (binary_expression "iVar10 << 3" identifier << number_literal)) ;) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" identifier = identifier) ;) (expression_statement "iVar1 = param_1;" (assignment_expression "iVar1 = param_1" identifier = identifier) ;) (do_statement "do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);" do (compound_statement "{\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      }" { (expression_statement "iVar6 = iVar1 + local_2c;" (assignment_expression "iVar6 = iVar1 + local_2c" identifier = (binary_expression "iVar1 + local_2c" identifier + identifier)) ;) (expression_statement "iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);" (assignment_expression "iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4)" identifier = (call_expression "(*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4)" ( identifier , (binary_expression "iVar1 + iVar9" identifier + identifier) , (binary_expression "iVar1 + iVar9" identifier + identifier) , identifier , identifier , identifier )))) ;) (expression_statement "iVar2 = param_2 - iVar6 >> 2;" (assignment_expression "iVar2 = param_2 - iVar6 >> 2" identifier = (binary_expression "param_2 - iVar6 >> 2" (binary_expression "param_2 - iVar6" identifier - identifier) >> number_literal)) ;) (expression_statement "iVar1 = iVar6;" (assignment_expression "iVar1 = iVar6" identifier = identifier) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 <= iVar2)" ( (binary_expression "iVar4 <= iVar2" identifier <= identifier) )) ;) (labeled_statement "LAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);" statement_identifier : (do_statement "do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);" do (compound_statement "{\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      }" { (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) (if_statement "if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }" if (parenthesized_expression "(iVar7 <= iVar2)" ( (binary_expression "iVar7 <= iVar2" identifier <= identifier) )) (compound_statement "{\n          iVar2 = iVar7;\n        }" { (expression_statement "iVar2 = iVar7;" (assignment_expression "iVar2 = iVar7" identifier = identifier) ;) })) (expression_statement "iVar2 = iVar6 + iVar2 * 4;" (assignment_expression "iVar2 = iVar6 + iVar2 * 4" identifier = (binary_expression "iVar6 + iVar2 * 4" identifier + (binary_expression "iVar2 * 4" identifier * number_literal))) ;) (expression_statement "(*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);" (call_expression "(*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(iVar6,iVar2,iVar2,param_2,iVar3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }" if (parenthesized_expression "(iVar5 < iVar10)" ( (binary_expression "iVar5 < iVar10" identifier < identifier) )) (compound_statement "{\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }" { (if_statement "if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }" if (parenthesized_expression "(iVar5 <= iVar4)" ( (binary_expression "iVar5 <= iVar4" identifier <= identifier) )) (compound_statement "{\n            iVar4 = iVar5;\n          }" { (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" identifier = identifier) ;) })) (expression_statement "iVar3 = local_30 + iVar4 * 4;" (assignment_expression "iVar3 = local_30 + iVar4 * 4" identifier = (binary_expression "local_30 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal))) ;) (expression_statement "(*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);" (call_expression "(*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_2c = iVar4 << 2;" (assignment_expression "local_2c = iVar4 << 2" identifier = (binary_expression "iVar4 << 2" identifier << number_literal)) ;) (expression_statement "iVar9 = iVar10 * 4;" (assignment_expression "iVar9 = iVar10 * 4" identifier = (binary_expression "iVar10 * 4" identifier * number_literal)) ;) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" identifier = identifier) ;) (expression_statement "iVar2 = param_1;" (assignment_expression "iVar2 = param_1" identifier = identifier) ;) (do_statement "do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);" do (compound_statement "{\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        }" { (expression_statement "iVar7 = iVar3 + iVar9;" (assignment_expression "iVar7 = iVar3 + iVar9" identifier = (binary_expression "iVar3 + iVar9" identifier + identifier)) ;) (expression_statement "(*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);" (call_expression "(*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4)" ( identifier , identifier , (binary_expression "iVar3 + local_2c" identifier + identifier) , (binary_expression "iVar3 + local_2c" identifier + identifier) , identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = iVar8 - iVar7 >> 2;" (assignment_expression "iVar6 = iVar8 - iVar7 >> 2" identifier = (binary_expression "iVar8 - iVar7 >> 2" (binary_expression "iVar8 - iVar7" identifier - identifier) >> number_literal)) ;) (expression_statement "iVar3 = iVar7;" (assignment_expression "iVar3 = iVar7" identifier = identifier) ;) (expression_statement "iVar2 = local_40;" (assignment_expression "iVar2 = local_40" identifier = identifier) ;) }) while (parenthesized_expression "(iVar10 <= iVar6)" ( (binary_expression "iVar10 <= iVar6" identifier <= identifier) )) ;) (if_statement "if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }" if (parenthesized_expression "(iVar4 < iVar6)" ( (binary_expression "iVar4 < iVar6" identifier < identifier) )) (compound_statement "{\n          iVar6 = iVar4;\n        }" { (expression_statement "iVar6 = iVar4;" (assignment_expression "iVar6 = iVar4" identifier = identifier) ;) })) (expression_statement "iVar3 = iVar7 + iVar6 * 4;" (assignment_expression "iVar3 = iVar7 + iVar6 * 4" identifier = (binary_expression "iVar7 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal))) ;) (expression_statement "(*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);" (call_expression "(*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = iVar10 << 1;" (assignment_expression "iVar4 = iVar10 << 1" identifier = (binary_expression "iVar10 << 1" identifier << number_literal)) ;) (if_statement "if (iVar5 <= iVar10) {\n          return;\n        }" if (parenthesized_expression "(iVar5 <= iVar10)" ( (binary_expression "iVar5 <= iVar10" identifier <= identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" identifier = identifier) ;) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" identifier = identifier) ;) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" identifier = identifier) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) }) while (parenthesized_expression "(iVar5 < iVar4)" ( (binary_expression "iVar5 < iVar4" identifier < identifier) )) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ERROR IDENT : : IDENT < IDENT < IDENT : : IDENT) (pointer_declarator * (pointer_declarator * (ERROR , IDENT : : IDENT < IDENT : :) IDENT)) (ERROR *) , (ERROR IDENT : : IDENT < IDENT : :) IDENT (ERROR * >> >) , (ERROR IDENT : : IDENT (pointer_declarator * (function_declarator (pointer_declarator * (ERROR , IDENT : : IDENT < IDENT : :) IDENT) (ERROR >>) (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) { TYPE) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT < IDENT) < IDENT) (ERROR : : IDENT) * (pointer_expression * (ERROR ,) IDENT)) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) * (ERROR ,) IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT * >>) > (ERROR ,) IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) >> (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , IDENT)) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT < IDENT) < IDENT) (ERROR : : IDENT) * (pointer_expression * (ERROR ,) IDENT)) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) * (ERROR ,) IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT * >>) > (ERROR ,) IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) >> (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - IDENT)) )) ;) (expression_statement (update_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT < IDENT) < IDENT) (ERROR : : IDENT) * (pointer_expression * (ERROR ,) IDENT)) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) * (ERROR ,) IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT * >>) > (ERROR ,) IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) >> (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , IDENT)) ))) --) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) < IDENT) < (binary_expression IDENT * (pointer_expression * (ERROR ,) IDENT))) < (binary_expression IDENT * (ERROR ,) IDENT)) < IDENT)) (ERROR * >> >) , (binary_expression (binary_expression IDENT * (pointer_expression * (ERROR ,) IDENT)) < (binary_expression IDENT >> IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) < (binary_expression IDENT * (pointer_expression * (ERROR ,) IDENT))) < (binary_expression IDENT * (pointer_expression * (ERROR ,) IDENT))) < (binary_expression IDENT * (ERROR ,) IDENT)) < IDENT)) (ERROR * >> >) , (binary_expression IDENT < (binary_expression IDENT >> IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + IDENT) , (binary_expression IDENT + IDENT) , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) , (binary_expression IDENT + IDENT) , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (return_statement return ;) (ERROR }))
(declaration "void std::\n     __merge_sort_with_buffer<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,gold::Output_section**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  int iVar1;" (primitive_type "void") (ERROR "std::\n     __merge_sort_with_buffer<__normal_iterator<gold::Output_section" (identifier "std") (: ":") (: ":") (identifier "__merge_sort_with_buffer") (< "<") (identifier "__normal_iterator") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Output_section")) (pointer_declarator "**,std::vector<gold::Output_section" (* "*") (pointer_declarator "*,std::vector<gold::Output_section" (* "*") (ERROR ",std::vector<gold::" (, ",") (identifier "std") (: ":") (: ":") (identifier "vector") (< "<") (identifier "gold") (: ":") (: ":")) (identifier "Output_section"))) (ERROR "*" (* "*")) (, ",") (ERROR "std::allocator<gold::" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (identifier "gold") (: ":") (: ":")) (identifier "Output_section") (ERROR "*>>>" (* "*") (>> ">>") (> ">")) (, ",") (ERROR "gold::Output_section**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  int" (identifier "gold") (: ":") (: ":") (identifier "Output_section") (pointer_declarator "**,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)" (* "*") (function_declarator "*,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n               (int param_1,int param_2,int param_3,undefined4 param_4)" (pointer_declarator "*,__ops::_Iter_comp_iter<gold::Sort_output_sections" (* "*") (ERROR ",__ops::_Iter_comp_iter<gold::" (, ",") (identifier "__ops") (: ":") (: ":") (identifier "_Iter_comp_iter") (< "<") (identifier "gold") (: ":") (: ":")) (identifier "Sort_output_sections")) (ERROR ">>" (>> ">>")) (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")")))) ({ "{") (primitive_type "int")) (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "code *local_3c;" (type_identifier "code") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "int *local_38;" (primitive_type "int") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "code *local_34;" (type_identifier "code") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "iVar3 = param_2 - param_1;" (assignment_expression "iVar3 = param_2 - param_1" (identifier "iVar3") (= "=") (binary_expression "param_2 - param_1" (identifier "param_2") (- "-") (identifier "param_1"))) (; ";")) (expression_statement "iVar8 = param_3 + iVar3;" (assignment_expression "iVar8 = param_3 + iVar3" (identifier "iVar8") (= "=") (binary_expression "param_3 + iVar3" (identifier "param_3") (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar3 < 0x19) {\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4);\n    return;\n  }" (if "if") (parenthesized_expression "(iVar3 < 0x19)" (( "(") (binary_expression "iVar3 < 0x19" (identifier "iVar3") (< "<") (number_literal "0x19")) () ")")) (compound_statement "{\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4);\n    return;\n  }" ({ "{") (expression_statement "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4);" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (param_1,param_2,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std" (binary_expression "__insertion_sort<__normal_iterator<gold" (binary_expression "__insertion_sort<__normal_iterator" (identifier "__insertion_sort") (< "<") (identifier "__normal_iterator")) (< "<") (identifier "gold")) (ERROR "::Output_section" (: ":") (: ":") (identifier "Output_section")) (* "*") (pointer_expression "*,std" (* "*") (ERROR "," (, ",")) (identifier "std"))) (ERROR "::vector" (: ":") (: ":") (identifier "vector")) (< "<") (identifier "gold")) (ERROR "::Output_section" (: ":") (: ":") (identifier "Output_section")) (* "*") (ERROR "," (, ",")) (identifier "std")) (ERROR "::allocator" (: ":") (: ":") (identifier "allocator")) (< "<") (identifier "gold")) (ERROR "::Output_section*>>" (: ":") (: ":") (identifier "Output_section") (* "*") (>> ">>")) (> ">") (ERROR "," (, ",")) (identifier "__ops")) (ERROR "::_Iter_comp_iter" (: ":") (: ":") (identifier "_Iter_comp_iter")) (< "<") (identifier "gold")) (ERROR "::Sort_output_sections" (: ":") (: ":") (identifier "Sort_output_sections")) (>> ">>") (parenthesized_expression "(param_1,param_2,param_4)" (( "(") (comma_expression "param_1,param_2,param_4" (identifier "param_1") (, ",") (comma_expression "param_2,param_4" (identifier "param_2") (, ",") (identifier "param_4"))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar5 = iVar3 >> 2;" (assignment_expression "iVar5 = iVar3 >> 2" (identifier "iVar5") (= "=") (binary_expression "iVar3 >> 2" (identifier "iVar3") (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "iVar2 = param_1;" (assignment_expression "iVar2 = param_1" (identifier "iVar2") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_30 = param_3;" (assignment_expression "local_30 = param_3" (identifier "local_30") (= "=") (identifier "param_3")) (; ";")) (do_statement "do {\n    iVar9 = iVar2 + 0x1c;\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4);\n    iVar2 = iVar9;\n  } while (0x18 < param_2 - iVar9);" (do "do") (compound_statement "{\n    iVar9 = iVar2 + 0x1c;\n    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4);\n    iVar2 = iVar9;\n  }" ({ "{") (expression_statement "iVar9 = iVar2 + 0x1c;" (assignment_expression "iVar9 = iVar2 + 0x1c" (identifier "iVar9") (= "=") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c"))) (; ";")) (expression_statement "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4);" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n              (iVar2,iVar9,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std" (binary_expression "__insertion_sort<__normal_iterator<gold" (binary_expression "__insertion_sort<__normal_iterator" (identifier "__insertion_sort") (< "<") (identifier "__normal_iterator")) (< "<") (identifier "gold")) (ERROR "::Output_section" (: ":") (: ":") (identifier "Output_section")) (* "*") (pointer_expression "*,std" (* "*") (ERROR "," (, ",")) (identifier "std"))) (ERROR "::vector" (: ":") (: ":") (identifier "vector")) (< "<") (identifier "gold")) (ERROR "::Output_section" (: ":") (: ":") (identifier "Output_section")) (* "*") (ERROR "," (, ",")) (identifier "std")) (ERROR "::allocator" (: ":") (: ":") (identifier "allocator")) (< "<") (identifier "gold")) (ERROR "::Output_section*>>" (: ":") (: ":") (identifier "Output_section") (* "*") (>> ">>")) (> ">") (ERROR "," (, ",")) (identifier "__ops")) (ERROR "::_Iter_comp_iter" (: ":") (: ":") (identifier "_Iter_comp_iter")) (< "<") (identifier "gold")) (ERROR "::Sort_output_sections" (: ":") (: ":") (identifier "Sort_output_sections")) (>> ">>") (parenthesized_expression "(iVar2,iVar9,param_4)" (( "(") (comma_expression "iVar2,iVar9,param_4" (identifier "iVar2") (, ",") (comma_expression "iVar9,param_4" (identifier "iVar9") (, ",") (identifier "param_4"))) () ")"))) (; ";")) (expression_statement "iVar2 = iVar9;" (assignment_expression "iVar2 = iVar9" (identifier "iVar2") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0x18 < param_2 - iVar9)" (( "(") (binary_expression "0x18 < param_2 - iVar9" (number_literal "0x18") (< "<") (binary_expression "param_2 - iVar9" (identifier "param_2") (- "-") (identifier "iVar9"))) () ")")) (; ";")) (expression_statement "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n            (iVar9,param_2,param_4);" (update_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n            (iVar9,param_2,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>\n            (iVar9,param_2,param_4)" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold" (binary_expression "__insertion_sort<__normal_iterator<gold::Output_section**,std" (binary_expression "__insertion_sort<__normal_iterator<gold" (binary_expression "__insertion_sort<__normal_iterator" (identifier "__insertion_sort") (< "<") (identifier "__normal_iterator")) (< "<") (identifier "gold")) (ERROR "::Output_section" (: ":") (: ":") (identifier "Output_section")) (* "*") (pointer_expression "*,std" (* "*") (ERROR "," (, ",")) (identifier "std"))) (ERROR "::vector" (: ":") (: ":") (identifier "vector")) (< "<") (identifier "gold")) (ERROR "::Output_section" (: ":") (: ":") (identifier "Output_section")) (* "*") (ERROR "," (, ",")) (identifier "std")) (ERROR "::allocator" (: ":") (: ":") (identifier "allocator")) (< "<") (identifier "gold")) (ERROR "::Output_section*>>" (: ":") (: ":") (identifier "Output_section") (* "*") (>> ">>")) (> ">") (ERROR "," (, ",")) (identifier "__ops")) (ERROR "::_Iter_comp_iter" (: ":") (: ":") (identifier "_Iter_comp_iter")) (< "<") (identifier "gold")) (ERROR "::Sort_output_sections" (: ":") (: ":") (identifier "Sort_output_sections")) (>> ">>") (parenthesized_expression "(iVar9,param_2,param_4)" (( "(") (comma_expression "iVar9,param_2,param_4" (identifier "iVar9") (, ",") (comma_expression "param_2,param_4" (identifier "param_2") (, ",") (identifier "param_4"))) () ")"))) (-- "")) (; ";")) (if_statement "if (0x1c < iVar3) {\n    local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810\n    ;\n    iVar10 = 7;\n    iVar4 = 0xe;\n    local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814\n    ;\n    local_38 = &local_40;\n    iVar9 = 0x1c;\n    iVar3 = local_30;\n    iVar2 = iVar5;\n    iVar6 = param_1;\n    iVar7 = iVar10;\n    if (iVar5 < 0xe) goto LAB_002a3600;\n    do {\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    } while( true );\n  }" (if "if") (parenthesized_expression "(0x1c < iVar3)" (( "(") (binary_expression "0x1c < iVar3" (number_literal "0x1c") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n    local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810\n    ;\n    iVar10 = 7;\n    iVar4 = 0xe;\n    local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814\n    ;\n    local_38 = &local_40;\n    iVar9 = 0x1c;\n    iVar3 = local_30;\n    iVar2 = iVar5;\n    iVar6 = param_1;\n    iVar7 = iVar10;\n    if (iVar5 < 0xe) goto LAB_002a3600;\n    do {\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    } while( true );\n  }" ({ "{") (expression_statement "local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810\n    ;" (comma_expression "local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810" (assignment_expression "local_3c = (code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" (identifier "local_3c") (= "=") (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator" (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector" (binary_expression "(code *)\n               PTR___move_merge<__normal_iterator" (cast_expression "(code *)\n               PTR___move_merge" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___move_merge")) (< "<") (identifier "__normal_iterator")) (< "<") (binary_expression "gold_Output_section**,std_vector" (identifier "gold_Output_section") (* "*") (pointer_expression "*,std_vector" (* "*") (ERROR "," (, ",")) (identifier "std_vector")))) (< "<") (binary_expression "gold_Output_section*,std_allocator" (identifier "gold_Output_section") (* "*") (ERROR "," (, ",")) (identifier "std_allocator"))) (< "<") (identifier "gold_Output_section"))) (ERROR "*>>>" (* "*") (>> ">>") (> ">")) (, ",") (binary_expression "gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810" (binary_expression "gold_Output_section**,__ops__Iter_comp_iter" (identifier "gold_Output_section") (* "*") (pointer_expression "*,__ops__Iter_comp_iter" (* "*") (ERROR "," (, ",")) (identifier "__ops__Iter_comp_iter"))) (< "<") (binary_expression "gold_Sort_output_sections>>_004c4810" (identifier "gold_Sort_output_sections") (>> ">>") (identifier "_004c4810")))) (; ";")) (expression_statement "iVar10 = 7;" (assignment_expression "iVar10 = 7" (identifier "iVar10") (= "=") (number_literal "7")) (; ";")) (expression_statement "iVar4 = 0xe;" (assignment_expression "iVar4 = 0xe" (identifier "iVar4") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814\n    ;" (comma_expression "local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814" (assignment_expression "local_34 = (code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" (identifier "local_34") (= "=") (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector" (binary_expression "(code *)\n               PTR___move_merge<gold_Output_section**,__normal_iterator" (cast_expression "(code *)\n               PTR___move_merge" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___move_merge")) (< "<") (binary_expression "gold_Output_section**,__normal_iterator" (identifier "gold_Output_section") (* "*") (pointer_expression "*,__normal_iterator" (* "*") (ERROR "," (, ",")) (identifier "__normal_iterator")))) (< "<") (binary_expression "gold_Output_section**,std_vector" (identifier "gold_Output_section") (* "*") (pointer_expression "*,std_vector" (* "*") (ERROR "," (, ",")) (identifier "std_vector")))) (< "<") (binary_expression "gold_Output_section*,std_allocator" (identifier "gold_Output_section") (* "*") (ERROR "," (, ",")) (identifier "std_allocator"))) (< "<") (identifier "gold_Output_section"))) (ERROR "*>>>" (* "*") (>> ">>") (> ">")) (, ",") (binary_expression "__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814" (identifier "__ops__Iter_comp_iter") (< "<") (binary_expression "gold_Sort_output_sections>>_004c4814" (identifier "gold_Sort_output_sections") (>> ">>") (identifier "_004c4814")))) (; ";")) (expression_statement "local_38 = &local_40;" (assignment_expression "local_38 = &local_40" (identifier "local_38") (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";")) (expression_statement "iVar9 = 0x1c;" (assignment_expression "iVar9 = 0x1c" (identifier "iVar9") (= "=") (number_literal "0x1c")) (; ";")) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" (identifier "iVar3") (= "=") (identifier "local_30")) (; ";")) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" (identifier "iVar2") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" (identifier "iVar6") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" (identifier "iVar7") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (iVar5 < 0xe) goto LAB_002a3600;" (if "if") (parenthesized_expression "(iVar5 < 0xe)" (( "(") (binary_expression "iVar5 < 0xe" (identifier "iVar5") (< "<") (number_literal "0xe")) () ")")) (goto_statement "goto LAB_002a3600;" (goto "goto") (statement_identifier "LAB_002a3600") (; ";"))) (do_statement "do {\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    } while( true );" (do "do") (compound_statement "{\n      local_2c = iVar10 << 3;\n      iVar3 = local_30;\n      iVar1 = param_1;\n      do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);\nLAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);\n    }" ({ "{") (expression_statement "local_2c = iVar10 << 3;" (assignment_expression "local_2c = iVar10 << 3" (identifier "local_2c") (= "=") (binary_expression "iVar10 << 3" (identifier "iVar10") (<< "<<") (number_literal "3"))) (; ";")) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" (identifier "iVar3") (= "=") (identifier "local_30")) (; ";")) (expression_statement "iVar1 = param_1;" (assignment_expression "iVar1 = param_1" (identifier "iVar1") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      } while (iVar4 <= iVar2);" (do "do") (compound_statement "{\n        iVar6 = iVar1 + local_2c;\n        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);\n        iVar2 = param_2 - iVar6 >> 2;\n        iVar1 = iVar6;\n        iVar7 = iVar10;\n      }" ({ "{") (expression_statement "iVar6 = iVar1 + local_2c;" (assignment_expression "iVar6 = iVar1 + local_2c" (identifier "iVar6") (= "=") (binary_expression "iVar1 + local_2c" (identifier "iVar1") (+ "+") (identifier "local_2c"))) (; ";")) (expression_statement "iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);" (assignment_expression "iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4)" (identifier "iVar3") (= "=") (call_expression "(*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4)" (parenthesized_expression "(*local_3c)" (( "(") (pointer_expression "*local_3c" (* "*") (identifier "local_3c")) () ")")) (argument_list "(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4)" (( "(") (identifier "iVar1") (, ",") (binary_expression "iVar1 + iVar9" (identifier "iVar1") (+ "+") (identifier "iVar9")) (, ",") (binary_expression "iVar1 + iVar9" (identifier "iVar1") (+ "+") (identifier "iVar9")) (, ",") (identifier "iVar6") (, ",") (identifier "iVar3") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "iVar2 = param_2 - iVar6 >> 2;" (assignment_expression "iVar2 = param_2 - iVar6 >> 2" (identifier "iVar2") (= "=") (binary_expression "param_2 - iVar6 >> 2" (binary_expression "param_2 - iVar6" (identifier "param_2") (- "-") (identifier "iVar6")) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "iVar1 = iVar6;" (assignment_expression "iVar1 = iVar6" (identifier "iVar1") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" (identifier "iVar7") (= "=") (identifier "iVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 <= iVar2)" (( "(") (binary_expression "iVar4 <= iVar2" (identifier "iVar4") (<= "<=") (identifier "iVar2")) () ")")) (; ";")) (labeled_statement "LAB_002a3600:\n      do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);" (statement_identifier "LAB_002a3600") (: ":") (do_statement "do {\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      } while (iVar5 < iVar4);" (do "do") (compound_statement "{\n        iVar10 = iVar9;\n        if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }\n        iVar2 = iVar6 + iVar2 * 4;\n        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);\n        if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }\n        local_2c = iVar4 << 2;\n        iVar9 = iVar10 * 4;\n        iVar3 = local_30;\n        iVar2 = param_1;\n        do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);\n        if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }\n        iVar3 = iVar7 + iVar6 * 4;\n        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);\n        iVar4 = iVar10 << 1;\n        if (iVar5 <= iVar10) {\n          return;\n        }\n        iVar3 = local_30;\n        iVar2 = iVar5;\n        iVar6 = param_1;\n        iVar7 = iVar10;\n      }" ({ "{") (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" (identifier "iVar10") (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (iVar7 <= iVar2) {\n          iVar2 = iVar7;\n        }" (if "if") (parenthesized_expression "(iVar7 <= iVar2)" (( "(") (binary_expression "iVar7 <= iVar2" (identifier "iVar7") (<= "<=") (identifier "iVar2")) () ")")) (compound_statement "{\n          iVar2 = iVar7;\n        }" ({ "{") (expression_statement "iVar2 = iVar7;" (assignment_expression "iVar2 = iVar7" (identifier "iVar2") (= "=") (identifier "iVar7")) (; ";")) (} "}"))) (expression_statement "iVar2 = iVar6 + iVar2 * 4;" (assignment_expression "iVar2 = iVar6 + iVar2 * 4" (identifier "iVar2") (= "=") (binary_expression "iVar6 + iVar2 * 4" (identifier "iVar6") (+ "+") (binary_expression "iVar2 * 4" (identifier "iVar2") (* "*") (number_literal "4")))) (; ";")) (expression_statement "(*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);" (call_expression "(*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4)" (parenthesized_expression "(*local_3c)" (( "(") (pointer_expression "*local_3c" (* "*") (identifier "local_3c")) () ")")) (argument_list "(iVar6,iVar2,iVar2,param_2,iVar3,param_4)" (( "(") (identifier "iVar6") (, ",") (identifier "iVar2") (, ",") (identifier "iVar2") (, ",") (identifier "param_2") (, ",") (identifier "iVar3") (, ",") (identifier "param_4") () ")"))) (; ";")) (if_statement "if (iVar5 < iVar10) {\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }" (if "if") (parenthesized_expression "(iVar5 < iVar10)" (( "(") (binary_expression "iVar5 < iVar10" (identifier "iVar5") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n          if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }\n          iVar3 = local_30 + iVar4 * 4;\n          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);\n          return;\n        }" ({ "{") (if_statement "if (iVar5 <= iVar4) {\n            iVar4 = iVar5;\n          }" (if "if") (parenthesized_expression "(iVar5 <= iVar4)" (( "(") (binary_expression "iVar5 <= iVar4" (identifier "iVar5") (<= "<=") (identifier "iVar4")) () ")")) (compound_statement "{\n            iVar4 = iVar5;\n          }" ({ "{") (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" (identifier "iVar4") (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (expression_statement "iVar3 = local_30 + iVar4 * 4;" (assignment_expression "iVar3 = local_30 + iVar4 * 4" (identifier "iVar3") (= "=") (binary_expression "local_30 + iVar4 * 4" (identifier "local_30") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4")))) (; ";")) (expression_statement "(*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);" (call_expression "(*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4)" (parenthesized_expression "(*local_34)" (( "(") (pointer_expression "*local_34" (* "*") (identifier "local_34")) () ")")) (argument_list "(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4)" (( "(") (identifier "local_38") (, ",") (identifier "local_30") (, ",") (identifier "iVar3") (, ",") (identifier "iVar3") (, ",") (identifier "iVar8") (, ",") (identifier "param_1") (, ",") (identifier "param_4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_2c = iVar4 << 2;" (assignment_expression "local_2c = iVar4 << 2" (identifier "local_2c") (= "=") (binary_expression "iVar4 << 2" (identifier "iVar4") (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "iVar9 = iVar10 * 4;" (assignment_expression "iVar9 = iVar10 * 4" (identifier "iVar9") (= "=") (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" (identifier "iVar3") (= "=") (identifier "local_30")) (; ";")) (expression_statement "iVar2 = param_1;" (assignment_expression "iVar2 = param_1" (identifier "iVar2") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        } while (iVar10 <= iVar6);" (do "do") (compound_statement "{\n          iVar7 = iVar3 + iVar9;\n          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);\n          iVar6 = iVar8 - iVar7 >> 2;\n          iVar3 = iVar7;\n          iVar2 = local_40;\n        }" ({ "{") (expression_statement "iVar7 = iVar3 + iVar9;" (assignment_expression "iVar7 = iVar3 + iVar9" (identifier "iVar7") (= "=") (binary_expression "iVar3 + iVar9" (identifier "iVar3") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "(*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);" (call_expression "(*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4)" (parenthesized_expression "(*local_34)" (( "(") (pointer_expression "*local_34" (* "*") (identifier "local_34")) () ")")) (argument_list "(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4)" (( "(") (identifier "local_38") (, ",") (identifier "iVar3") (, ",") (binary_expression "iVar3 + local_2c" (identifier "iVar3") (+ "+") (identifier "local_2c")) (, ",") (binary_expression "iVar3 + local_2c" (identifier "iVar3") (+ "+") (identifier "local_2c")) (, ",") (identifier "iVar7") (, ",") (identifier "iVar2") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "iVar6 = iVar8 - iVar7 >> 2;" (assignment_expression "iVar6 = iVar8 - iVar7 >> 2" (identifier "iVar6") (= "=") (binary_expression "iVar8 - iVar7 >> 2" (binary_expression "iVar8 - iVar7" (identifier "iVar8") (- "-") (identifier "iVar7")) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "iVar3 = iVar7;" (assignment_expression "iVar3 = iVar7" (identifier "iVar3") (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iVar2 = local_40;" (assignment_expression "iVar2 = local_40" (identifier "iVar2") (= "=") (identifier "local_40")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 <= iVar6)" (( "(") (binary_expression "iVar10 <= iVar6" (identifier "iVar10") (<= "<=") (identifier "iVar6")) () ")")) (; ";")) (if_statement "if (iVar4 < iVar6) {\n          iVar6 = iVar4;\n        }" (if "if") (parenthesized_expression "(iVar4 < iVar6)" (( "(") (binary_expression "iVar4 < iVar6" (identifier "iVar4") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n          iVar6 = iVar4;\n        }" ({ "{") (expression_statement "iVar6 = iVar4;" (assignment_expression "iVar6 = iVar4" (identifier "iVar6") (= "=") (identifier "iVar4")) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar7 + iVar6 * 4;" (assignment_expression "iVar3 = iVar7 + iVar6 * 4" (identifier "iVar3") (= "=") (binary_expression "iVar7 + iVar6 * 4" (identifier "iVar7") (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4")))) (; ";")) (expression_statement "(*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);" (call_expression "(*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4)" (parenthesized_expression "(*local_34)" (( "(") (pointer_expression "*local_34" (* "*") (identifier "local_34")) () ")")) (argument_list "(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4)" (( "(") (identifier "local_38") (, ",") (identifier "iVar7") (, ",") (identifier "iVar3") (, ",") (identifier "iVar3") (, ",") (identifier "iVar8") (, ",") (identifier "local_40") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "iVar4 = iVar10 << 1;" (assignment_expression "iVar4 = iVar10 << 1" (identifier "iVar4") (= "=") (binary_expression "iVar10 << 1" (identifier "iVar10") (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (iVar5 <= iVar10) {\n          return;\n        }" (if "if") (parenthesized_expression "(iVar5 <= iVar10)" (( "(") (binary_expression "iVar5 <= iVar10" (identifier "iVar5") (<= "<=") (identifier "iVar10")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar3 = local_30;" (assignment_expression "iVar3 = local_30" (identifier "iVar3") (= "=") (identifier "local_30")) (; ";")) (expression_statement "iVar2 = iVar5;" (assignment_expression "iVar2 = iVar5" (identifier "iVar2") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar6 = param_1;" (assignment_expression "iVar6 = param_1" (identifier "iVar6") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" (identifier "iVar7") (= "=") (identifier "iVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 < iVar4)" (( "(") (binary_expression "iVar5 < iVar4" (identifier "iVar5") (< "<") (identifier "iVar4")) () ")")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))
(translation_unit (declaration type: (primitive_type) (ERROR (identifier) (identifier) (identifier) (identifier) (identifier)) declarator: (pointer_declarator declarator: (pointer_declarator (ERROR (identifier) (identifier) (identifier)) declarator: (identifier))) (ERROR) (ERROR (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR) (ERROR (identifier) (identifier) (pointer_declarator declarator: (function_declarator declarator: (pointer_declarator (ERROR (identifier) (identifier) (identifier)) declarator: (identifier)) (ERROR) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier))))) (primitive_type)) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) (ERROR (identifier)) right: (pointer_expression (ERROR) argument: (identifier))) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) (ERROR) right: (identifier)) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) (ERROR) right: (identifier)) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) right: (parenthesized_expression (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (identifier)))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) (ERROR (identifier)) right: (pointer_expression (ERROR) argument: (identifier))) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) (ERROR) right: (identifier)) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) (ERROR) right: (identifier)) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) right: (parenthesized_expression (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (update_expression argument: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) (ERROR (identifier)) right: (pointer_expression (ERROR) argument: (identifier))) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) (ERROR) right: (identifier)) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) (ERROR) right: (identifier)) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) right: (parenthesized_expression (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (identifier))))) operator: (MISSING "--"))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (identifier)) right: (binary_expression left: (identifier) right: (pointer_expression (ERROR) argument: (identifier)))) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) right: (identifier))) (ERROR) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression (ERROR) argument: (identifier))) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (binary_expression left: (identifier) right: (pointer_expression (ERROR) argument: (identifier)))) right: (binary_expression left: (identifier) right: (pointer_expression (ERROR) argument: (identifier)))) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) right: (identifier))) (ERROR) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) condition: (parenthesized_expression (true))))) (return_statement) (ERROR))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* void std::__merge_sort_with_buffer<__normal_iterator<gold::Output_section**,
   std::vector<gold::Output_section*, std::allocator<gold::Output_section*> > >,
   gold::Output_section**, __ops::_Iter_comp_iter<gold::Sort_output_sections>
   >(__normal_iterator<gold::Output_section**, std::vector<gold::Output_section*,
   std::allocator<gold::Output_section*> > >, __normal_iterator<gold::Output_section**,
   std::vector<gold::Output_section*, std::allocator<gold::Output_section*> > >,
   gold::Output_section**, __ops::_Iter_comp_iter<gold::Sort_output_sections>) */

void std::
     MASKED
               (int param_1,int param_2,int param_3,undefined4 param_4)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int local_40;
  code *local_3c;
  int *local_38;
  code *local_34;
  int local_30;
  int local_2c;
  
  iVar3 = param_2 - param_1;
  iVar8 = param_3 + iVar3;
  if (iVar3 < 0x19) {
    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>
              (param_1,param_2,param_4);
    return;
  }
  iVar5 = iVar3 >> 2;
  iVar2 = param_1;
  local_30 = param_3;
  do {
    iVar9 = iVar2 + 0x1c;
    __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>
              (iVar2,iVar9,param_4);
    iVar2 = iVar9;
  } while (0x18 < param_2 - iVar9);
  __insertion_sort<__normal_iterator<gold::Output_section**,std::vector<gold::Output_section*,std::allocator<gold::Output_section*>>>,__ops::_Iter_comp_iter<gold::Sort_output_sections>>
            (iVar9,param_2,param_4);
  if (0x1c < iVar3) {
    local_3c = (code *)
               PTR___move_merge<__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,gold_Output_section**,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4810
    ;
    iVar10 = 7;
    iVar4 = 0xe;
    local_34 = (code *)
               PTR___move_merge<gold_Output_section**,__normal_iterator<gold_Output_section**,std_vector<gold_Output_section*,std_allocator<gold_Output_section*>>>,__ops__Iter_comp_iter<gold_Sort_output_sections>>_004c4814
    ;
    local_38 = &local_40;
    iVar9 = 0x1c;
    iVar3 = local_30;
    iVar2 = iVar5;
    iVar6 = param_1;
    iVar7 = iVar10;
    if (iVar5 < 0xe) goto LAB_002a3600;
    do {
      local_2c = iVar10 << 3;
      iVar3 = local_30;
      iVar1 = param_1;
      do {
        iVar6 = iVar1 + local_2c;
        iVar3 = (*local_3c)(iVar1,iVar1 + iVar9,iVar1 + iVar9,iVar6,iVar3,param_4);
        iVar2 = param_2 - iVar6 >> 2;
        iVar1 = iVar6;
        iVar7 = iVar10;
      } while (iVar4 <= iVar2);
LAB_002a3600:
      do {
        iVar10 = iVar9;
        if (iVar7 <= iVar2) {
          iVar2 = iVar7;
        }
        iVar2 = iVar6 + iVar2 * 4;
        (*local_3c)(iVar6,iVar2,iVar2,param_2,iVar3,param_4);
        if (iVar5 < iVar10) {
          if (iVar5 <= iVar4) {
            iVar4 = iVar5;
          }
          iVar3 = local_30 + iVar4 * 4;
          (*local_34)(local_38,local_30,iVar3,iVar3,iVar8,param_1,param_4);
          return;
        }
        local_2c = iVar4 << 2;
        iVar9 = iVar10 * 4;
        iVar3 = local_30;
        iVar2 = param_1;
        do {
          iVar7 = iVar3 + iVar9;
          (*local_34)(local_38,iVar3,iVar3 + local_2c,iVar3 + local_2c,iVar7,iVar2,param_4);
          iVar6 = iVar8 - iVar7 >> 2;
          iVar3 = iVar7;
          iVar2 = local_40;
        } while (iVar10 <= iVar6);
        if (iVar4 < iVar6) {
          iVar6 = iVar4;
        }
        iVar3 = iVar7 + iVar6 * 4;
        (*local_34)(local_38,iVar7,iVar3,iVar3,iVar8,local_40,param_4);
        iVar4 = iVar10 << 1;
        if (iVar5 <= iVar10) {
          return;
        }
        iVar3 = local_30;
        iVar2 = iVar5;
        iVar6 = param_1;
        iVar7 = iVar10;
      } while (iVar5 < iVar4);
    } while( true );
  }
  return;
}

