
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name:
   __insertion_sort<__gnu_cxx::__normal_iterator<gold::Object_merge_map::Input_merge_entry*,
   std::vector<gold::Object_merge_map::Input_merge_entry> >,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare> > */

void std::
     __insertion_sort<__gnu_cxx::__normal_iterator<gold::Object_merge_map::Input_merge_entry*,_std::vector<gold::Object_merge_map::Input_merge_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>_>
               (int *__first,int *__last)

{
  int *piVar1;
  int *piVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  
  if (__last != __first) {
    for (piVar3 = __first + 3; piVar3 != __last; piVar3 = piVar3 + 3) {
      while( true ) {
        iVar4 = *piVar3;
        iVar6 = piVar3[1];
        iVar5 = piVar3[2];
        if (iVar4 < *__first) break;
        piVar2 = piVar3;
        if (iVar4 < piVar3[-3]) {
          do {
            piVar1 = piVar2;
            piVar2 = piVar1 + -3;
            *piVar1 = *piVar2;
            piVar1[1] = piVar1[-2];
            piVar1[2] = piVar1[-1];
          } while (iVar4 < piVar1[-6]);
          *piVar2 = iVar4;
          piVar1[-2] = iVar6;
          piVar1[-1] = iVar5;
        }
        else {
          *piVar3 = iVar4;
          piVar3[1] = iVar6;
          piVar3[2] = iVar5;
        }
        piVar3 = piVar3 + 3;
        if (__last == piVar3) {
          return;
        }
      }
      if (__first != piVar3) {
        (*(code *)PTR_memmove_004366d8)(__first + 3,__first,(int)piVar3 - (int)__first);
      }
      *__first = iVar4;
      __first[1] = iVar6;
      __first[2] = iVar5;
    }
  }
  return;
}



/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* void std::__insertion_sort<__normal_iterator<gold::Object_merge_map::Input_merge_entry*,
   std::vector<gold::Object_merge_map::Input_merge_entry,
   std::allocator<gold::Object_merge_map::Input_merge_entry> > >,
   __ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>
   >(__normal_iterator<gold::Object_merge_map::Input_merge_entry*,
   std::vector<gold::Object_merge_map::Input_merge_entry,
   std::allocator<gold::Object_merge_map::Input_merge_entry> > >,
   __normal_iterator<gold::Object_merge_map::Input_merge_entry*,
   std::vector<gold::Object_merge_map::Input_merge_entry,
   std::allocator<gold::Object_merge_map::Input_merge_entry> > >,
   __ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>) */

void std::
     __insertion_sort<__normal_iterator<gold::Object_merge_map::Input_merge_entry*,std::vector<gold::Object_merge_map::Input_merge_entry,std::allocator<gold::Object_merge_map::Input_merge_entry>>>,__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>>
               (int *param_1,int *param_2)

{
  int *piVar1;
  int *piVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  
  if (param_2 != param_1) {
    for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {
      while( true ) {
        iVar4 = *piVar3;
        iVar6 = piVar3[1];
        iVar5 = piVar3[2];
        if (iVar4 < *param_1) break;
        piVar2 = piVar3;
        if (iVar4 < piVar3[-3]) {
          do {
            piVar1 = piVar2;
            piVar2 = piVar1 + -3;
            *piVar1 = *piVar2;
            piVar1[1] = piVar1[-2];
            piVar1[2] = piVar1[-1];
          } while (iVar4 < piVar1[-6]);
          *piVar2 = iVar4;
          piVar1[-2] = iVar6;
          piVar1[-1] = iVar5;
        }
        else {
          *piVar3 = iVar4;
          piVar3[1] = iVar6;
          piVar3[2] = iVar5;
        }
        piVar3 = piVar3 + 3;
        if (param_2 == piVar3) {
          return;
        }
      }
      if (param_1 != piVar3) {
        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);
      }
      *param_1 = iVar4;
      param_1[1] = iVar6;
      param_1[2] = iVar5;
    }
  }
  return;
}


