
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name:
   __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,
   std::vector<gold::Output_section::Input_section> >, __gnu_cxx::__ops::_Iter_comp_iter<(anonymous
   namespace)::Sort_toc_sections<false> > > */

void std::
     __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>
               (void)

{
  int in_EAX;
  int iVar1;
  int in_EDX;
  
  if (0x150 < in_EDX - in_EAX) {
    iVar1 = ((in_EDX - in_EAX >> 3) * -0x55555555 >> 1) * 0x18;
    __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>
              ();
    __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>
              ();
    __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>
              ((iVar1 >> 3) * -0x55555555,(in_EDX - (in_EAX + iVar1) >> 3) * -0x55555555);
    return;
  }
  __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>
            ();
  return;
}



void __regparm3 FUN_000caf70(int param_1,int param_2,undefined4 param_3)

{
  int iVar1;
  
  if (0x150 < param_2 - param_1) {
    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;
    FUN_000caf70();
    FUN_000caf70();
    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3
                );
    return;
  }
  FUN_000b61e0();
  return;
}


PUSH EBP
MOV EBP,EDX
PUSH EDI
SUB EBP,EAX
PUSH ESI
PUSH EBX
SUB ESP,0x1c
CMP EBP,0x150
JLE 0x000caff0
SAR EBP,0x3
MOV EBX,EAX
MOV ESI,EDX
MOV EDI,ECX
IMUL EBP,EBP,-0x55555555
SAR EBP,0x1
LEA EAX,[EBP + EBP*0x2]
SHL EAX,0x3
LEA EBP,[EBX + EAX*0x1]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,EBX
MOV EDX,EBP
CALL 0x000caf70
MOV ECX,EDI
MOV EDX,ESI
MOV EAX,EBP
CALL 0x000caf70
SUB ESP,0x4
MOV ECX,ESI
MOV EDX,EBP
PUSH EDI
MOV EDI,ESI
SUB EDI,EBP
MOV EAX,EDI
SAR EAX,0x3
IMUL EAX,EAX,-0x55555555
PUSH EAX
MOV EAX,dword ptr [ESP + 0x18]
SAR EAX,0x3
IMUL EAX,EAX,-0x55555555
PUSH EAX
MOV EAX,EBX
CALL 0x000cad20
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
JMP 0x000b61e0
(translation_unit "void __regparm3 FUN_000caf70(int param_1,int param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  \n  if (0x150 < param_2 - param_1) {\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }\n  FUN_000b61e0();\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_000caf70(int param_1,int param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  \n  if (0x150 < param_2 - param_1) {\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }\n  FUN_000b61e0();\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000caf70(int param_1,int param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if (0x150 < param_2 - param_1) {\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }\n  FUN_000b61e0();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (0x150 < param_2 - param_1) {\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }" if (parenthesized_expression "(0x150 < param_2 - param_1)" ( (binary_expression "0x150 < param_2 - param_1" number_literal < (binary_expression "param_2 - param_1" identifier - identifier)) )) (compound_statement "{\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }" { (expression_statement "iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;" (assignment_expression "iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18" identifier = (binary_expression "((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18" (parenthesized_expression "((param_2 - param_1 >> 3) * -0x55555555 >> 1)" ( (binary_expression "(param_2 - param_1 >> 3) * -0x55555555 >> 1" (binary_expression "(param_2 - param_1 >> 3) * -0x55555555" (parenthesized_expression "(param_2 - param_1 >> 3)" ( (binary_expression "param_2 - param_1 >> 3" (binary_expression "param_2 - param_1" identifier - identifier) >> number_literal) )) * number_literal) >> number_literal) )) * number_literal)) ;) (expression_statement "FUN_000caf70();" (call_expression "FUN_000caf70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000caf70();" (call_expression "FUN_000caf70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );" (call_expression "FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                )" identifier (argument_list "((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                )" ( (binary_expression "(iVar1 >> 3) * -0x55555555" (parenthesized_expression "(iVar1 >> 3)" ( (binary_expression "iVar1 >> 3" identifier >> number_literal) )) * number_literal) , (binary_expression "(param_2 - (param_1 + iVar1) >> 3) * -0x55555555" (parenthesized_expression "(param_2 - (param_1 + iVar1) >> 3)" ( (binary_expression "param_2 - (param_1 + iVar1) >> 3" (binary_expression "param_2 - (param_1 + iVar1)" identifier - (parenthesized_expression "(param_1 + iVar1)" ( (binary_expression "param_1 + iVar1" identifier + identifier) ))) >> number_literal) )) * number_literal) , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_000b61e0();" (call_expression "FUN_000b61e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* DWARF original name:\n   __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,\n   std::vector<gold::Output_section::Input_section> >, __gnu_cxx::__ops::_Iter_comp_iter<(anonymous\n   namespace)::Sort_toc_sections<false> > > */\n\nvoid std::\n     __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n               (void)\n\n{\n  int in_EAX;\n  int iVar1;\n  int in_EDX;\n  \n  if (0x150 < in_EDX - in_EAX) {\n    iVar1 = ((in_EDX - in_EAX >> 3) * -0x55555555 >> 1) * 0x18;\n    __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ();\n    __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ();\n    __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ((iVar1 >> 3) * -0x55555555,(in_EDX - (in_EAX + iVar1) >> 3) * -0x55555555);\n    return;\n  }\n  __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n            ();\n  return;\n}\n\n" comment comment (declaration "void std::\n     __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n               (void)\n\n{\n  int in_EAX;" primitive_type (ERROR "std::\n     __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::" identifier : : identifier < identifier : : identifier < identifier : : identifier : :) identifier (ERROR "*" *) , (ERROR "_std::vector<gold::Output_section::Input_section>" identifier : : identifier < identifier : : identifier : : identifier >) identifier (ERROR ">" >) , (ERROR "___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n               (void)\n\n{\n  int" identifier : : identifier : : identifier < ( identifier ) : : identifier < false > identifier > (function_declarator "_>\n               (void)" identifier (ERROR ">" >) (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) { primitive_type) identifier ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "int in_EDX;" primitive_type identifier ;) (if_statement "if (0x150 < in_EDX - in_EAX) {\n    iVar1 = ((in_EDX - in_EAX >> 3) * -0x55555555 >> 1) * 0x18;\n    __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ();\n    __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ();\n    __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ((iVar1 >> 3) * -0x55555555,(in_EDX - (in_EAX + iVar1) >> 3) * -0x55555555);\n    return;\n  }" if (parenthesized_expression "(0x150 < in_EDX - in_EAX)" ( (binary_expression "0x150 < in_EDX - in_EAX" number_literal < (binary_expression "in_EDX - in_EAX" identifier - identifier)) )) (compound_statement "{\n    iVar1 = ((in_EDX - in_EAX >> 3) * -0x55555555 >> 1) * 0x18;\n    __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ();\n    __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ();\n    __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ((iVar1 >> 3) * -0x55555555,(in_EDX - (in_EAX + iVar1) >> 3) * -0x55555555);\n    return;\n  }" { (expression_statement "iVar1 = ((in_EDX - in_EAX >> 3) * -0x55555555 >> 1) * 0x18;" (assignment_expression "iVar1 = ((in_EDX - in_EAX >> 3) * -0x55555555 >> 1) * 0x18" identifier = (binary_expression "((in_EDX - in_EAX >> 3) * -0x55555555 >> 1) * 0x18" (parenthesized_expression "((in_EDX - in_EAX >> 3) * -0x55555555 >> 1)" ( (binary_expression "(in_EDX - in_EAX >> 3) * -0x55555555 >> 1" (binary_expression "(in_EDX - in_EAX >> 3) * -0x55555555" (parenthesized_expression "(in_EDX - in_EAX >> 3)" ( (binary_expression "in_EDX - in_EAX >> 3" (binary_expression "in_EDX - in_EAX" identifier - identifier) >> number_literal) )) * number_literal) >> number_literal) )) * number_literal)) ;) (ERROR "__inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::" (binary_expression "__inplace_stable_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__inplace_stable_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) : : (comma_expression "Output_section::Input_section*,_std" identifier (ERROR "::Input_section*" : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_section::Input_section>_>,___gnu_cxx" identifier (ERROR "::Input_section>_>" : : (binary_expression "Input_section>_" identifier > identifier) >) , identifier) : :) (labeled_statement "__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ();" statement_identifier (ERROR "::_Iter_comp_iter<(anonymous_namespace):" : : (binary_expression "_Iter_comp_iter<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Sort_toc_sections<false>_>_>\n              ();" (binary_expression "Sort_toc_sections<false>_>_>\n              ()" (binary_expression "Sort_toc_sections<false>_>_" (binary_expression "Sort_toc_sections<false>_" (binary_expression "Sort_toc_sections<false" identifier < false) > identifier) > identifier) > (parenthesized_expression "()" ( identifier ))) ;)) (ERROR "__inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::" (binary_expression "__inplace_stable_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__inplace_stable_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) : : (comma_expression "Output_section::Input_section*,_std" identifier (ERROR "::Input_section*" : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_section::Input_section>_>,___gnu_cxx" identifier (ERROR "::Input_section>_>" : : (binary_expression "Input_section>_" identifier > identifier) >) , identifier) : :) (labeled_statement "__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ();" statement_identifier (ERROR "::_Iter_comp_iter<(anonymous_namespace):" : : (binary_expression "_Iter_comp_iter<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Sort_toc_sections<false>_>_>\n              ();" (binary_expression "Sort_toc_sections<false>_>_>\n              ()" (binary_expression "Sort_toc_sections<false>_>_" (binary_expression "Sort_toc_sections<false>_" (binary_expression "Sort_toc_sections<false" identifier < false) > identifier) > identifier) > (parenthesized_expression "()" ( identifier ))) ;)) (ERROR "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,_int,___gnu_cxx::" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold" (binary_expression "__merge_without_buffer<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) : : (comma_expression "Output_section::Input_section*,_std" identifier (ERROR "::Input_section*" : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_section::Input_section>_>,_int,___gnu_cxx" identifier (ERROR "::Input_section>_>" : : (binary_expression "Input_section>_" identifier > identifier) >) , (comma_expression "_int,___gnu_cxx" identifier , identifier)) : :) (labeled_statement "__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n              ((iVar1 >> 3) * -0x55555555,(in_EDX - (in_EAX + iVar1) >> 3) * -0x55555555);" statement_identifier (ERROR "::_Iter_comp_iter<(anonymous_namespace):" : : (binary_expression "_Iter_comp_iter<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Sort_toc_sections<false>_>_>\n              ((iVar1 >> 3) * -0x55555555,(in_EDX - (in_EAX + iVar1) >> 3) * -0x55555555);" (binary_expression "Sort_toc_sections<false>_>_>\n              ((iVar1 >> 3) * -0x55555555,(in_EDX - (in_EAX + iVar1) >> 3) * -0x55555555)" (binary_expression "Sort_toc_sections<false>_>_" (binary_expression "Sort_toc_sections<false>_" (binary_expression "Sort_toc_sections<false" identifier < false) > identifier) > identifier) > (parenthesized_expression "((iVar1 >> 3) * -0x55555555,(in_EDX - (in_EAX + iVar1) >> 3) * -0x55555555)" ( (comma_expression "(iVar1 >> 3) * -0x55555555,(in_EDX - (in_EAX + iVar1) >> 3) * -0x55555555" (binary_expression "(iVar1 >> 3) * -0x55555555" (parenthesized_expression "(iVar1 >> 3)" ( (binary_expression "iVar1 >> 3" identifier >> number_literal) )) * number_literal) , (binary_expression "(in_EDX - (in_EAX + iVar1) >> 3) * -0x55555555" (parenthesized_expression "(in_EDX - (in_EAX + iVar1) >> 3)" ( (binary_expression "in_EDX - (in_EAX + iVar1) >> 3" (binary_expression "in_EDX - (in_EAX + iVar1)" identifier - (parenthesized_expression "(in_EAX + iVar1)" ( (binary_expression "in_EAX + iVar1" identifier + identifier) ))) >> number_literal) )) * number_literal)) ))) ;)) (return_statement "return;" return ;) })) (ERROR "__insertion_sort<__gnu_cxx::__normal_iterator<gold::" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) : :) (labeled_statement "Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n            ();" statement_identifier (ERROR "::Input_section*,_std::vector<gold::Output_section::Input_section>_>,___gnu_cxx:" : : (binary_expression "Input_section*,_std" identifier * (ERROR "," ,) identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_section::Input_section>_>,___gnu_cxx" identifier (ERROR "::Input_section>_>" : : (binary_expression "Input_section>_" identifier > identifier) >) , identifier) :) : (labeled_statement "__ops::_Iter_comp_iter<(anonymous_namespace)::Sort_toc_sections<false>_>_>\n            ();" statement_identifier (ERROR "::_Iter_comp_iter<(anonymous_namespace):" : : (binary_expression "_Iter_comp_iter<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Sort_toc_sections<false>_>_>\n            ();" (binary_expression "Sort_toc_sections<false>_>_>\n            ()" (binary_expression "Sort_toc_sections<false>_>_" (binary_expression "Sort_toc_sections<false>_" (binary_expression "Sort_toc_sections<false" identifier < false) > identifier) > identifier) > (parenthesized_expression "()" ( identifier ))) ;))) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void __regparm3 FUN_000caf70(int param_1,int param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  \n  if (0x150 < param_2 - param_1) {\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }\n  FUN_000b61e0();\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_000caf70(int param_1,int param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  \n  if (0x150 < param_2 - param_1) {\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }\n  FUN_000b61e0();\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000caf70(int param_1,int param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if (0x150 < param_2 - param_1) {\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }\n  FUN_000b61e0();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (0x150 < param_2 - param_1) {\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }" if (parenthesized_expression "(0x150 < param_2 - param_1)" ( (binary_expression "0x150 < param_2 - param_1" number_literal < (binary_expression "param_2 - param_1" identifier - identifier)) )) (compound_statement "{\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }" { (expression_statement "iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;" (assignment_expression "iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18" identifier = (binary_expression "((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18" (parenthesized_expression "((param_2 - param_1 >> 3) * -0x55555555 >> 1)" ( (binary_expression "(param_2 - param_1 >> 3) * -0x55555555 >> 1" (binary_expression "(param_2 - param_1 >> 3) * -0x55555555" (parenthesized_expression "(param_2 - param_1 >> 3)" ( (binary_expression "param_2 - param_1 >> 3" (binary_expression "param_2 - param_1" identifier - identifier) >> number_literal) )) * number_literal) >> number_literal) )) * number_literal)) ;) (expression_statement "FUN_000caf70();" (call_expression "FUN_000caf70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000caf70();" (call_expression "FUN_000caf70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );" (call_expression "FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                )" identifier (argument_list "((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                )" ( (binary_expression "(iVar1 >> 3) * -0x55555555" (parenthesized_expression "(iVar1 >> 3)" ( (binary_expression "iVar1 >> 3" identifier >> number_literal) )) * number_literal) , (binary_expression "(param_2 - (param_1 + iVar1) >> 3) * -0x55555555" (parenthesized_expression "(param_2 - (param_1 + iVar1) >> 3)" ( (binary_expression "param_2 - (param_1 + iVar1) >> 3" (binary_expression "param_2 - (param_1 + iVar1)" identifier - (parenthesized_expression "(param_1 + iVar1)" ( (binary_expression "param_1 + iVar1" identifier + identifier) ))) >> number_literal) )) * number_literal) , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_000b61e0();" (call_expression "FUN_000b61e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (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 (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) >> LIT) )) * LIT) >> LIT) )) * LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT) , (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) >> LIT) )) * LIT) , IDENT ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_000caf70(int param_1,int param_2,undefined4 param_3)\n\n{\n  int iVar1;\n  \n  if (0x150 < param_2 - param_1) {\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }\n  FUN_000b61e0();\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000caf70(int param_1,int param_2,undefined4 param_3)" (identifier "FUN_000caf70") (parameter_list "(int param_1,int param_2,undefined4 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  if (0x150 < param_2 - param_1) {\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }\n  FUN_000b61e0();\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (if_statement "if (0x150 < param_2 - param_1) {\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }" (if "if") (parenthesized_expression "(0x150 < param_2 - param_1)" (( "(") (binary_expression "0x150 < param_2 - param_1" (number_literal "0x150") (< "<") (binary_expression "param_2 - param_1" (identifier "param_2") (- "-") (identifier "param_1"))) () ")")) (compound_statement "{\n    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;\n    FUN_000caf70();\n    FUN_000caf70();\n    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );\n    return;\n  }" ({ "{") (expression_statement "iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;" (assignment_expression "iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18" (identifier "iVar1") (= "=") (binary_expression "((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18" (parenthesized_expression "((param_2 - param_1 >> 3) * -0x55555555 >> 1)" (( "(") (binary_expression "(param_2 - param_1 >> 3) * -0x55555555 >> 1" (binary_expression "(param_2 - param_1 >> 3) * -0x55555555" (parenthesized_expression "(param_2 - param_1 >> 3)" (( "(") (binary_expression "param_2 - param_1 >> 3" (binary_expression "param_2 - param_1" (identifier "param_2") (- "-") (identifier "param_1")) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) (>> ">>") (number_literal "1")) () ")")) (* "*") (number_literal "0x18"))) (; ";")) (expression_statement "FUN_000caf70();" (call_expression "FUN_000caf70()" (identifier "FUN_000caf70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000caf70();" (call_expression "FUN_000caf70()" (identifier "FUN_000caf70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                );" (call_expression "FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                )" (identifier "FUN_000cad20") (argument_list "((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3\n                )" (( "(") (binary_expression "(iVar1 >> 3) * -0x55555555" (parenthesized_expression "(iVar1 >> 3)" (( "(") (binary_expression "iVar1 >> 3" (identifier "iVar1") (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) (, ",") (binary_expression "(param_2 - (param_1 + iVar1) >> 3) * -0x55555555" (parenthesized_expression "(param_2 - (param_1 + iVar1) >> 3)" (( "(") (binary_expression "param_2 - (param_1 + iVar1) >> 3" (binary_expression "param_2 - (param_1 + iVar1)" (identifier "param_2") (- "-") (parenthesized_expression "(param_1 + iVar1)" (( "(") (binary_expression "param_1 + iVar1" (identifier "param_1") (+ "+") (identifier "iVar1")) () ")"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) (, ",") (identifier "param_3") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_000b61e0();" (call_expression "FUN_000b61e0()" (identifier "FUN_000b61e0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name:
   __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,
   std::vector<gold::Output_section::Input_section> >, __gnu_cxx::__ops::_Iter_comp_iter<(anonymous
   namespace)::Sort_toc_sections<false> > > */

void std::
     __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>var_4>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::var_3<false>var_4>var_4>
               (void)

{
  int var_2;
  int var_5;
  int var_1;
  
  if (0x150 < var_1 - var_2) {
    var_5 = ((var_1 - var_2 >> 3) * -0x55555555 >> 1) * 0x18;
    __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>var_4>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::var_3<false>var_4>var_4>
              ();
    __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>var_4>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::var_3<false>var_4>var_4>
              ();
    __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>var_4>,_int,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::var_3<false>var_4>var_4>
              ((var_5 >> 3) * -0x55555555,(var_1 - (var_2 + var_5) >> 3) * -0x55555555);
    return;
  }
  __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section::Input_section*,_std::vector<gold::Output_section::Input_section>var_4>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::var_3<false>var_4>var_4>
            ();
  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)) (parameter_declaration type: (type_identifier) 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: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))) right: (number_literal)) (identifier)))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))))

void __regparm3 MASKED(int param_1,int param_2,undefined4 param_3)

{
  int iVar1;
  
  if (0x150 < param_2 - param_1) {
    iVar1 = ((param_2 - param_1 >> 3) * -0x55555555 >> 1) * 0x18;
    MASKED();
    MASKED();
    FUN_000cad20((iVar1 >> 3) * -0x55555555,(param_2 - (param_1 + iVar1) >> 3) * -0x55555555,param_3
                );
    return;
  }
  FUN_000b61e0();
  return;
}

