
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name: __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,
   std::vector<gold::Output_section*> >, long int,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections> > */

void std::
     __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>
               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
                        __middle,
               __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
               __last,long __len1,long __len2,_Iter_comp_iter<gold::Sort_output_sections> __comp)

{
  Output_section *pOVar1;
  bool bVar2;
  __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
  __middle_00;
  __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
  __middle_01;
  long lVar3;
  long __len1_00;
  long __len2_00;
  _Iter_comp_iter<gold::Sort_output_sections> local_40 [2];
  
  if ((__len1 != 0) && (__len2 != 0)) {
    local_40[0]._M_comp.elements_ = __comp._M_comp.elements_;
    if (__len1 + __len2 == 2) {
      bVar2 = gold::Sort_output_sections::operator()
                        (&local_40[0]._M_comp,*__middle._M_current,*__first._M_current);
      if (bVar2) {
        pOVar1 = *__first._M_current;
        *__first._M_current = *__middle._M_current;
        *__middle._M_current = pOVar1;
      }
    }
    else {
      if (__len2 < __len1) {
        __len1_00 = __len1 / 2;
        __middle_00._M_current = __first._M_current + __len1_00;
        __middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_>
                                (__middle,__last,__middle_00._M_current,
                                 (_Iter_comp_val<gold::Sort_output_sections>)
                                 __comp._M_comp.elements_);
        lVar3 = (long)__middle_01._M_current - (long)__middle._M_current;
        __len2_00 = lVar3 >> 3;
      }
      else {
        __len2_00 = __len2 / 2;
        lVar3 = __len2_00 * 8;
        __middle_01._M_current = __middle._M_current + __len2_00;
        __middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>
                                (__first,__middle,__middle_01._M_current,
                                 (_Val_comp_iter<gold::Sort_output_sections>)
                                 __comp._M_comp.elements_);
        __len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3;
      }
      _V2::
      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>_>
                (__middle_00._M_current,__middle._M_current,__middle_01._M_current);
      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>
                (__first,__middle_00,
                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0]);
      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>
                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
                  )(__middle_00._M_current + lVar3),__middle_01,__last,__len1 - __len1_00,
                 __len2 - __len2_00,local_40[0]);
    }
  }
  return;
}



void FUN_00262aa0(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,
                 long param_5,undefined8 param_6)