lui gp,0x1b
addiu gp,gp,-0x49d4
addu gp,gp,t9
addiu sp,sp,-0x38
sw gp,0x10(sp)
sw ra,0x34(sp)
sw s6,0x30(sp)
sw s5,0x2c(sp)
sw s4,0x28(sp)
sw s3,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
sw s0,0x18(sp)
beq a1,a0,0x0028ec9c
_sw a2,0x40(sp)
addiu s0,a0,0xc
beq s0,a1,0x0028ec9c
_or s6,a1,zero
or s1,a0,zero
b 0x0028ec28
_li s3,0xc
beq s1,s0,0x0028ec14
_lw t9,-0x3af8(gp)
subu a2,s0,s1
addu a0,s1,s3
jalr t9
_or a1,s1,zero
lw gp,0x10(sp)
addiu s0,s0,0xc
sw s2,0x0(s1)
sw s5,0x4(s1)
beq s6,s0,0x0028ec9c
_sw s4,0x8(s1)
lw s2,0x0(s0)
lw v0,0x0(s1)
lw s5,0x4(s0)
slt v0,s2,v0
bne v0,zero,0x0028ebf8
_lw s4,0x8(s0)
lw v1,-0xc(s0)
slt v1,s2,v1
bne v1,zero,0x0028ec5c
_addiu v0,s0,-0xc
b 0x0028ecc4
_or v0,s0,zero
or v0,t0,zero
lw v1,-0xc(v0)
addiu t0,v0,-0xc
lw a3,0x0(v0)
lw a2,0x4(v0)
lw a0,0x8(v0)
slt v1,s2,v1
sw a3,0xc(v0)
sw a2,0x10(v0)
bne v1,zero,0x0028ec58
_sw a0,0x14(v0)
sw s2,0x0(v0)
sw s5,0x4(v0)
sw s4,0x8(v0)
addiu s0,s0,0xc
bne s6,s0,0x0028ec28
_nop
lw ra,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
sw s2,0x0(v0)
sw s5,0x4(v0)
b 0x0028ec90
_sw s4,0x8(v0)
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* void std::__insertion_sort<__normal_iterator<gold::Object_merge_map::Input_merge_entry*,\n   std::vector<gold::Object_merge_map::Input_merge_entry,\n   std::allocator<gold::Object_merge_map::Input_merge_entry> > >,\n   __ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>\n   >(__normal_iterator<gold::Object_merge_map::Input_merge_entry*,\n   std::vector<gold::Object_merge_map::Input_merge_entry,\n   std::allocator<gold::Object_merge_map::Input_merge_entry> > >,\n   __normal_iterator<gold::Object_merge_map::Input_merge_entry*,\n   std::vector<gold::Object_merge_map::Input_merge_entry,\n   std::allocator<gold::Object_merge_map::Input_merge_entry> > >,\n   __ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>) */\n\nvoid std::\n     __insertion_sort<__normal_iterator<gold::Object_merge_map::Input_merge_entry*,std::vector<gold::Object_merge_map::Input_merge_entry,std::allocator<gold::Object_merge_map::Input_merge_entry>>>,__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>>\n               (int *param_1,int *param_2)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  \n  if (param_2 != param_1) {\n    for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }\n  }\n  return;\n}\n\n" comment comment (declaration "void std::\n     __insertion_sort<__normal_iterator<gold::Object_merge_map::Input_merge_entry*,std::vector<gold::Object_merge_map::Input_merge_entry,std::allocator<gold::Object_merge_map::Input_merge_entry>>>,__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>>\n               (int *param_1,int *param_2)\n\n{\n  int *piVar1;" primitive_type (ERROR "std::\n     __insertion_sort<__normal_iterator<gold::Object_merge_map::" identifier : : identifier < identifier < identifier : : identifier : :) identifier (ERROR "*" *) , (ERROR "std::vector<gold::Object_merge_map::" identifier : : identifier < identifier : : identifier : :) identifier , (ERROR "std::allocator<gold::Object_merge_map::" identifier : : identifier < identifier : : identifier : :) identifier (ERROR ">>>" >> >) , (ERROR "__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>>\n               (int *param_1,int *param_2)\n\n{\n  int" identifier : : identifier < identifier : : identifier : : (function_declarator "Input_merge_compare>>\n               (int *param_1,int *param_2)" identifier (ERROR ">>" >>) (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) { primitive_type) (pointer_declarator "*piVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (if_statement "if (param_2 != param_1) {\n    for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }\n  }" if (parenthesized_expression "(param_2 != param_1)" ( (binary_expression "param_2 != param_1" identifier != identifier) )) (compound_statement "{\n    for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }\n  }" { (for_statement "for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }" for ( (assignment_expression "piVar3 = param_1 + 3" identifier = (binary_expression "param_1 + 3" identifier + number_literal)) ; (binary_expression "piVar3 != param_2" identifier != identifier) ; (assignment_expression "piVar3 = piVar3 + 3" identifier = (binary_expression "piVar3 + 3" identifier + number_literal)) ) (compound_statement "{\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }" { (while_statement "while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }" { (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar6 = piVar3[1];" (assignment_expression "iVar6 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = piVar3[2];" (assignment_expression "iVar5 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 < *param_1) break;" if (parenthesized_expression "(iVar4 < *param_1)" ( (binary_expression "iVar4 < *param_1" identifier < (pointer_expression "*param_1" * identifier)) )) (break_statement "break;" break ;)) (expression_statement "piVar2 = piVar3;" (assignment_expression "piVar2 = piVar3" identifier = identifier) ;) (if_statement "if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" if (parenthesized_expression "(iVar4 < piVar3[-3])" ( (binary_expression "iVar4 < piVar3[-3]" identifier < (subscript_expression "piVar3[-3]" identifier [ number_literal ])) )) (compound_statement "{\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }" { (do_statement "do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);" do (compound_statement "{\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          }" { (expression_statement "piVar1 = piVar2;" (assignment_expression "piVar1 = piVar2" identifier = identifier) ;) (expression_statement "piVar2 = piVar1 + -3;" (assignment_expression "piVar2 = piVar1 + -3" identifier = (binary_expression "piVar1 + -3" identifier + number_literal)) ;) (expression_statement "*piVar1 = *piVar2;" (assignment_expression "*piVar1 = *piVar2" (pointer_expression "*piVar1" * identifier) = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "piVar1[1] = piVar1[-2];" (assignment_expression "piVar1[1] = piVar1[-2]" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = (subscript_expression "piVar1[-2]" identifier [ number_literal ])) ;) (expression_statement "piVar1[2] = piVar1[-1];" (assignment_expression "piVar1[2] = piVar1[-1]" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = (subscript_expression "piVar1[-1]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(iVar4 < piVar1[-6])" ( (binary_expression "iVar4 < piVar1[-6]" identifier < (subscript_expression "piVar1[-6]" identifier [ number_literal ])) )) ;) (expression_statement "*piVar2 = iVar4;" (assignment_expression "*piVar2 = iVar4" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "piVar1[-2] = iVar6;" (assignment_expression "piVar1[-2] = iVar6" (subscript_expression "piVar1[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1[-1] = iVar5;" (assignment_expression "piVar1[-1] = iVar5" (subscript_expression "piVar1[-1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" else (compound_statement "{\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" { (expression_statement "*piVar3 = iVar4;" (assignment_expression "*piVar3 = iVar4" (pointer_expression "*piVar3" * identifier) = identifier) ;) (expression_statement "piVar3[1] = iVar6;" (assignment_expression "piVar3[1] = iVar6" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[2] = iVar5;" (assignment_expression "piVar3[2] = iVar5" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "piVar3 = piVar3 + 3;" (assignment_expression "piVar3 = piVar3 + 3" identifier = (binary_expression "piVar3 + 3" identifier + number_literal)) ;) (if_statement "if (param_2 == piVar3) {\n          return;\n        }" if (parenthesized_expression "(param_2 == piVar3)" ( (binary_expression "param_2 == piVar3" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (if_statement "if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }" if (parenthesized_expression "(param_1 != piVar3)" ( (binary_expression "param_1 != piVar3" identifier != identifier) )) (compound_statement "{\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }" { (expression_statement "(*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);" (call_expression "(*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1)" (parenthesized_expression "(*(code *)PTR_memmove_004366d8)" ( (pointer_expression "*(code *)PTR_memmove_004366d8" * (cast_expression "(code *)PTR_memmove_004366d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + 3,param_1,(int)piVar3 - (int)param_1)" ( (binary_expression "param_1 + 3" identifier + number_literal) , identifier , (binary_expression "(int)piVar3 - (int)param_1" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) })) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = iVar6;" (assignment_expression "param_1[1] = iVar6" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = iVar5;" (assignment_expression "param_1[2] = iVar5" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) })) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* DWARF original name:\n   __insertion_sort<__gnu_cxx::__normal_iterator<gold::Object_merge_map::Input_merge_entry*,\n   std::vector<gold::Object_merge_map::Input_merge_entry> >,\n   __gnu_cxx::__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare> > */\n\nvoid std::\n     __insertion_sort<__gnu_cxx::__normal_iterator<gold::Object_merge_map::Input_merge_entry*,_std::vector<gold::Object_merge_map::Input_merge_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>_>\n               (int *__first,int *__last)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  \n  if (__last != __first) {\n    for (piVar3 = __first + 3; piVar3 != __last; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *__first) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (__last == piVar3) {\n          return;\n        }\n      }\n      if (__first != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(__first + 3,__first,(int)piVar3 - (int)__first);\n      }\n      *__first = iVar4;\n      __first[1] = iVar6;\n      __first[2] = iVar5;\n    }\n  }\n  return;\n}\n\n" comment comment (declaration "void std::\n     __insertion_sort<__gnu_cxx::__normal_iterator<gold::Object_merge_map::Input_merge_entry*,_std::vector<gold::Object_merge_map::Input_merge_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>_>\n               (int *__first,int *__last)\n\n{\n  int *piVar1;" primitive_type (ERROR "std::\n     __insertion_sort<__gnu_cxx::__normal_iterator<gold::Object_merge_map::" identifier : : identifier < identifier : : identifier < identifier : : identifier : :) identifier (ERROR "*" *) , (ERROR "_std::vector<gold::Object_merge_map::Input_merge_entry>" identifier : : identifier < identifier : : identifier : : identifier >) identifier (ERROR ">" >) , (ERROR "___gnu_cxx::__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>_>\n               (int *__first,int *__last)\n\n{\n  int" identifier : : identifier : : identifier < identifier : : identifier : : identifier > (function_declarator "_>\n               (int *__first,int *__last)" identifier (ERROR ">" >) (parameter_list "(int *__first,int *__last)" ( (parameter_declaration "int *__first" primitive_type (pointer_declarator "*__first" * identifier)) , (parameter_declaration "int *__last" primitive_type (pointer_declarator "*__last" * identifier)) ))) { primitive_type) (pointer_declarator "*piVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (if_statement "if (__last != __first) {\n    for (piVar3 = __first + 3; piVar3 != __last; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *__first) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (__last == piVar3) {\n          return;\n        }\n      }\n      if (__first != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(__first + 3,__first,(int)piVar3 - (int)__first);\n      }\n      *__first = iVar4;\n      __first[1] = iVar6;\n      __first[2] = iVar5;\n    }\n  }" if (parenthesized_expression "(__last != __first)" ( (binary_expression "__last != __first" identifier != identifier) )) (compound_statement "{\n    for (piVar3 = __first + 3; piVar3 != __last; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *__first) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (__last == piVar3) {\n          return;\n        }\n      }\n      if (__first != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(__first + 3,__first,(int)piVar3 - (int)__first);\n      }\n      *__first = iVar4;\n      __first[1] = iVar6;\n      __first[2] = iVar5;\n    }\n  }" { (for_statement "for (piVar3 = __first + 3; piVar3 != __last; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *__first) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (__last == piVar3) {\n          return;\n        }\n      }\n      if (__first != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(__first + 3,__first,(int)piVar3 - (int)__first);\n      }\n      *__first = iVar4;\n      __first[1] = iVar6;\n      __first[2] = iVar5;\n    }" for ( (assignment_expression "piVar3 = __first + 3" identifier = (binary_expression "__first + 3" identifier + number_literal)) ; (binary_expression "piVar3 != __last" identifier != identifier) ; (assignment_expression "piVar3 = piVar3 + 3" identifier = (binary_expression "piVar3 + 3" identifier + number_literal)) ) (compound_statement "{\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *__first) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (__last == piVar3) {\n          return;\n        }\n      }\n      if (__first != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(__first + 3,__first,(int)piVar3 - (int)__first);\n      }\n      *__first = iVar4;\n      __first[1] = iVar6;\n      __first[2] = iVar5;\n    }" { (while_statement "while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *__first) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (__last == piVar3) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *__first) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (__last == piVar3) {\n          return;\n        }\n      }" { (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar6 = piVar3[1];" (assignment_expression "iVar6 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = piVar3[2];" (assignment_expression "iVar5 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 < *__first) break;" if (parenthesized_expression "(iVar4 < *__first)" ( (binary_expression "iVar4 < *__first" identifier < (pointer_expression "*__first" * identifier)) )) (break_statement "break;" break ;)) (expression_statement "piVar2 = piVar3;" (assignment_expression "piVar2 = piVar3" identifier = identifier) ;) (if_statement "if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" if (parenthesized_expression "(iVar4 < piVar3[-3])" ( (binary_expression "iVar4 < piVar3[-3]" identifier < (subscript_expression "piVar3[-3]" identifier [ number_literal ])) )) (compound_statement "{\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }" { (do_statement "do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);" do (compound_statement "{\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          }" { (expression_statement "piVar1 = piVar2;" (assignment_expression "piVar1 = piVar2" identifier = identifier) ;) (expression_statement "piVar2 = piVar1 + -3;" (assignment_expression "piVar2 = piVar1 + -3" identifier = (binary_expression "piVar1 + -3" identifier + number_literal)) ;) (expression_statement "*piVar1 = *piVar2;" (assignment_expression "*piVar1 = *piVar2" (pointer_expression "*piVar1" * identifier) = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "piVar1[1] = piVar1[-2];" (assignment_expression "piVar1[1] = piVar1[-2]" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = (subscript_expression "piVar1[-2]" identifier [ number_literal ])) ;) (expression_statement "piVar1[2] = piVar1[-1];" (assignment_expression "piVar1[2] = piVar1[-1]" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = (subscript_expression "piVar1[-1]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(iVar4 < piVar1[-6])" ( (binary_expression "iVar4 < piVar1[-6]" identifier < (subscript_expression "piVar1[-6]" identifier [ number_literal ])) )) ;) (expression_statement "*piVar2 = iVar4;" (assignment_expression "*piVar2 = iVar4" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "piVar1[-2] = iVar6;" (assignment_expression "piVar1[-2] = iVar6" (subscript_expression "piVar1[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1[-1] = iVar5;" (assignment_expression "piVar1[-1] = iVar5" (subscript_expression "piVar1[-1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" else (compound_statement "{\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" { (expression_statement "*piVar3 = iVar4;" (assignment_expression "*piVar3 = iVar4" (pointer_expression "*piVar3" * identifier) = identifier) ;) (expression_statement "piVar3[1] = iVar6;" (assignment_expression "piVar3[1] = iVar6" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[2] = iVar5;" (assignment_expression "piVar3[2] = iVar5" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "piVar3 = piVar3 + 3;" (assignment_expression "piVar3 = piVar3 + 3" identifier = (binary_expression "piVar3 + 3" identifier + number_literal)) ;) (if_statement "if (__last == piVar3) {\n          return;\n        }" if (parenthesized_expression "(__last == piVar3)" ( (binary_expression "__last == piVar3" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (if_statement "if (__first != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(__first + 3,__first,(int)piVar3 - (int)__first);\n      }" if (parenthesized_expression "(__first != piVar3)" ( (binary_expression "__first != piVar3" identifier != identifier) )) (compound_statement "{\n        (*(code *)PTR_memmove_004366d8)(__first + 3,__first,(int)piVar3 - (int)__first);\n      }" { (expression_statement "(*(code *)PTR_memmove_004366d8)(__first + 3,__first,(int)piVar3 - (int)__first);" (call_expression "(*(code *)PTR_memmove_004366d8)(__first + 3,__first,(int)piVar3 - (int)__first)" (parenthesized_expression "(*(code *)PTR_memmove_004366d8)" ( (pointer_expression "*(code *)PTR_memmove_004366d8" * (cast_expression "(code *)PTR_memmove_004366d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(__first + 3,__first,(int)piVar3 - (int)__first)" ( (binary_expression "__first + 3" identifier + number_literal) , identifier , (binary_expression "(int)piVar3 - (int)__first" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__first" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) })) (expression_statement "*__first = iVar4;" (assignment_expression "*__first = iVar4" (pointer_expression "*__first" * identifier) = identifier) ;) (expression_statement "__first[1] = iVar6;" (assignment_expression "__first[1] = iVar6" (subscript_expression "__first[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__first[2] = iVar5;" (assignment_expression "__first[2] = iVar5" (subscript_expression "__first[2]" identifier [ number_literal ]) = identifier) ;) })) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void std::\n     __insertion_sort<__normal_iterator<gold::Object_merge_map::Input_merge_entry*,std::vector<gold::Object_merge_map::Input_merge_entry,std::allocator<gold::Object_merge_map::Input_merge_entry>>>,__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>>\n               (int *param_1,int *param_2)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  \n  if (param_2 != param_1) {\n    for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }\n  }\n  return;\n}\n\n" (declaration "void std::\n     __insertion_sort<__normal_iterator<gold::Object_merge_map::Input_merge_entry*,std::vector<gold::Object_merge_map::Input_merge_entry,std::allocator<gold::Object_merge_map::Input_merge_entry>>>,__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>>\n               (int *param_1,int *param_2)\n\n{\n  int *piVar1;" primitive_type (ERROR "std::\n     __insertion_sort<__normal_iterator<gold::Object_merge_map::" identifier : : identifier < identifier < identifier : : identifier : :) identifier (ERROR "*" *) , (ERROR "std::vector<gold::Object_merge_map::" identifier : : identifier < identifier : : identifier : :) identifier , (ERROR "std::allocator<gold::Object_merge_map::" identifier : : identifier < identifier : : identifier : :) identifier (ERROR ">>>" >> >) , (ERROR "__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>>\n               (int *param_1,int *param_2)\n\n{\n  int" identifier : : identifier < identifier : : identifier : : (function_declarator "Input_merge_compare>>\n               (int *param_1,int *param_2)" identifier (ERROR ">>" >>) (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) { primitive_type) (pointer_declarator "*piVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (if_statement "if (param_2 != param_1) {\n    for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }\n  }" if (parenthesized_expression "(param_2 != param_1)" ( (binary_expression "param_2 != param_1" identifier != identifier) )) (compound_statement "{\n    for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }\n  }" { (for_statement "for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }" for ( (assignment_expression "piVar3 = param_1 + 3" identifier = (binary_expression "param_1 + 3" identifier + number_literal)) ; (binary_expression "piVar3 != param_2" identifier != identifier) ; (assignment_expression "piVar3 = piVar3 + 3" identifier = (binary_expression "piVar3 + 3" identifier + number_literal)) ) (compound_statement "{\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }" { (while_statement "while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }" { (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar6 = piVar3[1];" (assignment_expression "iVar6 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = piVar3[2];" (assignment_expression "iVar5 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 < *param_1) break;" if (parenthesized_expression "(iVar4 < *param_1)" ( (binary_expression "iVar4 < *param_1" identifier < (pointer_expression "*param_1" * identifier)) )) (break_statement "break;" break ;)) (expression_statement "piVar2 = piVar3;" (assignment_expression "piVar2 = piVar3" identifier = identifier) ;) (if_statement "if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" if (parenthesized_expression "(iVar4 < piVar3[-3])" ( (binary_expression "iVar4 < piVar3[-3]" identifier < (subscript_expression "piVar3[-3]" identifier [ number_literal ])) )) (compound_statement "{\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }" { (do_statement "do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);" do (compound_statement "{\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          }" { (expression_statement "piVar1 = piVar2;" (assignment_expression "piVar1 = piVar2" identifier = identifier) ;) (expression_statement "piVar2 = piVar1 + -3;" (assignment_expression "piVar2 = piVar1 + -3" identifier = (binary_expression "piVar1 + -3" identifier + number_literal)) ;) (expression_statement "*piVar1 = *piVar2;" (assignment_expression "*piVar1 = *piVar2" (pointer_expression "*piVar1" * identifier) = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "piVar1[1] = piVar1[-2];" (assignment_expression "piVar1[1] = piVar1[-2]" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = (subscript_expression "piVar1[-2]" identifier [ number_literal ])) ;) (expression_statement "piVar1[2] = piVar1[-1];" (assignment_expression "piVar1[2] = piVar1[-1]" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = (subscript_expression "piVar1[-1]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(iVar4 < piVar1[-6])" ( (binary_expression "iVar4 < piVar1[-6]" identifier < (subscript_expression "piVar1[-6]" identifier [ number_literal ])) )) ;) (expression_statement "*piVar2 = iVar4;" (assignment_expression "*piVar2 = iVar4" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "piVar1[-2] = iVar6;" (assignment_expression "piVar1[-2] = iVar6" (subscript_expression "piVar1[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1[-1] = iVar5;" (assignment_expression "piVar1[-1] = iVar5" (subscript_expression "piVar1[-1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" else (compound_statement "{\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" { (expression_statement "*piVar3 = iVar4;" (assignment_expression "*piVar3 = iVar4" (pointer_expression "*piVar3" * identifier) = identifier) ;) (expression_statement "piVar3[1] = iVar6;" (assignment_expression "piVar3[1] = iVar6" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[2] = iVar5;" (assignment_expression "piVar3[2] = iVar5" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "piVar3 = piVar3 + 3;" (assignment_expression "piVar3 = piVar3 + 3" identifier = (binary_expression "piVar3 + 3" identifier + number_literal)) ;) (if_statement "if (param_2 == piVar3) {\n          return;\n        }" if (parenthesized_expression "(param_2 == piVar3)" ( (binary_expression "param_2 == piVar3" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (if_statement "if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }" if (parenthesized_expression "(param_1 != piVar3)" ( (binary_expression "param_1 != piVar3" identifier != identifier) )) (compound_statement "{\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }" { (expression_statement "(*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);" (call_expression "(*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1)" (parenthesized_expression "(*(code *)PTR_memmove_004366d8)" ( (pointer_expression "*(code *)PTR_memmove_004366d8" * (cast_expression "(code *)PTR_memmove_004366d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + 3,param_1,(int)piVar3 - (int)param_1)" ( (binary_expression "param_1 + 3" identifier + number_literal) , identifier , (binary_expression "(int)piVar3 - (int)param_1" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) })) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = iVar6;" (assignment_expression "param_1[1] = iVar6" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = iVar5;" (assignment_expression "param_1[2] = iVar5" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) })) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ERROR IDENT : : IDENT < IDENT < IDENT : : IDENT : :) IDENT (ERROR *) , (ERROR IDENT : : IDENT < IDENT : : IDENT : :) IDENT , (ERROR IDENT : : IDENT < IDENT : : IDENT : :) IDENT (ERROR >> >) , (ERROR IDENT : : IDENT < IDENT : : IDENT : : (function_declarator IDENT (ERROR >>) (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { TYPE) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT + LIT)) ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) })) (return_statement return ;) (ERROR }))
(declaration "void std::\n     __insertion_sort<__normal_iterator<gold::Object_merge_map::Input_merge_entry*,std::vector<gold::Object_merge_map::Input_merge_entry,std::allocator<gold::Object_merge_map::Input_merge_entry>>>,__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>>\n               (int *param_1,int *param_2)\n\n{\n  int *piVar1;" (primitive_type "void") (ERROR "std::\n     __insertion_sort<__normal_iterator<gold::Object_merge_map::" (identifier "std") (: ":") (: ":") (identifier "__insertion_sort") (< "<") (identifier "__normal_iterator") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Object_merge_map") (: ":") (: ":")) (identifier "Input_merge_entry") (ERROR "*" (* "*")) (, ",") (ERROR "std::vector<gold::Object_merge_map::" (identifier "std") (: ":") (: ":") (identifier "vector") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Object_merge_map") (: ":") (: ":")) (identifier "Input_merge_entry") (, ",") (ERROR "std::allocator<gold::Object_merge_map::" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Object_merge_map") (: ":") (: ":")) (identifier "Input_merge_entry") (ERROR ">>>" (>> ">>") (> ">")) (, ",") (ERROR "__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>>\n               (int *param_1,int *param_2)\n\n{\n  int" (identifier "__ops") (: ":") (: ":") (identifier "_Iter_comp_iter") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Object_merge_map") (: ":") (: ":") (function_declarator "Input_merge_compare>>\n               (int *param_1,int *param_2)" (identifier "Input_merge_compare") (ERROR ">>" (>> ">>")) (parameter_list "(int *param_1,int *param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) ({ "{") (primitive_type "int")) (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (if_statement "if (param_2 != param_1) {\n    for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }\n  }" (if "if") (parenthesized_expression "(param_2 != param_1)" (( "(") (binary_expression "param_2 != param_1" (identifier "param_2") (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n    for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }\n  }" ({ "{") (for_statement "for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }" (for "for") (( "(") (assignment_expression "piVar3 = param_1 + 3" (identifier "piVar3") (= "=") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3"))) (; ";") (binary_expression "piVar3 != param_2" (identifier "piVar3") (!= "!=") (identifier "param_2")) (; ";") (assignment_expression "piVar3 = piVar3 + 3" (identifier "piVar3") (= "=") (binary_expression "piVar3 + 3" (identifier "piVar3") (+ "+") (number_literal "3"))) () ")") (compound_statement "{\n      while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }\n      if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }\n      *param_1 = iVar4;\n      param_1[1] = iVar6;\n      param_1[2] = iVar5;\n    }" ({ "{") (while_statement "while( true ) {\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        iVar4 = *piVar3;\n        iVar6 = piVar3[1];\n        iVar5 = piVar3[2];\n        if (iVar4 < *param_1) break;\n        piVar2 = piVar3;\n        if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }\n        piVar3 = piVar3 + 3;\n        if (param_2 == piVar3) {\n          return;\n        }\n      }" ({ "{") (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" (identifier "iVar4") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "iVar6 = piVar3[1];" (assignment_expression "iVar6 = piVar3[1]" (identifier "iVar6") (= "=") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar5 = piVar3[2];" (assignment_expression "iVar5 = piVar3[2]" (identifier "iVar5") (= "=") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (iVar4 < *param_1) break;" (if "if") (parenthesized_expression "(iVar4 < *param_1)" (( "(") (binary_expression "iVar4 < *param_1" (identifier "iVar4") (< "<") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar2 = piVar3;" (assignment_expression "piVar2 = piVar3" (identifier "piVar2") (= "=") (identifier "piVar3")) (; ";")) (if_statement "if (iVar4 < piVar3[-3]) {\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }\n        else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" (if "if") (parenthesized_expression "(iVar4 < piVar3[-3])" (( "(") (binary_expression "iVar4 < piVar3[-3]" (identifier "iVar4") (< "<") (subscript_expression "piVar3[-3]" (identifier "piVar3") ([ "[") (number_literal "-3") (] "]"))) () ")")) (compound_statement "{\n          do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);\n          *piVar2 = iVar4;\n          piVar1[-2] = iVar6;\n          piVar1[-1] = iVar5;\n        }" ({ "{") (do_statement "do {\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          } while (iVar4 < piVar1[-6]);" (do "do") (compound_statement "{\n            piVar1 = piVar2;\n            piVar2 = piVar1 + -3;\n            *piVar1 = *piVar2;\n            piVar1[1] = piVar1[-2];\n            piVar1[2] = piVar1[-1];\n          }" ({ "{") (expression_statement "piVar1 = piVar2;" (assignment_expression "piVar1 = piVar2" (identifier "piVar1") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "piVar2 = piVar1 + -3;" (assignment_expression "piVar2 = piVar1 + -3" (identifier "piVar2") (= "=") (binary_expression "piVar1 + -3" (identifier "piVar1") (+ "+") (number_literal "-3"))) (; ";")) (expression_statement "*piVar1 = *piVar2;" (assignment_expression "*piVar1 = *piVar2" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (expression_statement "piVar1[1] = piVar1[-2];" (assignment_expression "piVar1[1] = piVar1[-2]" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "piVar1[-2]" (identifier "piVar1") ([ "[") (number_literal "-2") (] "]"))) (; ";")) (expression_statement "piVar1[2] = piVar1[-1];" (assignment_expression "piVar1[2] = piVar1[-1]" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "piVar1[-1]" (identifier "piVar1") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 < piVar1[-6])" (( "(") (binary_expression "iVar4 < piVar1[-6]" (identifier "iVar4") (< "<") (subscript_expression "piVar1[-6]" (identifier "piVar1") ([ "[") (number_literal "-6") (] "]"))) () ")")) (; ";")) (expression_statement "*piVar2 = iVar4;" (assignment_expression "*piVar2 = iVar4" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "piVar1[-2] = iVar6;" (assignment_expression "piVar1[-2] = iVar6" (subscript_expression "piVar1[-2]" (identifier "piVar1") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "piVar1[-1] = iVar5;" (assignment_expression "piVar1[-1] = iVar5" (subscript_expression "piVar1[-1]" (identifier "piVar1") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (} "}")) (else_clause "else {\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" (else "else") (compound_statement "{\n          *piVar3 = iVar4;\n          piVar3[1] = iVar6;\n          piVar3[2] = iVar5;\n        }" ({ "{") (expression_statement "*piVar3 = iVar4;" (assignment_expression "*piVar3 = iVar4" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "piVar3[1] = iVar6;" (assignment_expression "piVar3[1] = iVar6" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "piVar3[2] = iVar5;" (assignment_expression "piVar3[2] = iVar5" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (} "}")))) (expression_statement "piVar3 = piVar3 + 3;" (assignment_expression "piVar3 = piVar3 + 3" (identifier "piVar3") (= "=") (binary_expression "piVar3 + 3" (identifier "piVar3") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (param_2 == piVar3) {\n          return;\n        }" (if "if") (parenthesized_expression "(param_2 == piVar3)" (( "(") (binary_expression "param_2 == piVar3" (identifier "param_2") (== "==") (identifier "piVar3")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (if_statement "if (param_1 != piVar3) {\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }" (if "if") (parenthesized_expression "(param_1 != piVar3)" (( "(") (binary_expression "param_1 != piVar3" (identifier "param_1") (!= "!=") (identifier "piVar3")) () ")")) (compound_statement "{\n        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);\n      }" ({ "{") (expression_statement "(*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);" (call_expression "(*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1)" (parenthesized_expression "(*(code *)PTR_memmove_004366d8)" (( "(") (pointer_expression "*(code *)PTR_memmove_004366d8" (* "*") (cast_expression "(code *)PTR_memmove_004366d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_004366d8"))) () ")")) (argument_list "(param_1 + 3,param_1,(int)piVar3 - (int)param_1)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) (, ",") (identifier "param_1") (, ",") (binary_expression "(int)piVar3 - (int)param_1" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")"))) (; ";")) (} "}"))) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "param_1[1] = iVar6;" (assignment_expression "param_1[1] = iVar6" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "param_1[2] = iVar5;" (assignment_expression "param_1[2] = iVar5" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name:
   __insertion_sort<__gnu_cxx::__normal_iterator<gold::Object_merge_map::Input_merge_entry*,
   std::vector<gold::Object_merge_map::Input_merge_entry> >,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare> > */

void std::
     __insertion_sort<__gnu_cxx::__normal_iterator<gold::Object_merge_map::Input_merge_entry*,_std::vector<gold::Object_merge_map::Input_merge_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>_>
               (int *var_2,int *var_1)

{
  int *var_5;
  int *piVar2;
  int *var_3;
  int var_4;
  int iVar5;
  int iVar6;
  
  if (var_1 != var_2) {
    for (var_3 = var_2 + 3; var_3 != var_1; var_3 = var_3 + 3) {
      while( true ) {
        var_4 = *var_3;
        iVar6 = var_3[1];
        iVar5 = var_3[2];
        if (var_4 < *var_2) break;
        piVar2 = var_3;
        if (var_4 < var_3[-3]) {
          do {
            var_5 = piVar2;
            piVar2 = var_5 + -3;
            *var_5 = *piVar2;
            var_5[1] = var_5[-2];
            var_5[2] = var_5[-1];
          } while (var_4 < var_5[-6]);
          *piVar2 = var_4;
          var_5[-2] = iVar6;
          var_5[-1] = iVar5;
        }
        else {
          *var_3 = var_4;
          var_3[1] = iVar6;
          var_3[2] = iVar5;
        }
        var_3 = var_3 + 3;
        if (var_1 == var_3) {
          return;
        }
      }
      if (var_2 != var_3) {
        (*(type_1 *)PTR_memmove_004366d8)(var_2 + 3,var_2,(int)var_3 - (int)var_2);
      }
      *var_2 = var_4;
      var_2[1] = iVar6;
      var_2[2] = iVar5;
    }
  }
  return;
}


(translation_unit (declaration type: (primitive_type) (ERROR (identifier) (identifier) (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR) (ERROR (identifier) (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR (identifier) (identifier) (identifier) (identifier)) declarator: (identifier) (ERROR) (ERROR (identifier) (identifier) (identifier) (identifier) (function_declarator declarator: (identifier) (ERROR) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) (primitive_type)) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (for_statement initializer: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) condition: (binary_expression left: (identifier) right: (identifier)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))) (return_statement) (ERROR))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* void std::__insertion_sort<__normal_iterator<gold::Object_merge_map::Input_merge_entry*,
   std::vector<gold::Object_merge_map::Input_merge_entry,
   std::allocator<gold::Object_merge_map::Input_merge_entry> > >,
   __ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>
   >(__normal_iterator<gold::Object_merge_map::Input_merge_entry*,
   std::vector<gold::Object_merge_map::Input_merge_entry,
   std::allocator<gold::Object_merge_map::Input_merge_entry> > >,
   __normal_iterator<gold::Object_merge_map::Input_merge_entry*,
   std::vector<gold::Object_merge_map::Input_merge_entry,
   std::allocator<gold::Object_merge_map::Input_merge_entry> > >,
   __ops::_Iter_comp_iter<gold::Object_merge_map::Input_merge_compare>) */

void std::
     MASKED
               (int *param_1,int *param_2)

{
  int *piVar1;
  int *piVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  
  if (param_2 != param_1) {
    for (piVar3 = param_1 + 3; piVar3 != param_2; piVar3 = piVar3 + 3) {
      while( true ) {
        iVar4 = *piVar3;
        iVar6 = piVar3[1];
        iVar5 = piVar3[2];
        if (iVar4 < *param_1) break;
        piVar2 = piVar3;
        if (iVar4 < piVar3[-3]) {
          do {
            piVar1 = piVar2;
            piVar2 = piVar1 + -3;
            *piVar1 = *piVar2;
            piVar1[1] = piVar1[-2];
            piVar1[2] = piVar1[-1];
          } while (iVar4 < piVar1[-6]);
          *piVar2 = iVar4;
          piVar1[-2] = iVar6;
          piVar1[-1] = iVar5;
        }
        else {
          *piVar3 = iVar4;
          piVar3[1] = iVar6;
          piVar3[2] = iVar5;
        }
        piVar3 = piVar3 + 3;
        if (param_2 == piVar3) {
          return;
        }
      }
      if (param_1 != piVar3) {
        (*(code *)PTR_memmove_004366d8)(param_1 + 3,param_1,(int)piVar3 - (int)param_1);
      }
      *param_1 = iVar4;
      param_1[1] = iVar6;
      param_1[2] = iVar5;
    }
  }
  return;
}

