
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name:
   __final_insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,
   std::vector<gold::Offset_to_lineno_entry> >, __gnu_cxx::__ops::_Iter_less_iter> */

void std::
     __final_insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Iter_less_iter>
               (void)

{
  int in_EAX;
  int in_EDX;
  int iVar1;
  undefined4 uVar2;
  
  if (0x140 < in_EDX - in_EAX) {
    uVar2 = 0;
    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Iter_less_iter>
              ();
    for (iVar1 = in_EAX + 0x140; in_EDX != iVar1; iVar1 = iVar1 + 0x14) {
      __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Val_less_iter>
                (iVar1,0,uVar2);
    }
    return;
  }
  __insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Iter_less_iter>
            ();
  return;
}



void __regparm3 FUN_00059420(int param_1,int param_2)

{
  int iVar1;
  
  if (0x140 < param_2 - param_1) {
    iVar1 = param_1 + 0x140;
    FUN_000639a0(param_1,iVar1,0);
    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {
      FUN_000638e0(iVar1,0);
    }
    return;
  }
  FUN_000639a0(param_1,param_2,0);
  return;
}


PUSH ESI
MOV ESI,EDX
SUB EDX,EAX
PUSH EBX
SUB ESP,0x4
CMP EDX,0x140
JLE 0x00059470
SUB ESP,0x4
LEA EBX,[EAX + 0x140]
PUSH 0x0
PUSH EBX
PUSH EAX
CALL 0x000639a0
ADD ESP,0x10
CMP ESI,EBX
JZ 0x00059465
LEA ESI,[ESI]
SUB ESP,0x8
PUSH 0x0
PUSH EBX
ADD EBX,0x14
CALL 0x000638e0
ADD ESP,0x10
CMP ESI,EBX
JNZ 0x00059450
ADD ESP,0x4
POP EBX
POP ESI
RET
SUB ESP,0x4
PUSH 0x0
PUSH ESI
PUSH EAX
CALL 0x000639a0
ADD ESP,0x10
ADD ESP,0x4
POP EBX
POP ESI
RET
(translation_unit "void __regparm3 FUN_00059420(int param_1,int param_2)\n\n{\n  int iVar1;\n  \n  if (0x140 < param_2 - param_1) {\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }\n  FUN_000639a0(param_1,param_2,0);\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00059420(int param_1,int param_2)\n\n{\n  int iVar1;\n  \n  if (0x140 < param_2 - param_1) {\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }\n  FUN_000639a0(param_1,param_2,0);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00059420(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if (0x140 < param_2 - param_1) {\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }\n  FUN_000639a0(param_1,param_2,0);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (0x140 < param_2 - param_1) {\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }" if (parenthesized_expression "(0x140 < param_2 - param_1)" ( (binary_expression "0x140 < param_2 - param_1" number_literal < (binary_expression "param_2 - param_1" identifier - identifier)) )) (compound_statement "{\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }" { (expression_statement "iVar1 = param_1 + 0x140;" (assignment_expression "iVar1 = param_1 + 0x140" identifier = (binary_expression "param_1 + 0x140" identifier + number_literal)) ;) (expression_statement "FUN_000639a0(param_1,iVar1,0);" (call_expression "FUN_000639a0(param_1,iVar1,0)" identifier (argument_list "(param_1,iVar1,0)" ( identifier , identifier , number_literal ))) ;) (for_statement "for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }" for ( ; (binary_expression "param_2 != iVar1" identifier != identifier) ; (assignment_expression "iVar1 = iVar1 + 0x14" identifier = (binary_expression "iVar1 + 0x14" identifier + number_literal)) ) (compound_statement "{\n      FUN_000638e0(iVar1,0);\n    }" { (expression_statement "FUN_000638e0(iVar1,0);" (call_expression "FUN_000638e0(iVar1,0)" identifier (argument_list "(iVar1,0)" ( identifier , number_literal ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "FUN_000639a0(param_1,param_2,0);" (call_expression "FUN_000639a0(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* DWARF original name:\n   __final_insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,\n   std::vector<gold::Offset_to_lineno_entry> >, __gnu_cxx::__ops::_Iter_less_iter> */\n\nvoid std::\n     __final_insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Iter_less_iter>\n               (void)\n\n{\n  int in_EAX;\n  int in_EDX;\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (0x140 < in_EDX - in_EAX) {\n    uVar2 = 0;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Iter_less_iter>\n              ();\n    for (iVar1 = in_EAX + 0x140; in_EDX != iVar1; iVar1 = iVar1 + 0x14) {\n      __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Val_less_iter>\n                (iVar1,0,uVar2);\n    }\n    return;\n  }\n  __insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Iter_less_iter>\n            ();\n  return;\n}\n\n" comment comment (declaration "void std::\n     __final_insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Iter_less_iter>\n               (void)\n\n{\n  int in_EAX;" primitive_type (ERROR "std::\n     __final_insertion_sort<__gnu_cxx::__normal_iterator<gold::" identifier : : identifier < identifier : : identifier < identifier : :) identifier (ERROR "*" *) , (ERROR "_std::vector<gold::Offset_to_lineno_entry>" identifier : : identifier < identifier : : identifier >) identifier (ERROR ">" >) , (ERROR "___gnu_cxx::__ops::_Iter_less_iter>\n               (void)\n\n{\n  int" identifier : : identifier : : (function_declarator "_Iter_less_iter>\n               (void)" identifier (ERROR ">" >) (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) { primitive_type) identifier ;) (declaration "int in_EDX;" primitive_type identifier ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if (0x140 < in_EDX - in_EAX) {\n    uVar2 = 0;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Iter_less_iter>\n              ();\n    for (iVar1 = in_EAX + 0x140; in_EDX != iVar1; iVar1 = iVar1 + 0x14) {\n      __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Val_less_iter>\n                (iVar1,0,uVar2);\n    }\n    return;\n  }" if (parenthesized_expression "(0x140 < in_EDX - in_EAX)" ( (binary_expression "0x140 < in_EDX - in_EAX" number_literal < (binary_expression "in_EDX - in_EAX" identifier - identifier)) )) (compound_statement "{\n    uVar2 = 0;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Iter_less_iter>\n              ();\n    for (iVar1 = in_EAX + 0x140; in_EDX != iVar1; iVar1 = iVar1 + 0x14) {\n      __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Val_less_iter>\n                (iVar1,0,uVar2);\n    }\n    return;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Iter_less_iter>\n              ();" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Offset_to_lineno_entry" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Offset_to_lineno_entry" : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_less_iter>\n              ()" : : identifier : : identifier > ( )) ;) (for_statement "for (iVar1 = in_EAX + 0x140; in_EDX != iVar1; iVar1 = iVar1 + 0x14) {\n      __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Val_less_iter>\n                (iVar1,0,uVar2);\n    }" for ( (assignment_expression "iVar1 = in_EAX + 0x140" identifier = (binary_expression "in_EAX + 0x140" identifier + number_literal)) ; (binary_expression "in_EDX != iVar1" identifier != identifier) ; (assignment_expression "iVar1 = iVar1 + 0x14" identifier = (binary_expression "iVar1 + 0x14" identifier + number_literal)) ) (compound_statement "{\n      __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Val_less_iter>\n                (iVar1,0,uVar2);\n    }" { (expression_statement "__unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Val_less_iter>\n                (iVar1,0,uVar2);" (binary_expression "__unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Val_less_iter>\n                (iVar1,0,uVar2)" (binary_expression "__unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx" (binary_expression "__unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_" (binary_expression "__unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold" (binary_expression "__unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std" (binary_expression "__unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold" (binary_expression "__unguarded_linear_insert<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Offset_to_lineno_entry" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Offset_to_lineno_entry" : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Val_less_iter" : : identifier : : identifier) > (parenthesized_expression "(iVar1,0,uVar2)" ( (comma_expression "iVar1,0,uVar2" identifier , (comma_expression "0,uVar2" number_literal , identifier)) ))) ;) })) (return_statement "return;" return ;) })) (ERROR "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx::__ops::_Iter_less_iter>\n            ();\n  return;\n}" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_>,___gnu_cxx" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold::Offset_to_lineno_entry>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std::vector<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,_std" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Offset_to_lineno_entry" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Offset_to_lineno_entry" : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_less_iter" : : identifier : : identifier) > ( ) ; return ; }))
(translation_unit "void __regparm3 FUN_00059420(int param_1,int param_2)\n\n{\n  int iVar1;\n  \n  if (0x140 < param_2 - param_1) {\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }\n  FUN_000639a0(param_1,param_2,0);\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00059420(int param_1,int param_2)\n\n{\n  int iVar1;\n  \n  if (0x140 < param_2 - param_1) {\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }\n  FUN_000639a0(param_1,param_2,0);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00059420(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if (0x140 < param_2 - param_1) {\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }\n  FUN_000639a0(param_1,param_2,0);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (0x140 < param_2 - param_1) {\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }" if (parenthesized_expression "(0x140 < param_2 - param_1)" ( (binary_expression "0x140 < param_2 - param_1" number_literal < (binary_expression "param_2 - param_1" identifier - identifier)) )) (compound_statement "{\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }" { (expression_statement "iVar1 = param_1 + 0x140;" (assignment_expression "iVar1 = param_1 + 0x140" identifier = (binary_expression "param_1 + 0x140" identifier + number_literal)) ;) (expression_statement "FUN_000639a0(param_1,iVar1,0);" (call_expression "FUN_000639a0(param_1,iVar1,0)" identifier (argument_list "(param_1,iVar1,0)" ( identifier , identifier , number_literal ))) ;) (for_statement "for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }" for ( ; (binary_expression "param_2 != iVar1" identifier != identifier) ; (assignment_expression "iVar1 = iVar1 + 0x14" identifier = (binary_expression "iVar1 + 0x14" identifier + number_literal)) ) (compound_statement "{\n      FUN_000638e0(iVar1,0);\n    }" { (expression_statement "FUN_000638e0(iVar1,0);" (call_expression "FUN_000638e0(iVar1,0)" identifier (argument_list "(iVar1,0)" ( identifier , number_literal ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "FUN_000639a0(param_1,param_2,0);" (call_expression "FUN_000639a0(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (for_statement for ( ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_00059420(int param_1,int param_2)\n\n{\n  int iVar1;\n  \n  if (0x140 < param_2 - param_1) {\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }\n  FUN_000639a0(param_1,param_2,0);\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00059420(int param_1,int param_2)" (identifier "FUN_00059420") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  if (0x140 < param_2 - param_1) {\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }\n  FUN_000639a0(param_1,param_2,0);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (if_statement "if (0x140 < param_2 - param_1) {\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(0x140 < param_2 - param_1)" (( "(") (binary_expression "0x140 < param_2 - param_1" (number_literal "0x140") (< "<") (binary_expression "param_2 - param_1" (identifier "param_2") (- "-") (identifier "param_1"))) () ")")) (compound_statement "{\n    iVar1 = param_1 + 0x140;\n    FUN_000639a0(param_1,iVar1,0);\n    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }\n    return;\n  }" ({ "{") (expression_statement "iVar1 = param_1 + 0x140;" (assignment_expression "iVar1 = param_1 + 0x140" (identifier "iVar1") (= "=") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140"))) (; ";")) (expression_statement "FUN_000639a0(param_1,iVar1,0);" (call_expression "FUN_000639a0(param_1,iVar1,0)" (identifier "FUN_000639a0") (argument_list "(param_1,iVar1,0)" (( "(") (identifier "param_1") (, ",") (identifier "iVar1") (, ",") (number_literal "0") () ")"))) (; ";")) (for_statement "for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {\n      FUN_000638e0(iVar1,0);\n    }" (for "for") (( "(") (; ";") (binary_expression "param_2 != iVar1" (identifier "param_2") (!= "!=") (identifier "iVar1")) (; ";") (assignment_expression "iVar1 = iVar1 + 0x14" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14"))) () ")") (compound_statement "{\n      FUN_000638e0(iVar1,0);\n    }" ({ "{") (expression_statement "FUN_000638e0(iVar1,0);" (call_expression "FUN_000638e0(iVar1,0)" (identifier "FUN_000638e0") (argument_list "(iVar1,0)" (( "(") (identifier "iVar1") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_000639a0(param_1,param_2,0);" (call_expression "FUN_000639a0(param_1,param_2,0)" (identifier "FUN_000639a0") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name:
   __final_insertion_sort<__gnu_cxx::__normal_iterator<gold::Offset_to_lineno_entry*,
   std::vector<gold::Offset_to_lineno_entry> >, __gnu_cxx::__ops::_Iter_less_iter> */

void std::
     __final_insertion_sort<var_4::__normal_iterator<var_5::Offset_to_lineno_entry*,var_6::vector<var_5::Offset_to_lineno_entry>var_7>,var_8::__ops::_Iter_less_iter>
               (void)

{
  int var_2;
  int var_1;
  int var_9;
  type_1 uVar2;
  
  if (0x140 < var_1 - var_2) {
    uVar2 = 0;
    var_3<var_4::__normal_iterator<var_5::Offset_to_lineno_entry*,var_6::vector<var_5::Offset_to_lineno_entry>var_7>,var_8::__ops::_Iter_less_iter>
              ();
    for (var_9 = var_2 + 0x140; var_1 != var_9; var_9 = var_9 + 0x14) {
      var_10<var_4::__normal_iterator<var_5::Offset_to_lineno_entry*,var_6::vector<var_5::Offset_to_lineno_entry>var_7>,var_8::__ops::_Val_less_iter>
                (var_9,0,uVar2);
    }
    return;
  }
  var_3<var_4::__normal_iterator<var_5::Offset_to_lineno_entry*,var_6::vector<var_5::Offset_to_lineno_entry>var_7>,var_8::__ops::_Iter_less_iter>
            ();
  return;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (for_statement condition: (binary_expression left: (identifier) right: (identifier)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (return_statement))))

void __regparm3 MASKED(int param_1,int param_2)

{
  int iVar1;
  
  if (0x140 < param_2 - param_1) {
    iVar1 = param_1 + 0x140;
    FUN_000639a0(param_1,iVar1,0);
    for (; param_2 != iVar1; iVar1 = iVar1 + 0x14) {
      FUN_000638e0(iVar1,0);
    }
    return;
  }
  FUN_000639a0(param_1,param_2,0);
  return;
}