{
  undefined8 uVar1;
  char cVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  undefined8 local_40 [2];
  
  if ((param_4 != 0) && (param_5 != 0)) {
    local_40[0] = param_6;
    if (param_4 + param_5 == 2) {
      cVar2 = FUN_00258430(local_40,*param_2,*param_1);
      if (cVar2 != '\0') {
        uVar1 = *param_1;
        *param_1 = *param_2;
        *param_2 = uVar1;
      }
    }
    else {
      if (param_5 < param_4) {
        lVar6 = param_4 / 2;
        puVar3 = param_1 + lVar6;
        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);
        lVar5 = (long)puVar4 - (long)param_2;
        lVar7 = lVar5 >> 3;
      }
      else {
        lVar7 = param_5 / 2;
        lVar5 = lVar7 * 8;
        puVar4 = param_2 + lVar7;
        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);
        lVar6 = (long)puVar3 - (long)param_1 >> 3;
      }
      FUN_002628e0(puVar3,param_2,puVar4);
      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);
      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);
    }
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x28
MOV qword ptr [RSP + 0x18],R9
TEST RCX,RCX
JZ 0x00262b9c
TEST R8,R8
JZ 0x00262b9c
MOV RBP,R8
MOV RBX,RCX
MOV qword ptr [RSP],RDX
MOV R8,RSI
LEA RAX,[RCX + RBP*0x1]
MOV R12,RDI
CMP RAX,0x2
JZ 0x00262c00
MOV RCX,qword ptr [RSP + 0x18]
CMP RBX,RBP
JG 0x00262bb0
MOV R14,RBP
MOV qword ptr [RSP + 0x8],RSI
SHR R14,0x3f
ADD R14,RBP
SAR R14,0x1
LEA R9,[R14*0x8]
LEA R15,[RSI + R9*0x1]
MOV qword ptr [RSP + 0x10],R9
MOV RDX,R15
CALL 0x0025f760
MOV R9,qword ptr [RSP + 0x10]
MOV R8,qword ptr [RSP + 0x8]
MOV R13,RAX
MOV R10,RAX
SUB R13,R12
SAR R13,0x3
MOV RSI,R8
MOV RDI,R10
MOV RDX,R15
MOV qword ptr [RSP + 0x10],R9
MOV qword ptr [RSP + 0x8],R10
SUB RBX,R13
CALL 0x002628e0
MOV R10,qword ptr [RSP + 0x8]
MOV R8,R14
MOV RCX,R13
MOV R9,qword ptr [RSP + 0x10]
MOV RDI,R12
MOV RSI,R10
LEA RAX,[R10 + R9*0x1]
MOV R9,qword ptr [RSP + 0x18]
MOV RDX,RAX
MOV qword ptr [RSP + 0x8],RAX
CALL 0x00262aa0
MOV RAX,qword ptr [RSP + 0x8]
MOV R8,RBP
MOV RCX,RBX
MOV R9,qword ptr [RSP + 0x18]
MOV RDX,qword ptr [RSP]
SUB R8,R14
MOV RSI,R15
MOV RDI,RAX
CALL 0x00262aa0
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV R13,RBX
MOV RSI,qword ptr [RSP]
MOV qword ptr [RSP + 0x8],R8
SHR R13,0x3f
ADD R13,RBX
SAR R13,0x1
LEA R10,[RDI + R13*0x8]
MOV RDI,R8
MOV RDX,R10
MOV qword ptr [RSP + 0x10],R10
CALL 0x0025f6e0
MOV R8,qword ptr [RSP + 0x8]
MOV R10,qword ptr [RSP + 0x10]
MOV R9,RAX
MOV R15,RAX
SUB R9,R8
MOV R14,R9
SAR R14,0x3
JMP 0x00262b33
MOV RDX,qword ptr [R12]
MOV RSI,qword ptr [RSI]
LEA RDI,[RSP + 0x18]
MOV qword ptr [RSP],R8
CALL 0x00258430
TEST AL,AL
JZ 0x00262b9c
MOV R8,qword ptr [RSP]
MOV RAX,qword ptr [R12]
MOV RDX,qword ptr [R8]
MOV qword ptr [R12],RDX
MOV qword ptr [R8],RAX
JMP 0x00262b9c
(translation_unit "void FUN_00262aa0(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,\n                 long param_5,undefined8 param_6)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  undefined8 local_40 [2];\n  \n  if ((param_4 != 0) && (param_5 != 0)) {\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00262aa0(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,\n                 long param_5,undefined8 param_6)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  undefined8 local_40 [2];\n  \n  if ((param_4 != 0) && (param_5 != 0)) {\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00262aa0(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,\n                 long param_5,undefined8 param_6)" identifier (parameter_list "(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,\n                 long param_5,undefined8 param_6)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  char cVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  undefined8 local_40 [2];\n  \n  if ((param_4 != 0) && (param_5 != 0)) {\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_40 [2];" type_identifier (array_declarator "local_40 [2]" identifier [ number_literal ]) ;) (if_statement "if ((param_4 != 0) && (param_5 != 0)) {\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }" if (parenthesized_expression "((param_4 != 0) && (param_5 != 0))" ( (binary_expression "(param_4 != 0) && (param_5 != 0)" (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }" { (expression_statement "local_40[0] = param_6;" (assignment_expression "local_40[0] = param_6" (subscript_expression "local_40[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }" if (parenthesized_expression "(param_4 + param_5 == 2)" ( (binary_expression "param_4 + param_5 == 2" (binary_expression "param_4 + param_5" identifier + identifier) == number_literal) )) (compound_statement "{\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }" { (expression_statement "cVar2 = FUN_00258430(local_40,*param_2,*param_1);" (assignment_expression "cVar2 = FUN_00258430(local_40,*param_2,*param_1)" identifier = (call_expression "FUN_00258430(local_40,*param_2,*param_1)" identifier (argument_list "(local_40,*param_2,*param_1)" ( identifier , (pointer_expression "*param_2" * identifier) , (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }" { (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_1 = *param_2;" (assignment_expression "*param_1 = *param_2" (pointer_expression "*param_1" * identifier) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*param_2 = uVar1;" (assignment_expression "*param_2 = uVar1" (pointer_expression "*param_2" * identifier) = identifier) ;) })) }) (else_clause "else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }" else (compound_statement "{\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }" { (if_statement "if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }" if (parenthesized_expression "(param_5 < param_4)" ( (binary_expression "param_5 < param_4" identifier < identifier) )) (compound_statement "{\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }" { (expression_statement "lVar6 = param_4 / 2;" (assignment_expression "lVar6 = param_4 / 2" identifier = (binary_expression "param_4 / 2" identifier / number_literal)) ;) (expression_statement "puVar3 = param_1 + lVar6;" (assignment_expression "puVar3 = param_1 + lVar6" identifier = (binary_expression "param_1 + lVar6" identifier + identifier)) ;) (expression_statement "puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);" (assignment_expression "puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6)" identifier = (cast_expression "(undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0025f6e0(param_2,param_3,puVar3,param_6)" identifier (argument_list "(param_2,param_3,puVar3,param_6)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "lVar5 = (long)puVar4 - (long)param_2;" (assignment_expression "lVar5 = (long)puVar4 - (long)param_2" identifier = (binary_expression "(long)puVar4 - (long)param_2" (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "lVar7 = lVar5 >> 3;" (assignment_expression "lVar7 = lVar5 >> 3" identifier = (binary_expression "lVar5 >> 3" identifier >> number_literal)) ;) }) (else_clause "else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }" else (compound_statement "{\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }" { (expression_statement "lVar7 = param_5 / 2;" (assignment_expression "lVar7 = param_5 / 2" identifier = (binary_expression "param_5 / 2" identifier / number_literal)) ;) (expression_statement "lVar5 = lVar7 * 8;" (assignment_expression "lVar5 = lVar7 * 8" identifier = (binary_expression "lVar7 * 8" identifier * number_literal)) ;) (expression_statement "puVar4 = param_2 + lVar7;" (assignment_expression "puVar4 = param_2 + lVar7" identifier = (binary_expression "param_2 + lVar7" identifier + identifier)) ;) (expression_statement "puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);" (assignment_expression "puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4)" identifier = (cast_expression "(undefined8 *)FUN_0025f760(param_1,param_2,puVar4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0025f760(param_1,param_2,puVar4)" identifier (argument_list "(param_1,param_2,puVar4)" ( identifier , identifier , identifier ))))) ;) (expression_statement "lVar6 = (long)puVar3 - (long)param_1 >> 3;" (assignment_expression "lVar6 = (long)puVar3 - (long)param_1 >> 3" identifier = (binary_expression "(long)puVar3 - (long)param_1 >> 3" (binary_expression "(long)puVar3 - (long)param_1" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) }))) (expression_statement "FUN_002628e0(puVar3,param_2,puVar4);" (call_expression "FUN_002628e0(puVar3,param_2,puVar4)" identifier (argument_list "(puVar3,param_2,puVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);" (call_expression "FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0])" identifier (argument_list "(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0])" ( identifier , identifier , (binary_expression "(long)puVar3 + lVar5" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) , identifier , identifier , (subscript_expression "local_40[0]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);" (call_expression "FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0])" identifier (argument_list "((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0])" ( (binary_expression "(long)puVar3 + lVar5" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) , identifier , identifier , (binary_expression "param_4 - lVar6" identifier - identifier) , (binary_expression "param_5 - lVar7" identifier - identifier) , (subscript_expression "local_40[0]" identifier [ number_literal ]) ))) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* DWARF original name: __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,\n   std::vector<gold::Output_section*> >, long int,\n   __gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections> > */\n\nvoid std::\n     __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                        __middle,\n               __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n               __last,long __len1,long __len2,_Iter_comp_iter<gold::Sort_output_sections> __comp)\n\n{\n  Output_section *pOVar1;\n  bool bVar2;\n  __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  __middle_00;\n  __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  __middle_01;\n  long lVar3;\n  long __len1_00;\n  long __len2_00;\n  _Iter_comp_iter<gold::Sort_output_sections> local_40 [2];\n  \n  if ((__len1 != 0) && (__len2 != 0)) {\n    local_40[0]._M_comp.elements_ = __comp._M_comp.elements_;\n    if (__len1 + __len2 == 2) {\n      bVar2 = gold::Sort_output_sections::operator()\n                        (&local_40[0]._M_comp,*__middle._M_current,*__first._M_current);\n      if (bVar2) {\n        pOVar1 = *__first._M_current;\n        *__first._M_current = *__middle._M_current;\n        *__middle._M_current = pOVar1;\n      }\n    }\n    else {\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_00._M_current = __first._M_current + __len1_00;\n        __middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_>\n                                (__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        lVar3 = (long)__middle_01._M_current - (long)__middle._M_current;\n        __len2_00 = lVar3 >> 3;\n      }\n      else {\n        __len2_00 = __len2 / 2;\n        lVar3 = __len2_00 * 8;\n        __middle_01._M_current = __middle._M_current + __len2_00;\n        __middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>\n                                (__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        __len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3;\n      }\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>_>\n                (__middle_00._M_current,__middle._M_current,__middle_01._M_current);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                (__first,__middle_00,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0]);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__middle_01,__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0]);\n    }\n  }\n  return;\n}\n\n" comment comment (declaration "void std::\n     __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                        __middle,\n               __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n               __last,long __len1,long __len2,_Iter_comp_iter<gold::Sort_output_sections> __comp)\n\n{\n  Output_section *pOVar1;" primitive_type (ERROR "std::\n     __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "**,_std::vector<gold::Output_section*>_" * (pointer_declarator "*,_std::vector<gold::Output_section*>_" * (ERROR ",_std::vector<gold::Output_section*>" , identifier : : identifier < identifier : : identifier * >) identifier)) (ERROR ">" >) , identifier , (ERROR "___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                        __middle,\n               __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n               __last,long __len1,long __len2,_Iter_comp_iter<gold::Sort_output_sections> __comp)\n\n{\n  Output_section" identifier : : identifier : : identifier < identifier : : identifier > (function_declarator "_>\n               (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                        __middle,\n               __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n               __last,long __len1,long __len2,_Iter_comp_iter<gold::Sort_output_sections> __comp)" identifier (ERROR ">" >) (parameter_list "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                __first,__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                        __middle,\n               __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n               __last,long __len1,long __len2,_Iter_comp_iter<gold::Sort_output_sections> __comp)" ( (parameter_declaration "__normal_iterator<gold::Output_section**" type_identifier (ERROR "<gold::Output_section" < identifier : : identifier) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "_std::vector<gold::Output_section*" type_identifier (ERROR "::vector<gold::Output_section" : : identifier < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Output_section*>_>_>\n                __first" type_identifier (ERROR "::allocator<gold::Output_section*>_>_>" : : identifier < identifier : : identifier * > identifier > identifier >) identifier) , (parameter_declaration "__normal_iterator<gold::Output_section**" type_identifier (ERROR "<gold::Output_section" < identifier : : identifier) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "_std::vector<gold::Output_section*" type_identifier (ERROR "::vector<gold::Output_section" : : identifier < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Output_section*>_>_>\n                        __middle" type_identifier (ERROR "::allocator<gold::Output_section*>_>_>" : : identifier < identifier : : identifier * > identifier > identifier >) identifier) , (parameter_declaration "__normal_iterator<gold::Output_section**" type_identifier (ERROR "<gold::Output_section" < identifier : : identifier) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "_std::vector<gold::Output_section*" type_identifier (ERROR "::vector<gold::Output_section" : : identifier < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Output_section*>_>_>\n               __last" type_identifier (ERROR "::allocator<gold::Output_section*>_>_>" : : identifier < identifier : : identifier * > identifier > identifier >) identifier) , (parameter_declaration "long __len1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long __len2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "_Iter_comp_iter<gold::Sort_output_sections> __comp" type_identifier (ERROR "<gold::Sort_output_sections>" < identifier : : identifier >) identifier) ))) { identifier) (pointer_declarator "*pOVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (expression_statement "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  __middle_00;" (update_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  __middle_00" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  __middle_00" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) --) ;) (expression_statement "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  __middle_01;" (update_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  __middle_01" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  __middle_01" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) --) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long __len1_00;" (sized_type_specifier "long" long) identifier ;) (declaration "long __len2_00;" (sized_type_specifier "long" long) identifier ;) (ERROR "_Iter_comp_iter<gold::Sort_output_sections> local_40 [2]" (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : : (binary_expression "Sort_output_sections> local_40 [2]" identifier > (subscript_expression "local_40 [2]" identifier [ number_literal ]))) (expression_statement ";" ;) (if_statement "if ((__len1 != 0) && (__len2 != 0)) {\n    local_40[0]._M_comp.elements_ = __comp._M_comp.elements_;\n    if (__len1 + __len2 == 2) {\n      bVar2 = gold::Sort_output_sections::operator()\n                        (&local_40[0]._M_comp,*__middle._M_current,*__first._M_current);\n      if (bVar2) {\n        pOVar1 = *__first._M_current;\n        *__first._M_current = *__middle._M_current;\n        *__middle._M_current = pOVar1;\n      }\n    }\n    else {\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_00._M_current = __first._M_current + __len1_00;\n        __middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_>\n                                (__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        lVar3 = (long)__middle_01._M_current - (long)__middle._M_current;\n        __len2_00 = lVar3 >> 3;\n      }\n      else {\n        __len2_00 = __len2 / 2;\n        lVar3 = __len2_00 * 8;\n        __middle_01._M_current = __middle._M_current + __len2_00;\n        __middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>\n                                (__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        __len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3;\n      }\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>_>\n                (__middle_00._M_current,__middle._M_current,__middle_01._M_current);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                (__first,__middle_00,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0]);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__middle_01,__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0]);\n    }\n  }" if (parenthesized_expression "((__len1 != 0) && (__len2 != 0))" ( (binary_expression "(__len1 != 0) && (__len2 != 0)" (parenthesized_expression "(__len1 != 0)" ( (binary_expression "__len1 != 0" identifier != number_literal) )) && (parenthesized_expression "(__len2 != 0)" ( (binary_expression "__len2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    local_40[0]._M_comp.elements_ = __comp._M_comp.elements_;\n    if (__len1 + __len2 == 2) {\n      bVar2 = gold::Sort_output_sections::operator()\n                        (&local_40[0]._M_comp,*__middle._M_current,*__first._M_current);\n      if (bVar2) {\n        pOVar1 = *__first._M_current;\n        *__first._M_current = *__middle._M_current;\n        *__middle._M_current = pOVar1;\n      }\n    }\n    else {\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_00._M_current = __first._M_current + __len1_00;\n        __middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_>\n                                (__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        lVar3 = (long)__middle_01._M_current - (long)__middle._M_current;\n        __len2_00 = lVar3 >> 3;\n      }\n      else {\n        __len2_00 = __len2 / 2;\n        lVar3 = __len2_00 * 8;\n        __middle_01._M_current = __middle._M_current + __len2_00;\n        __middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>\n                                (__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        __len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3;\n      }\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>_>\n                (__middle_00._M_current,__middle._M_current,__middle_01._M_current);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                (__first,__middle_00,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0]);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__middle_01,__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0]);\n    }\n  }" { (expression_statement "local_40[0]._M_comp.elements_ = __comp._M_comp.elements_;" (assignment_expression "local_40[0]._M_comp.elements_ = __comp._M_comp.elements_" (field_expression "local_40[0]._M_comp.elements_" (field_expression "local_40[0]._M_comp" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (field_expression "__comp._M_comp.elements_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (__len1 + __len2 == 2) {\n      bVar2 = gold::Sort_output_sections::operator()\n                        (&local_40[0]._M_comp,*__middle._M_current,*__first._M_current);\n      if (bVar2) {\n        pOVar1 = *__first._M_current;\n        *__first._M_current = *__middle._M_current;\n        *__middle._M_current = pOVar1;\n      }\n    }\n    else {\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_00._M_current = __first._M_current + __len1_00;\n        __middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_>\n                                (__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        lVar3 = (long)__middle_01._M_current - (long)__middle._M_current;\n        __len2_00 = lVar3 >> 3;\n      }\n      else {\n        __len2_00 = __len2 / 2;\n        lVar3 = __len2_00 * 8;\n        __middle_01._M_current = __middle._M_current + __len2_00;\n        __middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>\n                                (__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        __len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3;\n      }\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>_>\n                (__middle_00._M_current,__middle._M_current,__middle_01._M_current);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                (__first,__middle_00,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0]);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__middle_01,__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0]);\n    }" if (parenthesized_expression "(__len1 + __len2 == 2)" ( (binary_expression "__len1 + __len2 == 2" (binary_expression "__len1 + __len2" identifier + identifier) == number_literal) )) (compound_statement "{\n      bVar2 = gold::Sort_output_sections::operator()\n                        (&local_40[0]._M_comp,*__middle._M_current,*__first._M_current);\n      if (bVar2) {\n        pOVar1 = *__first._M_current;\n        *__first._M_current = *__middle._M_current;\n        *__middle._M_current = pOVar1;\n      }\n    }" { (ERROR "bVar2 = gold::" (assignment_expression "bVar2 = gold" identifier = identifier) : :) (labeled_statement "Sort_output_sections::operator()\n                        (&local_40[0]._M_comp,*__middle._M_current,*__first._M_current);" statement_identifier : (ERROR ":" :) (expression_statement "operator()\n                        (&local_40[0]._M_comp,*__middle._M_current,*__first._M_current);" (call_expression "operator()\n                        (&local_40[0]._M_comp,*__middle._M_current,*__first._M_current)" (call_expression "operator()" identifier (argument_list "()" ( ))) (argument_list "(&local_40[0]._M_comp,*__middle._M_current,*__first._M_current)" ( (pointer_expression "&local_40[0]._M_comp" & (field_expression "local_40[0]._M_comp" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier)) , (pointer_expression "*__middle._M_current" * (field_expression "__middle._M_current" identifier . field_identifier)) , (pointer_expression "*__first._M_current" * (field_expression "__first._M_current" identifier . field_identifier)) ))) ;)) (if_statement "if (bVar2) {\n        pOVar1 = *__first._M_current;\n        *__first._M_current = *__middle._M_current;\n        *__middle._M_current = pOVar1;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        pOVar1 = *__first._M_current;\n        *__first._M_current = *__middle._M_current;\n        *__middle._M_current = pOVar1;\n      }" { (expression_statement "pOVar1 = *__first._M_current;" (assignment_expression "pOVar1 = *__first._M_current" identifier = (pointer_expression "*__first._M_current" * (field_expression "__first._M_current" identifier . field_identifier))) ;) (expression_statement "*__first._M_current = *__middle._M_current;" (assignment_expression "*__first._M_current = *__middle._M_current" (pointer_expression "*__first._M_current" * (field_expression "__first._M_current" identifier . field_identifier)) = (pointer_expression "*__middle._M_current" * (field_expression "__middle._M_current" identifier . field_identifier))) ;) (expression_statement "*__middle._M_current = pOVar1;" (assignment_expression "*__middle._M_current = pOVar1" (pointer_expression "*__middle._M_current" * (field_expression "__middle._M_current" identifier . field_identifier)) = identifier) ;) })) }) (else_clause "else {\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_00._M_current = __first._M_current + __len1_00;\n        __middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_>\n                                (__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        lVar3 = (long)__middle_01._M_current - (long)__middle._M_current;\n        __len2_00 = lVar3 >> 3;\n      }\n      else {\n        __len2_00 = __len2 / 2;\n        lVar3 = __len2_00 * 8;\n        __middle_01._M_current = __middle._M_current + __len2_00;\n        __middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>\n                                (__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        __len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3;\n      }\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>_>\n                (__middle_00._M_current,__middle._M_current,__middle_01._M_current);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                (__first,__middle_00,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0]);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__middle_01,__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0]);\n    }" else (compound_statement "{\n      if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_00._M_current = __first._M_current + __len1_00;\n        __middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_>\n                                (__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        lVar3 = (long)__middle_01._M_current - (long)__middle._M_current;\n        __len2_00 = lVar3 >> 3;\n      }\n      else {\n        __len2_00 = __len2 / 2;\n        lVar3 = __len2_00 * 8;\n        __middle_01._M_current = __middle._M_current + __len2_00;\n        __middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>\n                                (__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        __len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3;\n      }\n      _V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>_>\n                (__middle_00._M_current,__middle._M_current,__middle_01._M_current);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                (__first,__middle_00,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0]);\n      __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__middle_01,__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0]);\n    }" { (if_statement "if (__len2 < __len1) {\n        __len1_00 = __len1 / 2;\n        __middle_00._M_current = __first._M_current + __len1_00;\n        __middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_>\n                                (__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        lVar3 = (long)__middle_01._M_current - (long)__middle._M_current;\n        __len2_00 = lVar3 >> 3;\n      }\n      else {\n        __len2_00 = __len2 / 2;\n        lVar3 = __len2_00 * 8;\n        __middle_01._M_current = __middle._M_current + __len2_00;\n        __middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>\n                                (__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        __len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3;\n      }" if (parenthesized_expression "(__len2 < __len1)" ( (binary_expression "__len2 < __len1" identifier < identifier) )) (compound_statement "{\n        __len1_00 = __len1 / 2;\n        __middle_00._M_current = __first._M_current + __len1_00;\n        __middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_>\n                                (__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        lVar3 = (long)__middle_01._M_current - (long)__middle._M_current;\n        __len2_00 = lVar3 >> 3;\n      }" { (expression_statement "__len1_00 = __len1 / 2;" (assignment_expression "__len1_00 = __len1 / 2" identifier = (binary_expression "__len1 / 2" identifier / number_literal)) ;) (expression_statement "__middle_00._M_current = __first._M_current + __len1_00;" (assignment_expression "__middle_00._M_current = __first._M_current + __len1_00" (field_expression "__middle_00._M_current" identifier . field_identifier) = (binary_expression "__first._M_current + __len1_00" (field_expression "__first._M_current" identifier . field_identifier) + identifier)) ;) (expression_statement "__middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_>\n                                (__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);" (binary_expression "__middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_>\n                                (__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" (binary_expression "__middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold::Sort_output_sections>_" (binary_expression "__middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Iter_comp_val<gold" (binary_expression "__middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx" (binary_expression "__middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold" (binary_expression "__middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__middle_01 = __lower_bound<__gnu_cxx::__normal_iterator<gold" (assignment_expression "__middle_01 = __lower_bound<__gnu_cxx" identifier = (binary_expression "__lower_bound<__gnu_cxx" identifier < identifier)) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_val" : : identifier : : identifier) < identifier) (ERROR "::Sort_output_sections" : : identifier) > identifier) > (parenthesized_expression "(__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" ( (comma_expression "__middle,__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" identifier , (comma_expression "__last,__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" identifier , (comma_expression "__middle_00._M_current,\n                                 (_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" (field_expression "__middle_00._M_current" identifier . field_identifier) , (parenthesized_expression "(_Iter_comp_val<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" ( (ERROR "_Iter_comp_val<gold::" (binary_expression "_Iter_comp_val<gold" identifier < identifier) : :) (binary_expression "Sort_output_sections>)\n                                 __comp._M_comp.elements_" identifier > (ERROR ")" )) (field_expression "__comp._M_comp.elements_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier)) ))))) ))) ;) (expression_statement "lVar3 = (long)__middle_01._M_current - (long)__middle._M_current;" (assignment_expression "lVar3 = (long)__middle_01._M_current - (long)__middle._M_current" identifier = (binary_expression "(long)__middle_01._M_current - (long)__middle._M_current" (cast_expression "(long)__middle_01._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__middle_01._M_current" identifier . field_identifier)) - (cast_expression "(long)__middle._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__middle._M_current" identifier . field_identifier)))) ;) (expression_statement "__len2_00 = lVar3 >> 3;" (assignment_expression "__len2_00 = lVar3 >> 3" identifier = (binary_expression "lVar3 >> 3" identifier >> number_literal)) ;) }) (else_clause "else {\n        __len2_00 = __len2 / 2;\n        lVar3 = __len2_00 * 8;\n        __middle_01._M_current = __middle._M_current + __len2_00;\n        __middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>\n                                (__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        __len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3;\n      }" else (compound_statement "{\n        __len2_00 = __len2 / 2;\n        lVar3 = __len2_00 * 8;\n        __middle_01._M_current = __middle._M_current + __len2_00;\n        __middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>\n                                (__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);\n        __len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3;\n      }" { (expression_statement "__len2_00 = __len2 / 2;" (assignment_expression "__len2_00 = __len2 / 2" identifier = (binary_expression "__len2 / 2" identifier / number_literal)) ;) (expression_statement "lVar3 = __len2_00 * 8;" (assignment_expression "lVar3 = __len2_00 * 8" identifier = (binary_expression "__len2_00 * 8" identifier * number_literal)) ;) (expression_statement "__middle_01._M_current = __middle._M_current + __len2_00;" (assignment_expression "__middle_01._M_current = __middle._M_current + __len2_00" (field_expression "__middle_01._M_current" identifier . field_identifier) = (binary_expression "__middle._M_current + __len2_00" (field_expression "__middle._M_current" identifier . field_identifier) + identifier)) ;) (expression_statement "__middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>\n                                (__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_);" (binary_expression "__middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_>\n                                (__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" (binary_expression "__middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold::Sort_output_sections>_" (binary_expression "__middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx::__ops::_Val_comp_iter<gold" (binary_expression "__middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section*,___gnu_cxx" (binary_expression "__middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold" (binary_expression "__middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__middle_00 = __upper_bound<__gnu_cxx::__normal_iterator<gold" (assignment_expression "__middle_00 = __upper_bound<__gnu_cxx" identifier = (binary_expression "__upper_bound<__gnu_cxx" identifier < identifier)) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::__ops::_Val_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Sort_output_sections" : : identifier) > identifier) > (parenthesized_expression "(__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" ( (comma_expression "__first,__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" identifier , (comma_expression "__middle,__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" identifier , (comma_expression "__middle_01._M_current,\n                                 (_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" (field_expression "__middle_01._M_current" identifier . field_identifier) , (parenthesized_expression "(_Val_comp_iter<gold::Sort_output_sections>)\n                                 __comp._M_comp.elements_)" ( (ERROR "_Val_comp_iter<gold::" (binary_expression "_Val_comp_iter<gold" identifier < identifier) : :) (binary_expression "Sort_output_sections>)\n                                 __comp._M_comp.elements_" identifier > (ERROR ")" )) (field_expression "__comp._M_comp.elements_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier)) ))))) ))) ;) (expression_statement "__len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3;" (assignment_expression "__len1_00 = (long)__middle_00._M_current - (long)__first._M_current >> 3" identifier = (binary_expression "(long)__middle_00._M_current - (long)__first._M_current >> 3" (binary_expression "(long)__middle_00._M_current - (long)__first._M_current" (cast_expression "(long)__middle_00._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__middle_00._M_current" identifier . field_identifier)) - (cast_expression "(long)__first._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__first._M_current" identifier . field_identifier))) >> number_literal)) ;) }))) (expression_statement "_V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>_>\n                (__middle_00._M_current,__middle._M_current,__middle_01._M_current);" (binary_expression "_V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>_>\n                (__middle_00._M_current,__middle._M_current,__middle_01._M_current)" (binary_expression "_V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>_" (binary_expression "_V2::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" identifier (ERROR "::\n      __rotate<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*" : : (binary_expression "__rotate<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Output_section**,_std" identifier * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) > identifier) > identifier) > (parenthesized_expression "(__middle_00._M_current,__middle._M_current,__middle_01._M_current)" ( (comma_expression "__middle_00._M_current,__middle._M_current,__middle_01._M_current" (field_expression "__middle_00._M_current" identifier . field_identifier) , (comma_expression "__middle._M_current,__middle_01._M_current" (field_expression "__middle._M_current" identifier . field_identifier) , (field_expression "__middle_01._M_current" identifier . field_identifier))) ))) ;) (ERROR "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::" (comma_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold" (binary_expression "__merge_without_buffer<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) , identifier) : : identifier : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (expression_statement "Sort_output_sections>_>\n                (__first,__middle_00,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0]);" (binary_expression "Sort_output_sections>_>\n                (__first,__middle_00,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0])" (binary_expression "Sort_output_sections>_" identifier > identifier) > (parenthesized_expression "(__first,__middle_00,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0])" ( (comma_expression "__first,__middle_00,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0]" identifier , (comma_expression "__middle_00,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0]" identifier , (comma_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__len1_00,__len2_00,local_40[0]" (call_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3)" (parenthesized_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )" ( (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) )) (argument_list "(__middle_00._M_current + lVar3)" ( (binary_expression "__middle_00._M_current + lVar3" (field_expression "__middle_00._M_current" identifier . field_identifier) + identifier) ))) , (comma_expression "__len1_00,__len2_00,local_40[0]" identifier , (comma_expression "__len2_00,local_40[0]" identifier , (subscript_expression "local_40[0]" identifier [ number_literal ])))))) ))) ;) (ERROR "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::" (comma_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int,___gnu_cxx" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_long_int" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__merge_without_buffer<__gnu_cxx::__normal_iterator<gold" (binary_expression "__merge_without_buffer<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) , identifier) : : identifier : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (expression_statement "Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__middle_01,__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0]);" (binary_expression "Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__middle_01,__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0])" (binary_expression "Sort_output_sections>_" identifier > identifier) > (parenthesized_expression "((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__middle_01,__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0])" ( (comma_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3),__middle_01,__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0]" (call_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )(__middle_00._M_current + lVar3)" (parenthesized_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )" ( (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) )) (argument_list "(__middle_00._M_current + lVar3)" ( (binary_expression "__middle_00._M_current + lVar3" (field_expression "__middle_00._M_current" identifier . field_identifier) + identifier) ))) , (comma_expression "__middle_01,__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0]" identifier , (comma_expression "__last,__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0]" identifier , (comma_expression "__len1 - __len1_00,\n                 __len2 - __len2_00,local_40[0]" (binary_expression "__len1 - __len1_00" identifier - identifier) , (comma_expression "__len2 - __len2_00,local_40[0]" (binary_expression "__len2 - __len2_00" identifier - identifier) , (subscript_expression "local_40[0]" identifier [ number_literal ])))))) ))) ;) }))) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00262aa0(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,\n                 long param_5,undefined8 param_6)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  undefined8 local_40 [2];\n  \n  if ((param_4 != 0) && (param_5 != 0)) {\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00262aa0(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,\n                 long param_5,undefined8 param_6)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  undefined8 local_40 [2];\n  \n  if ((param_4 != 0) && (param_5 != 0)) {\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00262aa0(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,\n                 long param_5,undefined8 param_6)" identifier (parameter_list "(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,\n                 long param_5,undefined8 param_6)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  char cVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  undefined8 local_40 [2];\n  \n  if ((param_4 != 0) && (param_5 != 0)) {\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_40 [2];" type_identifier (array_declarator "local_40 [2]" identifier [ number_literal ]) ;) (if_statement "if ((param_4 != 0) && (param_5 != 0)) {\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }" if (parenthesized_expression "((param_4 != 0) && (param_5 != 0))" ( (binary_expression "(param_4 != 0) && (param_5 != 0)" (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }" { (expression_statement "local_40[0] = param_6;" (assignment_expression "local_40[0] = param_6" (subscript_expression "local_40[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }" if (parenthesized_expression "(param_4 + param_5 == 2)" ( (binary_expression "param_4 + param_5 == 2" (binary_expression "param_4 + param_5" identifier + identifier) == number_literal) )) (compound_statement "{\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }" { (expression_statement "cVar2 = FUN_00258430(local_40,*param_2,*param_1);" (assignment_expression "cVar2 = FUN_00258430(local_40,*param_2,*param_1)" identifier = (call_expression "FUN_00258430(local_40,*param_2,*param_1)" identifier (argument_list "(local_40,*param_2,*param_1)" ( identifier , (pointer_expression "*param_2" * identifier) , (pointer_expression "*param_1" * identifier) )))) ;) (if_statement "if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }" { (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_1 = *param_2;" (assignment_expression "*param_1 = *param_2" (pointer_expression "*param_1" * identifier) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*param_2 = uVar1;" (assignment_expression "*param_2 = uVar1" (pointer_expression "*param_2" * identifier) = identifier) ;) })) }) (else_clause "else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }" else (compound_statement "{\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }" { (if_statement "if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }" if (parenthesized_expression "(param_5 < param_4)" ( (binary_expression "param_5 < param_4" identifier < identifier) )) (compound_statement "{\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }" { (expression_statement "lVar6 = param_4 / 2;" (assignment_expression "lVar6 = param_4 / 2" identifier = (binary_expression "param_4 / 2" identifier / number_literal)) ;) (expression_statement "puVar3 = param_1 + lVar6;" (assignment_expression "puVar3 = param_1 + lVar6" identifier = (binary_expression "param_1 + lVar6" identifier + identifier)) ;) (expression_statement "puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);" (assignment_expression "puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6)" identifier = (cast_expression "(undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0025f6e0(param_2,param_3,puVar3,param_6)" identifier (argument_list "(param_2,param_3,puVar3,param_6)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "lVar5 = (long)puVar4 - (long)param_2;" (assignment_expression "lVar5 = (long)puVar4 - (long)param_2" identifier = (binary_expression "(long)puVar4 - (long)param_2" (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "lVar7 = lVar5 >> 3;" (assignment_expression "lVar7 = lVar5 >> 3" identifier = (binary_expression "lVar5 >> 3" identifier >> number_literal)) ;) }) (else_clause "else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }" else (compound_statement "{\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }" { (expression_statement "lVar7 = param_5 / 2;" (assignment_expression "lVar7 = param_5 / 2" identifier = (binary_expression "param_5 / 2" identifier / number_literal)) ;) (expression_statement "lVar5 = lVar7 * 8;" (assignment_expression "lVar5 = lVar7 * 8" identifier = (binary_expression "lVar7 * 8" identifier * number_literal)) ;) (expression_statement "puVar4 = param_2 + lVar7;" (assignment_expression "puVar4 = param_2 + lVar7" identifier = (binary_expression "param_2 + lVar7" identifier + identifier)) ;) (expression_statement "puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);" (assignment_expression "puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4)" identifier = (cast_expression "(undefined8 *)FUN_0025f760(param_1,param_2,puVar4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0025f760(param_1,param_2,puVar4)" identifier (argument_list "(param_1,param_2,puVar4)" ( identifier , identifier , identifier ))))) ;) (expression_statement "lVar6 = (long)puVar3 - (long)param_1 >> 3;" (assignment_expression "lVar6 = (long)puVar3 - (long)param_1 >> 3" identifier = (binary_expression "(long)puVar3 - (long)param_1 >> 3" (binary_expression "(long)puVar3 - (long)param_1" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) }))) (expression_statement "FUN_002628e0(puVar3,param_2,puVar4);" (call_expression "FUN_002628e0(puVar3,param_2,puVar4)" identifier (argument_list "(puVar3,param_2,puVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);" (call_expression "FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0])" identifier (argument_list "(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0])" ( identifier , identifier , (binary_expression "(long)puVar3 + lVar5" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) , identifier , identifier , (subscript_expression "local_40[0]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);" (call_expression "FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0])" identifier (argument_list "((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0])" ( (binary_expression "(long)puVar3 + lVar5" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) , identifier , identifier , (binary_expression "param_4 - lVar6" identifier - identifier) , (binary_expression "param_5 - lVar7" identifier - identifier) , (subscript_expression "local_40[0]" identifier [ number_literal ]) ))) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) >> LIT)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) , IDENT , IDENT , (binary_expression IDENT - IDENT) , (binary_expression IDENT - IDENT) , (subscript_expression IDENT [ LIT ]) ))) ;) }))) })) (return_statement return ;) })))
(function_definition "void FUN_00262aa0(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,\n                 long param_5,undefined8 param_6)\n\n{\n  undefined8 uVar1;\n  char cVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  undefined8 local_40 [2];\n  \n  if ((param_4 != 0) && (param_5 != 0)) {\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00262aa0(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,\n                 long param_5,undefined8 param_6)" (identifier "FUN_00262aa0") (parameter_list "(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,\n                 long param_5,undefined8 param_6)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 *param_2" (type_identifier "undefined8") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) (, ",") (parameter_declaration "undefined8 param_6" (type_identifier "undefined8") (identifier "param_6")) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  char cVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  undefined8 local_40 [2];\n  \n  if ((param_4 != 0) && (param_5 != 0)) {\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }\n  return;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined8 *puVar4;" (type_identifier "undefined8") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "undefined8 local_40 [2];" (type_identifier "undefined8") (array_declarator "local_40 [2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")) (; ";")) (if_statement "if ((param_4 != 0) && (param_5 != 0)) {\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }" (if "if") (parenthesized_expression "((param_4 != 0) && (param_5 != 0))" (( "(") (binary_expression "(param_4 != 0) && (param_5 != 0)" (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_5 != 0)" (( "(") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    local_40[0] = param_6;\n    if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }\n  }" ({ "{") (expression_statement "local_40[0] = param_6;" (assignment_expression "local_40[0] = param_6" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_6")) (; ";")) (if_statement "if (param_4 + param_5 == 2) {\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }\n    else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }" (if "if") (parenthesized_expression "(param_4 + param_5 == 2)" (( "(") (binary_expression "param_4 + param_5 == 2" (binary_expression "param_4 + param_5" (identifier "param_4") (+ "+") (identifier "param_5")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      cVar2 = FUN_00258430(local_40,*param_2,*param_1);\n      if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }\n    }" ({ "{") (expression_statement "cVar2 = FUN_00258430(local_40,*param_2,*param_1);" (assignment_expression "cVar2 = FUN_00258430(local_40,*param_2,*param_1)" (identifier "cVar2") (= "=") (call_expression "FUN_00258430(local_40,*param_2,*param_1)" (identifier "FUN_00258430") (argument_list "(local_40,*param_2,*param_1)" (( "(") (identifier "local_40") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (if_statement "if (cVar2 != '\0') {\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar1 = *param_1;\n        *param_1 = *param_2;\n        *param_2 = uVar1;\n      }" ({ "{") (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" (identifier "uVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*param_1 = *param_2;" (assignment_expression "*param_1 = *param_2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "*param_2 = uVar1;" (assignment_expression "*param_2 = uVar1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }" (else "else") (compound_statement "{\n      if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }\n      FUN_002628e0(puVar3,param_2,puVar4);\n      FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);\n      FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);\n    }" ({ "{") (if_statement "if (param_5 < param_4) {\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }\n      else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }" (if "if") (parenthesized_expression "(param_5 < param_4)" (( "(") (binary_expression "param_5 < param_4" (identifier "param_5") (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n        lVar6 = param_4 / 2;\n        puVar3 = param_1 + lVar6;\n        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);\n        lVar5 = (long)puVar4 - (long)param_2;\n        lVar7 = lVar5 >> 3;\n      }" ({ "{") (expression_statement "lVar6 = param_4 / 2;" (assignment_expression "lVar6 = param_4 / 2" (identifier "lVar6") (= "=") (binary_expression "param_4 / 2" (identifier "param_4") (/ "/") (number_literal "2"))) (; ";")) (expression_statement "puVar3 = param_1 + lVar6;" (assignment_expression "puVar3 = param_1 + lVar6" (identifier "puVar3") (= "=") (binary_expression "param_1 + lVar6" (identifier "param_1") (+ "+") (identifier "lVar6"))) (; ";")) (expression_statement "puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);" (assignment_expression "puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6)" (identifier "puVar4") (= "=") (cast_expression "(undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0025f6e0(param_2,param_3,puVar3,param_6)" (identifier "FUN_0025f6e0") (argument_list "(param_2,param_3,puVar3,param_6)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "puVar3") (, ",") (identifier "param_6") () ")"))))) (; ";")) (expression_statement "lVar5 = (long)puVar4 - (long)param_2;" (assignment_expression "lVar5 = (long)puVar4 - (long)param_2" (identifier "lVar5") (= "=") (binary_expression "(long)puVar4 - (long)param_2" (cast_expression "(long)puVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar4")) (- "-") (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")))) (; ";")) (expression_statement "lVar7 = lVar5 >> 3;" (assignment_expression "lVar7 = lVar5 >> 3" (identifier "lVar7") (= "=") (binary_expression "lVar5 >> 3" (identifier "lVar5") (>> ">>") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }" (else "else") (compound_statement "{\n        lVar7 = param_5 / 2;\n        lVar5 = lVar7 * 8;\n        puVar4 = param_2 + lVar7;\n        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);\n        lVar6 = (long)puVar3 - (long)param_1 >> 3;\n      }" ({ "{") (expression_statement "lVar7 = param_5 / 2;" (assignment_expression "lVar7 = param_5 / 2" (identifier "lVar7") (= "=") (binary_expression "param_5 / 2" (identifier "param_5") (/ "/") (number_literal "2"))) (; ";")) (expression_statement "lVar5 = lVar7 * 8;" (assignment_expression "lVar5 = lVar7 * 8" (identifier "lVar5") (= "=") (binary_expression "lVar7 * 8" (identifier "lVar7") (* "*") (number_literal "8"))) (; ";")) (expression_statement "puVar4 = param_2 + lVar7;" (assignment_expression "puVar4 = param_2 + lVar7" (identifier "puVar4") (= "=") (binary_expression "param_2 + lVar7" (identifier "param_2") (+ "+") (identifier "lVar7"))) (; ";")) (expression_statement "puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);" (assignment_expression "puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4)" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)FUN_0025f760(param_1,param_2,puVar4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0025f760(param_1,param_2,puVar4)" (identifier "FUN_0025f760") (argument_list "(param_1,param_2,puVar4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "puVar4") () ")"))))) (; ";")) (expression_statement "lVar6 = (long)puVar3 - (long)param_1 >> 3;" (assignment_expression "lVar6 = (long)puVar3 - (long)param_1 >> 3" (identifier "lVar6") (= "=") (binary_expression "(long)puVar3 - (long)param_1 >> 3" (binary_expression "(long)puVar3 - (long)param_1" (cast_expression "(long)puVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar3")) (- "-") (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1"))) (>> ">>") (number_literal "3"))) (; ";")) (} "}")))) (expression_statement "FUN_002628e0(puVar3,param_2,puVar4);" (call_expression "FUN_002628e0(puVar3,param_2,puVar4)" (identifier "FUN_002628e0") (argument_list "(puVar3,param_2,puVar4)" (( "(") (identifier "puVar3") (, ",") (identifier "param_2") (, ",") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);" (call_expression "FUN_00262aa0(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0])" (identifier "FUN_00262aa0") (argument_list "(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0])" (( "(") (identifier "param_1") (, ",") (identifier "puVar3") (, ",") (binary_expression "(long)puVar3 + lVar5" (cast_expression "(long)puVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar3")) (+ "+") (identifier "lVar5")) (, ",") (identifier "lVar6") (, ",") (identifier "lVar7") (, ",") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);" (call_expression "FUN_00262aa0((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0])" (identifier "FUN_00262aa0") (argument_list "((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0])" (( "(") (binary_expression "(long)puVar3 + lVar5" (cast_expression "(long)puVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar3")) (+ "+") (identifier "lVar5")) (, ",") (identifier "puVar4") (, ",") (identifier "param_3") (, ",") (binary_expression "param_4 - lVar6" (identifier "param_4") (- "-") (identifier "lVar6")) (, ",") (binary_expression "param_5 - lVar7" (identifier "param_5") (- "-") (identifier "lVar7")) (, ",") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (} "}")))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name: __merge_without_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,
   std::vector<gold::Output_section*> >, long int,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections> > */

void std::
     __merge_without_buffer<var_12::var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*>var_4>,_long_int,var_14::__ops::_Iter_comp_iter<var_2::var_15>var_4>
               (var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*,var_3::allocator<var_2::Output_section*>var_4>var_4>
                __first,var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*,var_3::allocator<var_2::Output_section*>var_4>var_4>
                        __middle,
               var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*,var_3::allocator<var_2::Output_section*>var_4>var_4>
               __last,long var_7,long var_8,_Iter_comp_iter<var_2::var_15> __comp)

{
  Output_section *pOVar1;
  bool bVar2;
  var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*,var_3::allocator<var_2::Output_section*>var_4>var_4>
  var_5;
  var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*,var_3::allocator<var_2::Output_section*>var_4>var_4>
  var_6;
  long var_16;
  long var_10;
  long var_17;
  _Iter_comp_iter<var_2::var_15> local_40 [2];
  
  if ((var_7 != 0) && (var_8 != 0)) {
    local_40[0]._M_comp.elements_ = __comp._M_comp.elements_;
    if (var_7 + var_8 == 2) {
      bVar2 = var_2::Sort_output_sections::var_9()
                        (&local_40[0]._M_comp,*__middle._M_current,*__first._M_current);
      if (bVar2) {
        pOVar1 = *__first._M_current;
        *__first._M_current = *__middle._M_current;
        *__middle._M_current = pOVar1;
      }
    }
    else {
      if (var_8 < var_7) {
        var_10 = var_7 / 2;
        var_5._M_current = __first._M_current + var_10;
        var_6 = var_11<var_12::var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*>var_4>,var_13::Output_section*,var_14::__ops::_Iter_comp_val<var_2::var_15>var_4>
                                (__middle,__last,var_5._M_current,
                                 (_Iter_comp_val<var_2::var_15>)
                                 __comp._M_comp.elements_);
        var_16 = (long)var_6._M_current - (long)__middle._M_current;
        var_17 = var_16 >> 3;
      }
      else {
        var_17 = var_8 / 2;
        var_16 = var_17 * 8;
        var_6._M_current = __middle._M_current + var_17;
        var_5 = var_18<var_12::var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*>var_4>,var_13::Output_section*,var_14::__ops::_Val_comp_iter<var_2::var_15>var_4>
                                (__first,__middle,var_6._M_current,
                                 (_Val_comp_iter<var_2::var_15>)
                                 __comp._M_comp.elements_);
        var_10 = (long)var_5._M_current - (long)__first._M_current >> 3;
      }
      var_19::
      __rotate<var_12::var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*>var_4>var_4>
                (var_5._M_current,__middle._M_current,var_6._M_current);
      __merge_without_buffer<var_12::var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*>var_4>,_long_int,var_14::__ops::_Iter_comp_iter<var_2::var_15>var_4>
                (__first,var_5,
                 (var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*,var_3::allocator<var_2::Output_section*>var_4>var_4>var_20
                  )(var_5._M_current + var_16),var_10,var_17,local_40[0]);
      __merge_without_buffer<var_12::var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*>var_4>,_long_int,var_14::__ops::_Iter_comp_iter<var_2::var_15>var_4>
                ((var_1<var_2::Output_section**,var_3::vector<var_2::Output_section*,var_3::allocator<var_2::Output_section*>var_4>var_4>var_20
                  )(var_5._M_current + var_16),var_6,__last,var_7 - var_10,
                 var_8 - var_17,local_40[0]);
    }
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (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 (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (identifier)) (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (identifier)) (identifier) (identifier) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (subscript_expression argument: (identifier) index: (number_literal)))))))))) (return_statement))))

void MASKED(undefined8 *param_1,undefined8 *param_2,undefined8 param_3,long param_4,
                 long param_5,undefined8 param_6)

{
  undefined8 uVar1;
  char cVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  undefined8 local_40 [2];
  
  if ((param_4 != 0) && (param_5 != 0)) {
    local_40[0] = param_6;
    if (param_4 + param_5 == 2) {
      cVar2 = FUN_00258430(local_40,*param_2,*param_1);
      if (cVar2 != '\0') {
        uVar1 = *param_1;
        *param_1 = *param_2;
        *param_2 = uVar1;
      }
    }
    else {
      if (param_5 < param_4) {
        lVar6 = param_4 / 2;
        puVar3 = param_1 + lVar6;
        puVar4 = (undefined8 *)FUN_0025f6e0(param_2,param_3,puVar3,param_6);
        lVar5 = (long)puVar4 - (long)param_2;
        lVar7 = lVar5 >> 3;
      }
      else {
        lVar7 = param_5 / 2;
        lVar5 = lVar7 * 8;
        puVar4 = param_2 + lVar7;
        puVar3 = (undefined8 *)FUN_0025f760(param_1,param_2,puVar4);
        lVar6 = (long)puVar3 - (long)param_1 >> 3;
      }
      FUN_002628e0(puVar3,param_2,puVar4);
      MASKED(param_1,puVar3,(long)puVar3 + lVar5,lVar6,lVar7,local_40[0]);
      MASKED((long)puVar3 + lVar5,puVar4,param_3,param_4 - lVar6,param_5 - lVar7,local_40[0]);
    }
  }
  return;
}

