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

void std::
     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>
               (Output_section **__first,long __last,Output_section **__buffer)

{
  long lVar1;
  Output_section **ppOVar2;
  __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
  _Var3;
  long lVar4;
  long lVar5;
  long lVar6;
  Output_section **ppOVar7;
  Output_section **ppOVar8;
  long lVar9;
  long lVar10;
  
  lVar5 = __last - (long)__first;
  lVar1 = (long)__buffer + lVar5;
  lVar9 = lVar5 >> 3;
  ppOVar8 = __first;
  if (lVar5 < 0x31) {
    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>
              ();
    return;
  }
  do {
    ppOVar7 = ppOVar8 + 7;
    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>
              (ppOVar8,ppOVar7);
    ppOVar8 = ppOVar7;
  } while (0x30 < __last - (long)ppOVar7);
  __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>
            (ppOVar7,__last);
  if (0x38 < lVar5) {
    lVar5 = 7;
    do {
      lVar6 = lVar5 * 2;
      lVar4 = lVar9;
      ppOVar7 = __first;
      ppOVar2 = __buffer;
      ppOVar8 = __first;
      if (SBORROW8(lVar9,lVar6) == lVar9 + lVar5 * -2 < 0) {
        do {
          ppOVar8 = ppOVar7 + lVar5 * 2;
          ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>
                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2);
          lVar4 = __last - (long)ppOVar8 >> 3;
          ppOVar7 = ppOVar8;
        } while (lVar6 <= lVar4);
      }
      if (lVar5 <= lVar4) {
        lVar4 = lVar5;
      }
      lVar10 = lVar5 * 4;
      __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>
                (ppOVar8,ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2);
      ppOVar8 = __buffer;
      _Var3._M_current = __first;
      if (lVar9 < lVar10) {
        if (lVar9 == lVar6 || SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0) {
          lVar6 = lVar9;
        }
        __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>
                  (__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first);
        return;
      }
      do {
        ppOVar7 = ppOVar8 + lVar5 * 4;
        _Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>
                          (ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,
                           _Var3._M_current);
        lVar4 = lVar1 - (long)ppOVar7 >> 3;
        ppOVar8 = ppOVar7;
      } while (lVar10 <= lVar4);
      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar5 * -2 < 0) {
        lVar6 = lVar4;
      }
      __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>
                (ppOVar7,ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current);
      lVar5 = lVar10;
    } while (lVar10 < lVar9);
  }
  return;
}



void FUN_00178070(long param_1,long param_2,long param_3)

{
  long lVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  
  lVar5 = param_2 - param_1;
  lVar1 = param_3 + lVar5;
  lVar8 = lVar5 >> 3;
  lVar7 = param_1;
  if (lVar5 < 0x31) {
    FUN_00177f60();
    return;
  }
  do {
    lVar6 = lVar7 + 0x38;
    FUN_00177f60(lVar7,lVar6);
    lVar7 = lVar6;
  } while (0x30 < param_2 - lVar6);
  FUN_00177f60(lVar6,param_2);
  if (0x38 < lVar5) {
    lVar7 = 7;
    do {
      lVar6 = lVar7 * 2;
      lVar3 = lVar8;
      lVar2 = param_3;
      lVar5 = param_1;
      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {
        lVar9 = param_1;
        do {
          lVar5 = lVar9 + lVar7 * 0x10;
          lVar3 = lVar5 + lVar7 * -8;
          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);
          lVar3 = param_2 - lVar5 >> 3;
          lVar9 = lVar5;
        } while (lVar6 <= lVar3);
      }
      if (lVar7 <= lVar3) {
        lVar3 = lVar7;
      }
      lVar9 = lVar7 * 4;
      lVar3 = lVar5 + lVar3 * 8;
      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);
      if (lVar8 < lVar9) {
        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {
          lVar6 = lVar8;
        }
        lVar7 = param_3 + lVar6 * 8;
        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);
        return;
      }
      lVar5 = param_3;
      lVar3 = param_1;
      do {
        lVar2 = lVar5 + lVar7 * 0x20;
        lVar4 = lVar2 + lVar7 * -0x10;
        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);
        lVar4 = lVar1 - lVar2 >> 3;
        lVar5 = lVar2;
      } while (lVar9 <= lVar4);
      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {
        lVar6 = lVar4;
      }
      lVar7 = lVar2 + lVar6 * 8;
      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);
      lVar7 = lVar9;
    } while (lVar9 < lVar8);
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
MOV RBX,RSI
SUB RBX,RDI
MOV R12,RBX
LEA R15,[RDX + RBX*0x1]
SUB RSP,0x28
SAR R12,0x3
CMP RBX,0x30
JLE 0x00178258
MOV qword ptr [RSP + 0x10],RDX
MOV RBP,RSI
MOV qword ptr [RSP + 0x8],RDI
NOP word ptr CS:[RAX + RAX*0x1]
LEA R13,[RDI + 0x38]
MOV RSI,R13
CALL 0x00177f60
MOV RAX,RBP
MOV RDI,R13
SUB RAX,R13
CMP RAX,0x30
JG 0x001780b0
MOV RSI,RBP
CALL 0x00177f60
CMP RBX,0x38
JLE 0x001781f4
MOV R14D,0x7
NOP dword ptr [RAX + RAX*0x1]
LEA RBX,[R14 + R14*0x1]
CMP R12,RBX
JL 0x00178240
MOV R11,R14
MOV R8,qword ptr [RSP + 0x10]
MOV RDI,qword ptr [RSP + 0x8]
LEA RAX,[R14*0x8]
SHL R11,0x4
SUB RAX,R11
MOV qword ptr [RSP + 0x18],RAX
NOP word ptr CS:[RAX + RAX*0x1]
MOV RAX,qword ptr [RSP + 0x18]
LEA R13,[RDI + R11*0x1]
MOV qword ptr [RSP],R11
MOV RCX,R13
LEA RSI,[R13 + RAX*0x1]
MOV RDX,RSI
CALL 0x00177dc0
MOV RDX,RBP
MOV RDI,R13
MOV R11,qword ptr [RSP]
SUB RDX,R13
MOV R8,RAX
SAR RDX,0x3
CMP RBX,RDX
JLE 0x00178120
CMP R14,RDX
MOV RCX,RBP
MOV RDI,R13
CMOVLE RDX,R14
SHL R14,0x2
LEA RSI,[R13 + RDX*0x8]
MOV RDX,RSI
CALL 0x00177dc0
MOV R8,qword ptr [RSP + 0x8]
CMP R12,R14
JL 0x00178208
LEA R13,[R14*0x8]
LEA RAX,[RBX*0x8]
MOV RDI,qword ptr [RSP + 0x10]
SUB RAX,R13
MOV qword ptr [RSP + 0x18],RAX
NOP
MOV RAX,qword ptr [RSP + 0x18]
LEA R10,[RDI + R13*0x1]
MOV RCX,R10
MOV qword ptr [RSP],R10
LEA RSI,[R10 + RAX*0x1]
MOV RDX,RSI
CALL 0x00177b60
MOV R10,qword ptr [RSP]
MOV RDX,R15
MOV R8,RAX
SUB RDX,R10
MOV RDI,R10
SAR RDX,0x3
CMP R14,RDX
JLE 0x001781a0
CMP RDX,RBX
MOV RCX,R15
CMOVLE RBX,RDX
LEA RSI,[R10 + RBX*0x8]
MOV RDX,RSI
CALL 0x00177b60
CMP R12,R14
JG 0x001780e8
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP R12,RBX
MOV RDI,qword ptr [RSP + 0x10]
MOV R8,qword ptr [RSP + 0x8]
MOV RCX,R15
CMOVLE RBX,R12
ADD RSP,0x28
LEA RSI,[RDI + RBX*0x8]
POP RBX
POP RBP
MOV RDX,RSI
POP R12
POP R13
POP R14
POP R15
JMP 0x00177b60
MOV R8,qword ptr [RSP + 0x10]
MOV RDX,R12
MOV R13,qword ptr [RSP + 0x8]
JMP 0x00178156
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x00177f60
(translation_unit "void FUN_00178070(long param_1,long param_2,long param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  \n  lVar5 = param_2 - param_1;\n  lVar1 = param_3 + lVar5;\n  lVar8 = lVar5 >> 3;\n  lVar7 = param_1;\n  if (lVar5 < 0x31) {\n    FUN_00177f60();\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  } while (0x30 < param_2 - lVar6);\n  FUN_00177f60(lVar6,param_2);\n  if (0x38 < lVar5) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00178070(long param_1,long param_2,long param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  \n  lVar5 = param_2 - param_1;\n  lVar1 = param_3 + lVar5;\n  lVar8 = lVar5 >> 3;\n  lVar7 = param_1;\n  if (lVar5 < 0x31) {\n    FUN_00177f60();\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  } while (0x30 < param_2 - lVar6);\n  FUN_00177f60(lVar6,param_2);\n  if (0x38 < lVar5) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00178070(long param_1,long param_2,long param_3)" identifier (parameter_list "(long param_1,long param_2,long param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  \n  lVar5 = param_2 - param_1;\n  lVar1 = param_3 + lVar5;\n  lVar8 = lVar5 >> 3;\n  lVar7 = param_1;\n  if (lVar5 < 0x31) {\n    FUN_00177f60();\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  } while (0x30 < param_2 - lVar6);\n  FUN_00177f60(lVar6,param_2);\n  if (0x38 < lVar5) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) 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 "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar5 = param_2 - param_1;" (assignment_expression "lVar5 = param_2 - param_1" identifier = (binary_expression "param_2 - param_1" identifier - identifier)) ;) (expression_statement "lVar1 = param_3 + lVar5;" (assignment_expression "lVar1 = param_3 + lVar5" identifier = (binary_expression "param_3 + lVar5" identifier + identifier)) ;) (expression_statement "lVar8 = lVar5 >> 3;" (assignment_expression "lVar8 = lVar5 >> 3" identifier = (binary_expression "lVar5 >> 3" identifier >> number_literal)) ;) (expression_statement "lVar7 = param_1;" (assignment_expression "lVar7 = param_1" identifier = identifier) ;) (if_statement "if (lVar5 < 0x31) {\n    FUN_00177f60();\n    return;\n  }" if (parenthesized_expression "(lVar5 < 0x31)" ( (binary_expression "lVar5 < 0x31" identifier < number_literal) )) (compound_statement "{\n    FUN_00177f60();\n    return;\n  }" { (expression_statement "FUN_00177f60();" (call_expression "FUN_00177f60()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (do_statement "do {\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  } while (0x30 < param_2 - lVar6);" do (compound_statement "{\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  }" { (expression_statement "lVar6 = lVar7 + 0x38;" (assignment_expression "lVar6 = lVar7 + 0x38" identifier = (binary_expression "lVar7 + 0x38" identifier + number_literal)) ;) (expression_statement "FUN_00177f60(lVar7,lVar6);" (call_expression "FUN_00177f60(lVar7,lVar6)" identifier (argument_list "(lVar7,lVar6)" ( identifier , identifier ))) ;) (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" identifier = identifier) ;) }) while (parenthesized_expression "(0x30 < param_2 - lVar6)" ( (binary_expression "0x30 < param_2 - lVar6" number_literal < (binary_expression "param_2 - lVar6" identifier - identifier)) )) ;) (expression_statement "FUN_00177f60(lVar6,param_2);" (call_expression "FUN_00177f60(lVar6,param_2)" identifier (argument_list "(lVar6,param_2)" ( identifier , identifier ))) ;) (if_statement "if (0x38 < lVar5) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }" if (parenthesized_expression "(0x38 < lVar5)" ( (binary_expression "0x38 < lVar5" number_literal < identifier) )) (compound_statement "{\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }" { (expression_statement "lVar7 = 7;" (assignment_expression "lVar7 = 7" identifier = number_literal) ;) (do_statement "do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);" do (compound_statement "{\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    }" { (expression_statement "lVar6 = lVar7 * 2;" (assignment_expression "lVar6 = lVar7 * 2" identifier = (binary_expression "lVar7 * 2" identifier * number_literal)) ;) (expression_statement "lVar3 = lVar8;" (assignment_expression "lVar3 = lVar8" identifier = identifier) ;) (expression_statement "lVar2 = param_3;" (assignment_expression "lVar2 = param_3" identifier = identifier) ;) (expression_statement "lVar5 = param_1;" (assignment_expression "lVar5 = param_1" identifier = identifier) ;) (if_statement "if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }" if (parenthesized_expression "(SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0)" ( (binary_expression "SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0" (call_expression "SBORROW8(lVar8,lVar6)" identifier (argument_list "(lVar8,lVar6)" ( identifier , identifier ))) == (binary_expression "lVar8 + lVar7 * -2 < 0" (binary_expression "lVar8 + lVar7 * -2" identifier + (binary_expression "lVar7 * -2" identifier * number_literal)) < number_literal)) )) (compound_statement "{\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }" { (expression_statement "lVar9 = param_1;" (assignment_expression "lVar9 = param_1" identifier = identifier) ;) (do_statement "do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);" do (compound_statement "{\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        }" { (expression_statement "lVar5 = lVar9 + lVar7 * 0x10;" (assignment_expression "lVar5 = lVar9 + lVar7 * 0x10" identifier = (binary_expression "lVar9 + lVar7 * 0x10" identifier + (binary_expression "lVar7 * 0x10" identifier * number_literal))) ;) (expression_statement "lVar3 = lVar5 + lVar7 * -8;" (assignment_expression "lVar3 = lVar5 + lVar7 * -8" identifier = (binary_expression "lVar5 + lVar7 * -8" identifier + (binary_expression "lVar7 * -8" identifier * number_literal))) ;) (expression_statement "lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);" (assignment_expression "lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2)" identifier = (call_expression "FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2)" identifier (argument_list "(lVar9,lVar3,lVar3,lVar5,lVar2)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "lVar3 = param_2 - lVar5 >> 3;" (assignment_expression "lVar3 = param_2 - lVar5 >> 3" identifier = (binary_expression "param_2 - lVar5 >> 3" (binary_expression "param_2 - lVar5" identifier - identifier) >> number_literal)) ;) (expression_statement "lVar9 = lVar5;" (assignment_expression "lVar9 = lVar5" identifier = identifier) ;) }) while (parenthesized_expression "(lVar6 <= lVar3)" ( (binary_expression "lVar6 <= lVar3" identifier <= identifier) )) ;) })) (if_statement "if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }" if (parenthesized_expression "(lVar7 <= lVar3)" ( (binary_expression "lVar7 <= lVar3" identifier <= identifier) )) (compound_statement "{\n        lVar3 = lVar7;\n      }" { (expression_statement "lVar3 = lVar7;" (assignment_expression "lVar3 = lVar7" identifier = identifier) ;) })) (expression_statement "lVar9 = lVar7 * 4;" (assignment_expression "lVar9 = lVar7 * 4" identifier = (binary_expression "lVar7 * 4" identifier * number_literal)) ;) (expression_statement "lVar3 = lVar5 + lVar3 * 8;" (assignment_expression "lVar3 = lVar5 + lVar3 * 8" identifier = (binary_expression "lVar5 + lVar3 * 8" identifier + (binary_expression "lVar3 * 8" identifier * number_literal))) ;) (expression_statement "FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);" (call_expression "FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2)" identifier (argument_list "(lVar5,lVar3,lVar3,param_2,lVar2)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }" if (parenthesized_expression "(lVar8 < lVar9)" ( (binary_expression "lVar8 < lVar9" identifier < identifier) )) (compound_statement "{\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }" { (if_statement "if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }" if (parenthesized_expression "(lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0)" ( (binary_expression "lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0" (binary_expression "lVar8 == lVar6" identifier == identifier) || (binary_expression "SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0" (call_expression "SBORROW8(lVar8,lVar6)" identifier (argument_list "(lVar8,lVar6)" ( identifier , identifier ))) != (binary_expression "lVar8 + lVar7 * -2 < 0" (binary_expression "lVar8 + lVar7 * -2" identifier + (binary_expression "lVar7 * -2" identifier * number_literal)) < number_literal))) )) (compound_statement "{\n          lVar6 = lVar8;\n        }" { (expression_statement "lVar6 = lVar8;" (assignment_expression "lVar6 = lVar8" identifier = identifier) ;) })) (expression_statement "lVar7 = param_3 + lVar6 * 8;" (assignment_expression "lVar7 = param_3 + lVar6 * 8" identifier = (binary_expression "param_3 + lVar6 * 8" identifier + (binary_expression "lVar6 * 8" identifier * number_literal))) ;) (expression_statement "FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);" (call_expression "FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1)" identifier (argument_list "(param_3,lVar7,lVar7,lVar1,param_1)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "lVar5 = param_3;" (assignment_expression "lVar5 = param_3" identifier = identifier) ;) (expression_statement "lVar3 = param_1;" (assignment_expression "lVar3 = param_1" identifier = identifier) ;) (do_statement "do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);" do (compound_statement "{\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      }" { (expression_statement "lVar2 = lVar5 + lVar7 * 0x20;" (assignment_expression "lVar2 = lVar5 + lVar7 * 0x20" identifier = (binary_expression "lVar5 + lVar7 * 0x20" identifier + (binary_expression "lVar7 * 0x20" identifier * number_literal))) ;) (expression_statement "lVar4 = lVar2 + lVar7 * -0x10;" (assignment_expression "lVar4 = lVar2 + lVar7 * -0x10" identifier = (binary_expression "lVar2 + lVar7 * -0x10" identifier + (binary_expression "lVar7 * -0x10" identifier * number_literal))) ;) (expression_statement "lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);" (assignment_expression "lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3)" identifier = (call_expression "FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3)" identifier (argument_list "(lVar5,lVar4,lVar4,lVar2,lVar3)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "lVar4 = lVar1 - lVar2 >> 3;" (assignment_expression "lVar4 = lVar1 - lVar2 >> 3" identifier = (binary_expression "lVar1 - lVar2 >> 3" (binary_expression "lVar1 - lVar2" identifier - identifier) >> number_literal)) ;) (expression_statement "lVar5 = lVar2;" (assignment_expression "lVar5 = lVar2" identifier = identifier) ;) }) while (parenthesized_expression "(lVar9 <= lVar4)" ( (binary_expression "lVar9 <= lVar4" identifier <= identifier) )) ;) (if_statement "if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }" if (parenthesized_expression "(lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0)" ( (binary_expression "lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0" (binary_expression "lVar4 == lVar6" identifier == identifier) || (binary_expression "SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0" (call_expression "SBORROW8(lVar4,lVar6)" identifier (argument_list "(lVar4,lVar6)" ( identifier , identifier ))) != (binary_expression "lVar4 + lVar7 * -2 < 0" (binary_expression "lVar4 + lVar7 * -2" identifier + (binary_expression "lVar7 * -2" identifier * number_literal)) < number_literal))) )) (compound_statement "{\n        lVar6 = lVar4;\n      }" { (expression_statement "lVar6 = lVar4;" (assignment_expression "lVar6 = lVar4" identifier = identifier) ;) })) (expression_statement "lVar7 = lVar2 + lVar6 * 8;" (assignment_expression "lVar7 = lVar2 + lVar6 * 8" identifier = (binary_expression "lVar2 + lVar6 * 8" identifier + (binary_expression "lVar6 * 8" identifier * number_literal))) ;) (expression_statement "FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);" (call_expression "FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3)" identifier (argument_list "(lVar2,lVar7,lVar7,lVar1,lVar3)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "lVar7 = lVar9;" (assignment_expression "lVar7 = lVar9" identifier = identifier) ;) }) while (parenthesized_expression "(lVar9 < lVar8)" ( (binary_expression "lVar9 < lVar8" identifier < identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* DWARF original name:\n   __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,\n   std::vector<gold::Output_section*> >, gold::Output_section**,\n   __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::Target_powerpc<64,\n   false>::Sort_sections> > */\n\nvoid std::\n     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n               (Output_section **__first,long __last,Output_section **__buffer)\n\n{\n  long lVar1;\n  Output_section **ppOVar2;\n  __normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  Output_section **ppOVar7;\n  Output_section **ppOVar8;\n  long lVar9;\n  long lVar10;\n  \n  lVar5 = __last - (long)__first;\n  lVar1 = (long)__buffer + lVar5;\n  lVar9 = lVar5 >> 3;\n  ppOVar8 = __first;\n  if (lVar5 < 0x31) {\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n              ();\n    return;\n  }\n  do {\n    ppOVar7 = ppOVar8 + 7;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n              (ppOVar8,ppOVar7);\n    ppOVar8 = ppOVar7;\n  } while (0x30 < __last - (long)ppOVar7);\n  __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n            (ppOVar7,__last);\n  if (0x38 < lVar5) {\n    lVar5 = 7;\n    do {\n      lVar6 = lVar5 * 2;\n      lVar4 = lVar9;\n      ppOVar7 = __first;\n      ppOVar2 = __buffer;\n      ppOVar8 = __first;\n      if (SBORROW8(lVar9,lVar6) == lVar9 + lVar5 * -2 < 0) {\n        do {\n          ppOVar8 = ppOVar7 + lVar5 * 2;\n          ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2);\n          lVar4 = __last - (long)ppOVar8 >> 3;\n          ppOVar7 = ppOVar8;\n        } while (lVar6 <= lVar4);\n      }\n      if (lVar5 <= lVar4) {\n        lVar4 = lVar5;\n      }\n      lVar10 = lVar5 * 4;\n      __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar8,ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2);\n      ppOVar8 = __buffer;\n      _Var3._M_current = __first;\n      if (lVar9 < lVar10) {\n        if (lVar9 == lVar6 || SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0) {\n          lVar6 = lVar9;\n        }\n        __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first);\n        return;\n      }\n      do {\n        ppOVar7 = ppOVar8 + lVar5 * 4;\n        _Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                          (ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current);\n        lVar4 = lVar1 - (long)ppOVar7 >> 3;\n        ppOVar8 = ppOVar7;\n      } while (lVar10 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar5 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar7,ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current);\n      lVar5 = lVar10;\n    } while (lVar10 < lVar9);\n  }\n  return;\n}\n\n" comment comment (declaration "void std::\n     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n               (Output_section **__first,long __last,Output_section **__buffer)\n\n{\n  long lVar1;" primitive_type (ERROR "std::\n     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Output_section" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "**,_std::vector<gold::Output_section*>_" * (pointer_declarator "*,_std::vector<gold::Output_section*>_" * (ERROR ",_std::vector<gold::Output_section*>" , identifier : : identifier < identifier : : identifier * >) identifier)) (ERROR ">,_gold::Output_section**" > , (ERROR "_gold::Output_section" identifier : : identifier) * *) , (ERROR "___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::" identifier : : identifier : : identifier < ( identifier ) : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>::Sort_sections>_>\n               (Output_section **__first,long __last,Output_section **__buffer)\n\n{\n  long" identifier > : : identifier > (function_declarator "_>\n               (Output_section **__first,long __last,Output_section **__buffer)" identifier (ERROR ">" >) (parameter_list "(Output_section **__first,long __last,Output_section **__buffer)" ( (parameter_declaration "Output_section **__first" type_identifier (pointer_declarator "**__first" * (pointer_declarator "*__first" * identifier))) , (parameter_declaration "long __last" (sized_type_specifier "long" long) identifier) , (parameter_declaration "Output_section **__buffer" type_identifier (pointer_declarator "**__buffer" * (pointer_declarator "*__buffer" * identifier))) ))) { long) identifier ;) (declaration "Output_section **ppOVar2;" type_identifier (pointer_declarator "**ppOVar2" * (pointer_declarator "*ppOVar2" * identifier)) ;) (expression_statement "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var3;" (update_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var3" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n  _Var3" (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 lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "Output_section **ppOVar7;" type_identifier (pointer_declarator "**ppOVar7" * (pointer_declarator "*ppOVar7" * identifier)) ;) (declaration "Output_section **ppOVar8;" type_identifier (pointer_declarator "**ppOVar8" * (pointer_declarator "*ppOVar8" * identifier)) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar5 = __last - (long)__first;" (assignment_expression "lVar5 = __last - (long)__first" identifier = (binary_expression "__last - (long)__first" identifier - (cast_expression "(long)__first" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "lVar1 = (long)__buffer + lVar5;" (assignment_expression "lVar1 = (long)__buffer + lVar5" identifier = (binary_expression "(long)__buffer + lVar5" (cast_expression "(long)__buffer" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier)) ;) (expression_statement "lVar9 = lVar5 >> 3;" (assignment_expression "lVar9 = lVar5 >> 3" identifier = (binary_expression "lVar5 >> 3" identifier >> number_literal)) ;) (expression_statement "ppOVar8 = __first;" (assignment_expression "ppOVar8 = __first" identifier = identifier) ;) (if_statement "if (lVar5 < 0x31) {\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n              ();\n    return;\n  }" if (parenthesized_expression "(lVar5 < 0x31)" ( (binary_expression "lVar5 < 0x31" identifier < number_literal) )) (compound_statement "{\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n              ();\n    return;\n  }" { (expression_statement "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n              ();" (comma_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n              ()" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (binary_expression "_false>::Sort_sections>_>\n              ()" (binary_expression "_false>::Sort_sections>_" (binary_expression "_false>::Sort_sections" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "()" ( identifier )))) ;) (return_statement "return;" return ;) })) (do_statement "do {\n    ppOVar7 = ppOVar8 + 7;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n              (ppOVar8,ppOVar7);\n    ppOVar8 = ppOVar7;\n  } while (0x30 < __last - (long)ppOVar7);" do (compound_statement "{\n    ppOVar7 = ppOVar8 + 7;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n              (ppOVar8,ppOVar7);\n    ppOVar8 = ppOVar7;\n  }" { (expression_statement "ppOVar7 = ppOVar8 + 7;" (assignment_expression "ppOVar7 = ppOVar8 + 7" identifier = (binary_expression "ppOVar8 + 7" identifier + number_literal)) ;) (expression_statement "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n              (ppOVar8,ppOVar7);" (comma_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n              (ppOVar8,ppOVar7)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (binary_expression "_false>::Sort_sections>_>\n              (ppOVar8,ppOVar7)" (binary_expression "_false>::Sort_sections>_" (binary_expression "_false>::Sort_sections" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "(ppOVar8,ppOVar7)" ( (comma_expression "ppOVar8,ppOVar7" identifier , identifier) )))) ;) (expression_statement "ppOVar8 = ppOVar7;" (assignment_expression "ppOVar8 = ppOVar7" identifier = identifier) ;) }) while (parenthesized_expression "(0x30 < __last - (long)ppOVar7)" ( (binary_expression "0x30 < __last - (long)ppOVar7" number_literal < (binary_expression "__last - (long)ppOVar7" identifier - (cast_expression "(long)ppOVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) )) ;) (expression_statement "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n            (ppOVar7,__last);" (update_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n            (ppOVar7,__last)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n            (ppOVar7,__last)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "(ppOVar7,__last)" ( (comma_expression "ppOVar7,__last" identifier , identifier) ))) --) ;) (if_statement "if (0x38 < lVar5) {\n    lVar5 = 7;\n    do {\n      lVar6 = lVar5 * 2;\n      lVar4 = lVar9;\n      ppOVar7 = __first;\n      ppOVar2 = __buffer;\n      ppOVar8 = __first;\n      if (SBORROW8(lVar9,lVar6) == lVar9 + lVar5 * -2 < 0) {\n        do {\n          ppOVar8 = ppOVar7 + lVar5 * 2;\n          ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2);\n          lVar4 = __last - (long)ppOVar8 >> 3;\n          ppOVar7 = ppOVar8;\n        } while (lVar6 <= lVar4);\n      }\n      if (lVar5 <= lVar4) {\n        lVar4 = lVar5;\n      }\n      lVar10 = lVar5 * 4;\n      __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar8,ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2);\n      ppOVar8 = __buffer;\n      _Var3._M_current = __first;\n      if (lVar9 < lVar10) {\n        if (lVar9 == lVar6 || SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0) {\n          lVar6 = lVar9;\n        }\n        __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first);\n        return;\n      }\n      do {\n        ppOVar7 = ppOVar8 + lVar5 * 4;\n        _Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                          (ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current);\n        lVar4 = lVar1 - (long)ppOVar7 >> 3;\n        ppOVar8 = ppOVar7;\n      } while (lVar10 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar5 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar7,ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current);\n      lVar5 = lVar10;\n    } while (lVar10 < lVar9);\n  }" if (parenthesized_expression "(0x38 < lVar5)" ( (binary_expression "0x38 < lVar5" number_literal < identifier) )) (compound_statement "{\n    lVar5 = 7;\n    do {\n      lVar6 = lVar5 * 2;\n      lVar4 = lVar9;\n      ppOVar7 = __first;\n      ppOVar2 = __buffer;\n      ppOVar8 = __first;\n      if (SBORROW8(lVar9,lVar6) == lVar9 + lVar5 * -2 < 0) {\n        do {\n          ppOVar8 = ppOVar7 + lVar5 * 2;\n          ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2);\n          lVar4 = __last - (long)ppOVar8 >> 3;\n          ppOVar7 = ppOVar8;\n        } while (lVar6 <= lVar4);\n      }\n      if (lVar5 <= lVar4) {\n        lVar4 = lVar5;\n      }\n      lVar10 = lVar5 * 4;\n      __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar8,ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2);\n      ppOVar8 = __buffer;\n      _Var3._M_current = __first;\n      if (lVar9 < lVar10) {\n        if (lVar9 == lVar6 || SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0) {\n          lVar6 = lVar9;\n        }\n        __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first);\n        return;\n      }\n      do {\n        ppOVar7 = ppOVar8 + lVar5 * 4;\n        _Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                          (ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current);\n        lVar4 = lVar1 - (long)ppOVar7 >> 3;\n        ppOVar8 = ppOVar7;\n      } while (lVar10 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar5 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar7,ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current);\n      lVar5 = lVar10;\n    } while (lVar10 < lVar9);\n  }" { (expression_statement "lVar5 = 7;" (assignment_expression "lVar5 = 7" identifier = number_literal) ;) (do_statement "do {\n      lVar6 = lVar5 * 2;\n      lVar4 = lVar9;\n      ppOVar7 = __first;\n      ppOVar2 = __buffer;\n      ppOVar8 = __first;\n      if (SBORROW8(lVar9,lVar6) == lVar9 + lVar5 * -2 < 0) {\n        do {\n          ppOVar8 = ppOVar7 + lVar5 * 2;\n          ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2);\n          lVar4 = __last - (long)ppOVar8 >> 3;\n          ppOVar7 = ppOVar8;\n        } while (lVar6 <= lVar4);\n      }\n      if (lVar5 <= lVar4) {\n        lVar4 = lVar5;\n      }\n      lVar10 = lVar5 * 4;\n      __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar8,ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2);\n      ppOVar8 = __buffer;\n      _Var3._M_current = __first;\n      if (lVar9 < lVar10) {\n        if (lVar9 == lVar6 || SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0) {\n          lVar6 = lVar9;\n        }\n        __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first);\n        return;\n      }\n      do {\n        ppOVar7 = ppOVar8 + lVar5 * 4;\n        _Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                          (ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current);\n        lVar4 = lVar1 - (long)ppOVar7 >> 3;\n        ppOVar8 = ppOVar7;\n      } while (lVar10 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar5 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar7,ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current);\n      lVar5 = lVar10;\n    } while (lVar10 < lVar9);" do (compound_statement "{\n      lVar6 = lVar5 * 2;\n      lVar4 = lVar9;\n      ppOVar7 = __first;\n      ppOVar2 = __buffer;\n      ppOVar8 = __first;\n      if (SBORROW8(lVar9,lVar6) == lVar9 + lVar5 * -2 < 0) {\n        do {\n          ppOVar8 = ppOVar7 + lVar5 * 2;\n          ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2);\n          lVar4 = __last - (long)ppOVar8 >> 3;\n          ppOVar7 = ppOVar8;\n        } while (lVar6 <= lVar4);\n      }\n      if (lVar5 <= lVar4) {\n        lVar4 = lVar5;\n      }\n      lVar10 = lVar5 * 4;\n      __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar8,ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2);\n      ppOVar8 = __buffer;\n      _Var3._M_current = __first;\n      if (lVar9 < lVar10) {\n        if (lVar9 == lVar6 || SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0) {\n          lVar6 = lVar9;\n        }\n        __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first);\n        return;\n      }\n      do {\n        ppOVar7 = ppOVar8 + lVar5 * 4;\n        _Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                          (ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current);\n        lVar4 = lVar1 - (long)ppOVar7 >> 3;\n        ppOVar8 = ppOVar7;\n      } while (lVar10 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar5 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar7,ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current);\n      lVar5 = lVar10;\n    }" { (expression_statement "lVar6 = lVar5 * 2;" (assignment_expression "lVar6 = lVar5 * 2" identifier = (binary_expression "lVar5 * 2" identifier * number_literal)) ;) (expression_statement "lVar4 = lVar9;" (assignment_expression "lVar4 = lVar9" identifier = identifier) ;) (expression_statement "ppOVar7 = __first;" (assignment_expression "ppOVar7 = __first" identifier = identifier) ;) (expression_statement "ppOVar2 = __buffer;" (assignment_expression "ppOVar2 = __buffer" identifier = identifier) ;) (expression_statement "ppOVar8 = __first;" (assignment_expression "ppOVar8 = __first" identifier = identifier) ;) (if_statement "if (SBORROW8(lVar9,lVar6) == lVar9 + lVar5 * -2 < 0) {\n        do {\n          ppOVar8 = ppOVar7 + lVar5 * 2;\n          ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2);\n          lVar4 = __last - (long)ppOVar8 >> 3;\n          ppOVar7 = ppOVar8;\n        } while (lVar6 <= lVar4);\n      }" if (parenthesized_expression "(SBORROW8(lVar9,lVar6) == lVar9 + lVar5 * -2 < 0)" ( (binary_expression "SBORROW8(lVar9,lVar6) == lVar9 + lVar5 * -2 < 0" (call_expression "SBORROW8(lVar9,lVar6)" identifier (argument_list "(lVar9,lVar6)" ( identifier , identifier ))) == (binary_expression "lVar9 + lVar5 * -2 < 0" (binary_expression "lVar9 + lVar5 * -2" identifier + (binary_expression "lVar5 * -2" identifier * number_literal)) < number_literal)) )) (compound_statement "{\n        do {\n          ppOVar8 = ppOVar7 + lVar5 * 2;\n          ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2);\n          lVar4 = __last - (long)ppOVar8 >> 3;\n          ppOVar7 = ppOVar8;\n        } while (lVar6 <= lVar4);\n      }" { (do_statement "do {\n          ppOVar8 = ppOVar7 + lVar5 * 2;\n          ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2);\n          lVar4 = __last - (long)ppOVar8 >> 3;\n          ppOVar7 = ppOVar8;\n        } while (lVar6 <= lVar4);" do (compound_statement "{\n          ppOVar8 = ppOVar7 + lVar5 * 2;\n          ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2);\n          lVar4 = __last - (long)ppOVar8 >> 3;\n          ppOVar7 = ppOVar8;\n        }" { (expression_statement "ppOVar8 = ppOVar7 + lVar5 * 2;" (assignment_expression "ppOVar8 = ppOVar7 + lVar5 * 2" identifier = (binary_expression "ppOVar7 + lVar5 * 2" identifier + (binary_expression "lVar5 * 2" identifier * number_literal))) ;) (expression_statement "ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2);" (comma_expression "ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2)" (binary_expression "ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64" (binary_expression "ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)" (binary_expression "ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx" (binary_expression "ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold" (binary_expression "ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "ppOVar2 = __move_merge<__gnu_cxx::__normal_iterator<gold" (assignment_expression "ppOVar2 = __move_merge<__gnu_cxx" identifier = (binary_expression "__move_merge<__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) * (pointer_expression "*,___gnu_cxx" * (ERROR "," ,) identifier)) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (binary_expression "_false>::Sort_sections>_>\n                              (ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2)" (binary_expression "_false>::Sort_sections>_" (binary_expression "_false>::Sort_sections" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "(ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2)" ( (comma_expression "ppOVar7,ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2" identifier , (comma_expression "ppOVar8 + -lVar5,ppOVar8 + -lVar5,ppOVar8,ppOVar2" (binary_expression "ppOVar8 + -lVar5" identifier + (unary_expression "-lVar5" - identifier)) , (comma_expression "ppOVar8 + -lVar5,ppOVar8,ppOVar2" (binary_expression "ppOVar8 + -lVar5" identifier + (unary_expression "-lVar5" - identifier)) , (comma_expression "ppOVar8,ppOVar2" identifier , identifier)))) )))) ;) (expression_statement "lVar4 = __last - (long)ppOVar8 >> 3;" (assignment_expression "lVar4 = __last - (long)ppOVar8 >> 3" identifier = (binary_expression "__last - (long)ppOVar8 >> 3" (binary_expression "__last - (long)ppOVar8" identifier - (cast_expression "(long)ppOVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) (expression_statement "ppOVar7 = ppOVar8;" (assignment_expression "ppOVar7 = ppOVar8" identifier = identifier) ;) }) while (parenthesized_expression "(lVar6 <= lVar4)" ( (binary_expression "lVar6 <= lVar4" identifier <= identifier) )) ;) })) (if_statement "if (lVar5 <= lVar4) {\n        lVar4 = lVar5;\n      }" if (parenthesized_expression "(lVar5 <= lVar4)" ( (binary_expression "lVar5 <= lVar4" identifier <= identifier) )) (compound_statement "{\n        lVar4 = lVar5;\n      }" { (expression_statement "lVar4 = lVar5;" (assignment_expression "lVar4 = lVar5" identifier = identifier) ;) })) (expression_statement "lVar10 = lVar5 * 4;" (assignment_expression "lVar10 = lVar5 * 4" identifier = (binary_expression "lVar5 * 4" identifier * number_literal)) ;) (expression_statement "__move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar8,ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2);" (comma_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar8,ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2)" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,___gnu_cxx" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold" (binary_expression "__move_merge<__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) * (pointer_expression "*,___gnu_cxx" * (ERROR "," ,) identifier)) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (binary_expression "_false>::Sort_sections>_>\n                (ppOVar8,ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2)" (binary_expression "_false>::Sort_sections>_" (binary_expression "_false>::Sort_sections" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "(ppOVar8,ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2)" ( (comma_expression "ppOVar8,ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2" identifier , (comma_expression "ppOVar8 + lVar4,ppOVar8 + lVar4,__last,ppOVar2" (binary_expression "ppOVar8 + lVar4" identifier + identifier) , (comma_expression "ppOVar8 + lVar4,__last,ppOVar2" (binary_expression "ppOVar8 + lVar4" identifier + identifier) , (comma_expression "__last,ppOVar2" identifier , identifier)))) )))) ;) (expression_statement "ppOVar8 = __buffer;" (assignment_expression "ppOVar8 = __buffer" identifier = identifier) ;) (expression_statement "_Var3._M_current = __first;" (assignment_expression "_Var3._M_current = __first" (field_expression "_Var3._M_current" identifier . field_identifier) = identifier) ;) (if_statement "if (lVar9 < lVar10) {\n        if (lVar9 == lVar6 || SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0) {\n          lVar6 = lVar9;\n        }\n        __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first);\n        return;\n      }" if (parenthesized_expression "(lVar9 < lVar10)" ( (binary_expression "lVar9 < lVar10" identifier < identifier) )) (compound_statement "{\n        if (lVar9 == lVar6 || SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0) {\n          lVar6 = lVar9;\n        }\n        __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first);\n        return;\n      }" { (if_statement "if (lVar9 == lVar6 || SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0) {\n          lVar6 = lVar9;\n        }" if (parenthesized_expression "(lVar9 == lVar6 || SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0)" ( (binary_expression "lVar9 == lVar6 || SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0" (binary_expression "lVar9 == lVar6" identifier == identifier) || (binary_expression "SBORROW8(lVar9,lVar6) != lVar9 + lVar5 * -2 < 0" (call_expression "SBORROW8(lVar9,lVar6)" identifier (argument_list "(lVar9,lVar6)" ( identifier , identifier ))) != (binary_expression "lVar9 + lVar5 * -2 < 0" (binary_expression "lVar9 + lVar5 * -2" identifier + (binary_expression "lVar5 * -2" identifier * number_literal)) < number_literal))) )) (compound_statement "{\n          lVar6 = lVar9;\n        }" { (expression_statement "lVar6 = lVar9;" (assignment_expression "lVar6 = lVar9" identifier = identifier) ;) })) (expression_statement "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first);" (comma_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first)" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx" (binary_expression "__move_merge<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,___gnu_cxx" * (ERROR "," ,) identifier)) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (binary_expression "_false>::Sort_sections>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first)" (binary_expression "_false>::Sort_sections>_" (binary_expression "_false>::Sort_sections" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "(__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first)" ( (comma_expression "__buffer,__buffer + lVar6,__buffer + lVar6,lVar1,__first" identifier , (comma_expression "__buffer + lVar6,__buffer + lVar6,lVar1,__first" (binary_expression "__buffer + lVar6" identifier + identifier) , (comma_expression "__buffer + lVar6,lVar1,__first" (binary_expression "__buffer + lVar6" identifier + identifier) , (comma_expression "lVar1,__first" identifier , identifier)))) )))) ;) (return_statement "return;" return ;) })) (do_statement "do {\n        ppOVar7 = ppOVar8 + lVar5 * 4;\n        _Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                          (ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current);\n        lVar4 = lVar1 - (long)ppOVar7 >> 3;\n        ppOVar8 = ppOVar7;\n      } while (lVar10 <= lVar4);" do (compound_statement "{\n        ppOVar7 = ppOVar8 + lVar5 * 4;\n        _Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                          (ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current);\n        lVar4 = lVar1 - (long)ppOVar7 >> 3;\n        ppOVar8 = ppOVar7;\n      }" { (expression_statement "ppOVar7 = ppOVar8 + lVar5 * 4;" (assignment_expression "ppOVar7 = ppOVar8 + lVar5 * 4" identifier = (binary_expression "ppOVar8 + lVar5 * 4" identifier + (binary_expression "lVar5 * 4" identifier * number_literal))) ;) (expression_statement "_Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                          (ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current);" (comma_expression "_Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                          (ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current)" (binary_expression "_Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64" (binary_expression "_Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)" (binary_expression "_Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx" (binary_expression "_Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "_Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "_Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "_Var3 = __move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold" (binary_expression "_Var3 = __move_merge<gold::Output_section**,___gnu_cxx" (assignment_expression "_Var3 = __move_merge<gold" identifier = (binary_expression "__move_merge<gold" identifier < identifier)) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,___gnu_cxx" * (ERROR "," ,) identifier)) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (binary_expression "_false>::Sort_sections>_>\n                          (ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current)" (binary_expression "_false>::Sort_sections>_" (binary_expression "_false>::Sort_sections" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "(ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current)" ( (comma_expression "ppOVar8,ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current" identifier , (comma_expression "ppOVar7 + lVar5 * -2,ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current" (binary_expression "ppOVar7 + lVar5 * -2" identifier + (binary_expression "lVar5 * -2" identifier * number_literal)) , (comma_expression "ppOVar7 + lVar5 * -2,ppOVar7,\n                           _Var3._M_current" (binary_expression "ppOVar7 + lVar5 * -2" identifier + (binary_expression "lVar5 * -2" identifier * number_literal)) , (comma_expression "ppOVar7,\n                           _Var3._M_current" identifier , (field_expression "_Var3._M_current" identifier . field_identifier))))) )))) ;) (expression_statement "lVar4 = lVar1 - (long)ppOVar7 >> 3;" (assignment_expression "lVar4 = lVar1 - (long)ppOVar7 >> 3" identifier = (binary_expression "lVar1 - (long)ppOVar7 >> 3" (binary_expression "lVar1 - (long)ppOVar7" identifier - (cast_expression "(long)ppOVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) (expression_statement "ppOVar8 = ppOVar7;" (assignment_expression "ppOVar8 = ppOVar7" identifier = identifier) ;) }) while (parenthesized_expression "(lVar10 <= lVar4)" ( (binary_expression "lVar10 <= lVar4" identifier <= identifier) )) ;) (if_statement "if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar5 * -2 < 0) {\n        lVar6 = lVar4;\n      }" if (parenthesized_expression "(lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar5 * -2 < 0)" ( (binary_expression "lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar5 * -2 < 0" (binary_expression "lVar4 == lVar6" identifier == identifier) || (binary_expression "SBORROW8(lVar4,lVar6) != lVar4 + lVar5 * -2 < 0" (call_expression "SBORROW8(lVar4,lVar6)" identifier (argument_list "(lVar4,lVar6)" ( identifier , identifier ))) != (binary_expression "lVar4 + lVar5 * -2 < 0" (binary_expression "lVar4 + lVar5 * -2" identifier + (binary_expression "lVar5 * -2" identifier * number_literal)) < number_literal))) )) (compound_statement "{\n        lVar6 = lVar4;\n      }" { (expression_statement "lVar6 = lVar4;" (assignment_expression "lVar6 = lVar4" identifier = identifier) ;) })) (expression_statement "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar7,ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current);" (comma_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,_false>::Sort_sections>_>\n                (ppOVar7,ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current)" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<(anonymous_namespace)" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold::Output_section**,_std" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx::__normal_iterator<gold" (binary_expression "__move_merge<gold::Output_section**,___gnu_cxx" (binary_expression "__move_merge<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,___gnu_cxx" * (ERROR "," ,) identifier)) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Target_powerpc" : : identifier) < number_literal) , (binary_expression "_false>::Sort_sections>_>\n                (ppOVar7,ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current)" (binary_expression "_false>::Sort_sections>_" (binary_expression "_false>::Sort_sections" identifier > (ERROR "::" : :) identifier) > identifier) > (parenthesized_expression "(ppOVar7,ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current)" ( (comma_expression "ppOVar7,ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current" identifier , (comma_expression "ppOVar7 + lVar6,ppOVar7 + lVar6,lVar1,_Var3._M_current" (binary_expression "ppOVar7 + lVar6" identifier + identifier) , (comma_expression "ppOVar7 + lVar6,lVar1,_Var3._M_current" (binary_expression "ppOVar7 + lVar6" identifier + identifier) , (comma_expression "lVar1,_Var3._M_current" identifier , (field_expression "_Var3._M_current" identifier . field_identifier))))) )))) ;) (expression_statement "lVar5 = lVar10;" (assignment_expression "lVar5 = lVar10" identifier = identifier) ;) }) while (parenthesized_expression "(lVar10 < lVar9)" ( (binary_expression "lVar10 < lVar9" identifier < identifier) )) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00178070(long param_1,long param_2,long param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  \n  lVar5 = param_2 - param_1;\n  lVar1 = param_3 + lVar5;\n  lVar8 = lVar5 >> 3;\n  lVar7 = param_1;\n  if (lVar5 < 0x31) {\n    FUN_00177f60();\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  } while (0x30 < param_2 - lVar6);\n  FUN_00177f60(lVar6,param_2);\n  if (0x38 < lVar5) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00178070(long param_1,long param_2,long param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  \n  lVar5 = param_2 - param_1;\n  lVar1 = param_3 + lVar5;\n  lVar8 = lVar5 >> 3;\n  lVar7 = param_1;\n  if (lVar5 < 0x31) {\n    FUN_00177f60();\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  } while (0x30 < param_2 - lVar6);\n  FUN_00177f60(lVar6,param_2);\n  if (0x38 < lVar5) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00178070(long param_1,long param_2,long param_3)" identifier (parameter_list "(long param_1,long param_2,long param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  \n  lVar5 = param_2 - param_1;\n  lVar1 = param_3 + lVar5;\n  lVar8 = lVar5 >> 3;\n  lVar7 = param_1;\n  if (lVar5 < 0x31) {\n    FUN_00177f60();\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  } while (0x30 < param_2 - lVar6);\n  FUN_00177f60(lVar6,param_2);\n  if (0x38 < lVar5) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) 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 "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar5 = param_2 - param_1;" (assignment_expression "lVar5 = param_2 - param_1" identifier = (binary_expression "param_2 - param_1" identifier - identifier)) ;) (expression_statement "lVar1 = param_3 + lVar5;" (assignment_expression "lVar1 = param_3 + lVar5" identifier = (binary_expression "param_3 + lVar5" identifier + identifier)) ;) (expression_statement "lVar8 = lVar5 >> 3;" (assignment_expression "lVar8 = lVar5 >> 3" identifier = (binary_expression "lVar5 >> 3" identifier >> number_literal)) ;) (expression_statement "lVar7 = param_1;" (assignment_expression "lVar7 = param_1" identifier = identifier) ;) (if_statement "if (lVar5 < 0x31) {\n    FUN_00177f60();\n    return;\n  }" if (parenthesized_expression "(lVar5 < 0x31)" ( (binary_expression "lVar5 < 0x31" identifier < number_literal) )) (compound_statement "{\n    FUN_00177f60();\n    return;\n  }" { (expression_statement "FUN_00177f60();" (call_expression "FUN_00177f60()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (do_statement "do {\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  } while (0x30 < param_2 - lVar6);" do (compound_statement "{\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  }" { (expression_statement "lVar6 = lVar7 + 0x38;" (assignment_expression "lVar6 = lVar7 + 0x38" identifier = (binary_expression "lVar7 + 0x38" identifier + number_literal)) ;) (expression_statement "FUN_00177f60(lVar7,lVar6);" (call_expression "FUN_00177f60(lVar7,lVar6)" identifier (argument_list "(lVar7,lVar6)" ( identifier , identifier ))) ;) (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" identifier = identifier) ;) }) while (parenthesized_expression "(0x30 < param_2 - lVar6)" ( (binary_expression "0x30 < param_2 - lVar6" number_literal < (binary_expression "param_2 - lVar6" identifier - identifier)) )) ;) (expression_statement "FUN_00177f60(lVar6,param_2);" (call_expression "FUN_00177f60(lVar6,param_2)" identifier (argument_list "(lVar6,param_2)" ( identifier , identifier ))) ;) (if_statement "if (0x38 < lVar5) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }" if (parenthesized_expression "(0x38 < lVar5)" ( (binary_expression "0x38 < lVar5" number_literal < identifier) )) (compound_statement "{\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }" { (expression_statement "lVar7 = 7;" (assignment_expression "lVar7 = 7" identifier = number_literal) ;) (do_statement "do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);" do (compound_statement "{\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    }" { (expression_statement "lVar6 = lVar7 * 2;" (assignment_expression "lVar6 = lVar7 * 2" identifier = (binary_expression "lVar7 * 2" identifier * number_literal)) ;) (expression_statement "lVar3 = lVar8;" (assignment_expression "lVar3 = lVar8" identifier = identifier) ;) (expression_statement "lVar2 = param_3;" (assignment_expression "lVar2 = param_3" identifier = identifier) ;) (expression_statement "lVar5 = param_1;" (assignment_expression "lVar5 = param_1" identifier = identifier) ;) (if_statement "if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }" if (parenthesized_expression "(SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0)" ( (binary_expression "SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0" (call_expression "SBORROW8(lVar8,lVar6)" identifier (argument_list "(lVar8,lVar6)" ( identifier , identifier ))) == (binary_expression "lVar8 + lVar7 * -2 < 0" (binary_expression "lVar8 + lVar7 * -2" identifier + (binary_expression "lVar7 * -2" identifier * number_literal)) < number_literal)) )) (compound_statement "{\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }" { (expression_statement "lVar9 = param_1;" (assignment_expression "lVar9 = param_1" identifier = identifier) ;) (do_statement "do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);" do (compound_statement "{\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        }" { (expression_statement "lVar5 = lVar9 + lVar7 * 0x10;" (assignment_expression "lVar5 = lVar9 + lVar7 * 0x10" identifier = (binary_expression "lVar9 + lVar7 * 0x10" identifier + (binary_expression "lVar7 * 0x10" identifier * number_literal))) ;) (expression_statement "lVar3 = lVar5 + lVar7 * -8;" (assignment_expression "lVar3 = lVar5 + lVar7 * -8" identifier = (binary_expression "lVar5 + lVar7 * -8" identifier + (binary_expression "lVar7 * -8" identifier * number_literal))) ;) (expression_statement "lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);" (assignment_expression "lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2)" identifier = (call_expression "FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2)" identifier (argument_list "(lVar9,lVar3,lVar3,lVar5,lVar2)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "lVar3 = param_2 - lVar5 >> 3;" (assignment_expression "lVar3 = param_2 - lVar5 >> 3" identifier = (binary_expression "param_2 - lVar5 >> 3" (binary_expression "param_2 - lVar5" identifier - identifier) >> number_literal)) ;) (expression_statement "lVar9 = lVar5;" (assignment_expression "lVar9 = lVar5" identifier = identifier) ;) }) while (parenthesized_expression "(lVar6 <= lVar3)" ( (binary_expression "lVar6 <= lVar3" identifier <= identifier) )) ;) })) (if_statement "if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }" if (parenthesized_expression "(lVar7 <= lVar3)" ( (binary_expression "lVar7 <= lVar3" identifier <= identifier) )) (compound_statement "{\n        lVar3 = lVar7;\n      }" { (expression_statement "lVar3 = lVar7;" (assignment_expression "lVar3 = lVar7" identifier = identifier) ;) })) (expression_statement "lVar9 = lVar7 * 4;" (assignment_expression "lVar9 = lVar7 * 4" identifier = (binary_expression "lVar7 * 4" identifier * number_literal)) ;) (expression_statement "lVar3 = lVar5 + lVar3 * 8;" (assignment_expression "lVar3 = lVar5 + lVar3 * 8" identifier = (binary_expression "lVar5 + lVar3 * 8" identifier + (binary_expression "lVar3 * 8" identifier * number_literal))) ;) (expression_statement "FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);" (call_expression "FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2)" identifier (argument_list "(lVar5,lVar3,lVar3,param_2,lVar2)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }" if (parenthesized_expression "(lVar8 < lVar9)" ( (binary_expression "lVar8 < lVar9" identifier < identifier) )) (compound_statement "{\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }" { (if_statement "if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }" if (parenthesized_expression "(lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0)" ( (binary_expression "lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0" (binary_expression "lVar8 == lVar6" identifier == identifier) || (binary_expression "SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0" (call_expression "SBORROW8(lVar8,lVar6)" identifier (argument_list "(lVar8,lVar6)" ( identifier , identifier ))) != (binary_expression "lVar8 + lVar7 * -2 < 0" (binary_expression "lVar8 + lVar7 * -2" identifier + (binary_expression "lVar7 * -2" identifier * number_literal)) < number_literal))) )) (compound_statement "{\n          lVar6 = lVar8;\n        }" { (expression_statement "lVar6 = lVar8;" (assignment_expression "lVar6 = lVar8" identifier = identifier) ;) })) (expression_statement "lVar7 = param_3 + lVar6 * 8;" (assignment_expression "lVar7 = param_3 + lVar6 * 8" identifier = (binary_expression "param_3 + lVar6 * 8" identifier + (binary_expression "lVar6 * 8" identifier * number_literal))) ;) (expression_statement "FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);" (call_expression "FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1)" identifier (argument_list "(param_3,lVar7,lVar7,lVar1,param_1)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "lVar5 = param_3;" (assignment_expression "lVar5 = param_3" identifier = identifier) ;) (expression_statement "lVar3 = param_1;" (assignment_expression "lVar3 = param_1" identifier = identifier) ;) (do_statement "do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);" do (compound_statement "{\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      }" { (expression_statement "lVar2 = lVar5 + lVar7 * 0x20;" (assignment_expression "lVar2 = lVar5 + lVar7 * 0x20" identifier = (binary_expression "lVar5 + lVar7 * 0x20" identifier + (binary_expression "lVar7 * 0x20" identifier * number_literal))) ;) (expression_statement "lVar4 = lVar2 + lVar7 * -0x10;" (assignment_expression "lVar4 = lVar2 + lVar7 * -0x10" identifier = (binary_expression "lVar2 + lVar7 * -0x10" identifier + (binary_expression "lVar7 * -0x10" identifier * number_literal))) ;) (expression_statement "lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);" (assignment_expression "lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3)" identifier = (call_expression "FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3)" identifier (argument_list "(lVar5,lVar4,lVar4,lVar2,lVar3)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "lVar4 = lVar1 - lVar2 >> 3;" (assignment_expression "lVar4 = lVar1 - lVar2 >> 3" identifier = (binary_expression "lVar1 - lVar2 >> 3" (binary_expression "lVar1 - lVar2" identifier - identifier) >> number_literal)) ;) (expression_statement "lVar5 = lVar2;" (assignment_expression "lVar5 = lVar2" identifier = identifier) ;) }) while (parenthesized_expression "(lVar9 <= lVar4)" ( (binary_expression "lVar9 <= lVar4" identifier <= identifier) )) ;) (if_statement "if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }" if (parenthesized_expression "(lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0)" ( (binary_expression "lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0" (binary_expression "lVar4 == lVar6" identifier == identifier) || (binary_expression "SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0" (call_expression "SBORROW8(lVar4,lVar6)" identifier (argument_list "(lVar4,lVar6)" ( identifier , identifier ))) != (binary_expression "lVar4 + lVar7 * -2 < 0" (binary_expression "lVar4 + lVar7 * -2" identifier + (binary_expression "lVar7 * -2" identifier * number_literal)) < number_literal))) )) (compound_statement "{\n        lVar6 = lVar4;\n      }" { (expression_statement "lVar6 = lVar4;" (assignment_expression "lVar6 = lVar4" identifier = identifier) ;) })) (expression_statement "lVar7 = lVar2 + lVar6 * 8;" (assignment_expression "lVar7 = lVar2 + lVar6 * 8" identifier = (binary_expression "lVar2 + lVar6 * 8" identifier + (binary_expression "lVar6 * 8" identifier * number_literal))) ;) (expression_statement "FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);" (call_expression "FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3)" identifier (argument_list "(lVar2,lVar7,lVar7,lVar1,lVar3)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "lVar7 = lVar9;" (assignment_expression "lVar7 = lVar9" identifier = identifier) ;) }) while (parenthesized_expression "(lVar9 < lVar8)" ( (binary_expression "lVar9 < lVar8" identifier < identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - IDENT)) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) == (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) < LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) || (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) < LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) || (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) < LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00178070(long param_1,long param_2,long param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  \n  lVar5 = param_2 - param_1;\n  lVar1 = param_3 + lVar5;\n  lVar8 = lVar5 >> 3;\n  lVar7 = param_1;\n  if (lVar5 < 0x31) {\n    FUN_00177f60();\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  } while (0x30 < param_2 - lVar6);\n  FUN_00177f60(lVar6,param_2);\n  if (0x38 < lVar5) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00178070(long param_1,long param_2,long param_3)" (identifier "FUN_00178070") (parameter_list "(long param_1,long param_2,long param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  \n  lVar5 = param_2 - param_1;\n  lVar1 = param_3 + lVar5;\n  lVar8 = lVar5 >> 3;\n  lVar7 = param_1;\n  if (lVar5 < 0x31) {\n    FUN_00177f60();\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  } while (0x30 < param_2 - lVar6);\n  FUN_00177f60(lVar6,param_2);\n  if (0x38 < lVar5) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (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 "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (expression_statement "lVar5 = param_2 - param_1;" (assignment_expression "lVar5 = param_2 - param_1" (identifier "lVar5") (= "=") (binary_expression "param_2 - param_1" (identifier "param_2") (- "-") (identifier "param_1"))) (; ";")) (expression_statement "lVar1 = param_3 + lVar5;" (assignment_expression "lVar1 = param_3 + lVar5" (identifier "lVar1") (= "=") (binary_expression "param_3 + lVar5" (identifier "param_3") (+ "+") (identifier "lVar5"))) (; ";")) (expression_statement "lVar8 = lVar5 >> 3;" (assignment_expression "lVar8 = lVar5 >> 3" (identifier "lVar8") (= "=") (binary_expression "lVar5 >> 3" (identifier "lVar5") (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "lVar7 = param_1;" (assignment_expression "lVar7 = param_1" (identifier "lVar7") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (lVar5 < 0x31) {\n    FUN_00177f60();\n    return;\n  }" (if "if") (parenthesized_expression "(lVar5 < 0x31)" (( "(") (binary_expression "lVar5 < 0x31" (identifier "lVar5") (< "<") (number_literal "0x31")) () ")")) (compound_statement "{\n    FUN_00177f60();\n    return;\n  }" ({ "{") (expression_statement "FUN_00177f60();" (call_expression "FUN_00177f60()" (identifier "FUN_00177f60") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (do_statement "do {\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  } while (0x30 < param_2 - lVar6);" (do "do") (compound_statement "{\n    lVar6 = lVar7 + 0x38;\n    FUN_00177f60(lVar7,lVar6);\n    lVar7 = lVar6;\n  }" ({ "{") (expression_statement "lVar6 = lVar7 + 0x38;" (assignment_expression "lVar6 = lVar7 + 0x38" (identifier "lVar6") (= "=") (binary_expression "lVar7 + 0x38" (identifier "lVar7") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "FUN_00177f60(lVar7,lVar6);" (call_expression "FUN_00177f60(lVar7,lVar6)" (identifier "FUN_00177f60") (argument_list "(lVar7,lVar6)" (( "(") (identifier "lVar7") (, ",") (identifier "lVar6") () ")"))) (; ";")) (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" (identifier "lVar7") (= "=") (identifier "lVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0x30 < param_2 - lVar6)" (( "(") (binary_expression "0x30 < param_2 - lVar6" (number_literal "0x30") (< "<") (binary_expression "param_2 - lVar6" (identifier "param_2") (- "-") (identifier "lVar6"))) () ")")) (; ";")) (expression_statement "FUN_00177f60(lVar6,param_2);" (call_expression "FUN_00177f60(lVar6,param_2)" (identifier "FUN_00177f60") (argument_list "(lVar6,param_2)" (( "(") (identifier "lVar6") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (0x38 < lVar5) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }" (if "if") (parenthesized_expression "(0x38 < lVar5)" (( "(") (binary_expression "0x38 < lVar5" (number_literal "0x38") (< "<") (identifier "lVar5")) () ")")) (compound_statement "{\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }" ({ "{") (expression_statement "lVar7 = 7;" (assignment_expression "lVar7 = 7" (identifier "lVar7") (= "=") (number_literal "7")) (; ";")) (do_statement "do {\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);" (do "do") (compound_statement "{\n      lVar6 = lVar7 * 2;\n      lVar3 = lVar8;\n      lVar2 = param_3;\n      lVar5 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }\n      if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar3 = lVar5 + lVar3 * 8;\n      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }\n      lVar5 = param_3;\n      lVar3 = param_1;\n      do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);\n      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }\n      lVar7 = lVar2 + lVar6 * 8;\n      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);\n      lVar7 = lVar9;\n    }" ({ "{") (expression_statement "lVar6 = lVar7 * 2;" (assignment_expression "lVar6 = lVar7 * 2" (identifier "lVar6") (= "=") (binary_expression "lVar7 * 2" (identifier "lVar7") (* "*") (number_literal "2"))) (; ";")) (expression_statement "lVar3 = lVar8;" (assignment_expression "lVar3 = lVar8" (identifier "lVar3") (= "=") (identifier "lVar8")) (; ";")) (expression_statement "lVar2 = param_3;" (assignment_expression "lVar2 = param_3" (identifier "lVar2") (= "=") (identifier "param_3")) (; ";")) (expression_statement "lVar5 = param_1;" (assignment_expression "lVar5 = param_1" (identifier "lVar5") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }" (if "if") (parenthesized_expression "(SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0)" (( "(") (binary_expression "SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0" (call_expression "SBORROW8(lVar8,lVar6)" (identifier "SBORROW8") (argument_list "(lVar8,lVar6)" (( "(") (identifier "lVar8") (, ",") (identifier "lVar6") () ")"))) (== "==") (binary_expression "lVar8 + lVar7 * -2 < 0" (binary_expression "lVar8 + lVar7 * -2" (identifier "lVar8") (+ "+") (binary_expression "lVar7 * -2" (identifier "lVar7") (* "*") (number_literal "-2"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n        lVar9 = param_1;\n        do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);\n      }" ({ "{") (expression_statement "lVar9 = param_1;" (assignment_expression "lVar9 = param_1" (identifier "lVar9") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        } while (lVar6 <= lVar3);" (do "do") (compound_statement "{\n          lVar5 = lVar9 + lVar7 * 0x10;\n          lVar3 = lVar5 + lVar7 * -8;\n          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);\n          lVar3 = param_2 - lVar5 >> 3;\n          lVar9 = lVar5;\n        }" ({ "{") (expression_statement "lVar5 = lVar9 + lVar7 * 0x10;" (assignment_expression "lVar5 = lVar9 + lVar7 * 0x10" (identifier "lVar5") (= "=") (binary_expression "lVar9 + lVar7 * 0x10" (identifier "lVar9") (+ "+") (binary_expression "lVar7 * 0x10" (identifier "lVar7") (* "*") (number_literal "0x10")))) (; ";")) (expression_statement "lVar3 = lVar5 + lVar7 * -8;" (assignment_expression "lVar3 = lVar5 + lVar7 * -8" (identifier "lVar3") (= "=") (binary_expression "lVar5 + lVar7 * -8" (identifier "lVar5") (+ "+") (binary_expression "lVar7 * -8" (identifier "lVar7") (* "*") (number_literal "-8")))) (; ";")) (expression_statement "lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);" (assignment_expression "lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2)" (identifier "lVar2") (= "=") (call_expression "FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2)" (identifier "FUN_00177dc0") (argument_list "(lVar9,lVar3,lVar3,lVar5,lVar2)" (( "(") (identifier "lVar9") (, ",") (identifier "lVar3") (, ",") (identifier "lVar3") (, ",") (identifier "lVar5") (, ",") (identifier "lVar2") () ")")))) (; ";")) (expression_statement "lVar3 = param_2 - lVar5 >> 3;" (assignment_expression "lVar3 = param_2 - lVar5 >> 3" (identifier "lVar3") (= "=") (binary_expression "param_2 - lVar5 >> 3" (binary_expression "param_2 - lVar5" (identifier "param_2") (- "-") (identifier "lVar5")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "lVar9 = lVar5;" (assignment_expression "lVar9 = lVar5" (identifier "lVar9") (= "=") (identifier "lVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar6 <= lVar3)" (( "(") (binary_expression "lVar6 <= lVar3" (identifier "lVar6") (<= "<=") (identifier "lVar3")) () ")")) (; ";")) (} "}"))) (if_statement "if (lVar7 <= lVar3) {\n        lVar3 = lVar7;\n      }" (if "if") (parenthesized_expression "(lVar7 <= lVar3)" (( "(") (binary_expression "lVar7 <= lVar3" (identifier "lVar7") (<= "<=") (identifier "lVar3")) () ")")) (compound_statement "{\n        lVar3 = lVar7;\n      }" ({ "{") (expression_statement "lVar3 = lVar7;" (assignment_expression "lVar3 = lVar7" (identifier "lVar3") (= "=") (identifier "lVar7")) (; ";")) (} "}"))) (expression_statement "lVar9 = lVar7 * 4;" (assignment_expression "lVar9 = lVar7 * 4" (identifier "lVar9") (= "=") (binary_expression "lVar7 * 4" (identifier "lVar7") (* "*") (number_literal "4"))) (; ";")) (expression_statement "lVar3 = lVar5 + lVar3 * 8;" (assignment_expression "lVar3 = lVar5 + lVar3 * 8" (identifier "lVar3") (= "=") (binary_expression "lVar5 + lVar3 * 8" (identifier "lVar5") (+ "+") (binary_expression "lVar3 * 8" (identifier "lVar3") (* "*") (number_literal "8")))) (; ";")) (expression_statement "FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);" (call_expression "FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2)" (identifier "FUN_00177dc0") (argument_list "(lVar5,lVar3,lVar3,param_2,lVar2)" (( "(") (identifier "lVar5") (, ",") (identifier "lVar3") (, ",") (identifier "lVar3") (, ",") (identifier "param_2") (, ",") (identifier "lVar2") () ")"))) (; ";")) (if_statement "if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }" (if "if") (parenthesized_expression "(lVar8 < lVar9)" (( "(") (binary_expression "lVar8 < lVar9" (identifier "lVar8") (< "<") (identifier "lVar9")) () ")")) (compound_statement "{\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = param_3 + lVar6 * 8;\n        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);\n        return;\n      }" ({ "{") (if_statement "if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }" (if "if") (parenthesized_expression "(lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0)" (( "(") (binary_expression "lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0" (binary_expression "lVar8 == lVar6" (identifier "lVar8") (== "==") (identifier "lVar6")) (|| "||") (binary_expression "SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0" (call_expression "SBORROW8(lVar8,lVar6)" (identifier "SBORROW8") (argument_list "(lVar8,lVar6)" (( "(") (identifier "lVar8") (, ",") (identifier "lVar6") () ")"))) (!= "!=") (binary_expression "lVar8 + lVar7 * -2 < 0" (binary_expression "lVar8 + lVar7 * -2" (identifier "lVar8") (+ "+") (binary_expression "lVar7 * -2" (identifier "lVar7") (* "*") (number_literal "-2"))) (< "<") (number_literal "0")))) () ")")) (compound_statement "{\n          lVar6 = lVar8;\n        }" ({ "{") (expression_statement "lVar6 = lVar8;" (assignment_expression "lVar6 = lVar8" (identifier "lVar6") (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (expression_statement "lVar7 = param_3 + lVar6 * 8;" (assignment_expression "lVar7 = param_3 + lVar6 * 8" (identifier "lVar7") (= "=") (binary_expression "param_3 + lVar6 * 8" (identifier "param_3") (+ "+") (binary_expression "lVar6 * 8" (identifier "lVar6") (* "*") (number_literal "8")))) (; ";")) (expression_statement "FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);" (call_expression "FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1)" (identifier "FUN_00177b60") (argument_list "(param_3,lVar7,lVar7,lVar1,param_1)" (( "(") (identifier "param_3") (, ",") (identifier "lVar7") (, ",") (identifier "lVar7") (, ",") (identifier "lVar1") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "lVar5 = param_3;" (assignment_expression "lVar5 = param_3" (identifier "lVar5") (= "=") (identifier "param_3")) (; ";")) (expression_statement "lVar3 = param_1;" (assignment_expression "lVar3 = param_1" (identifier "lVar3") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      } while (lVar9 <= lVar4);" (do "do") (compound_statement "{\n        lVar2 = lVar5 + lVar7 * 0x20;\n        lVar4 = lVar2 + lVar7 * -0x10;\n        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);\n        lVar4 = lVar1 - lVar2 >> 3;\n        lVar5 = lVar2;\n      }" ({ "{") (expression_statement "lVar2 = lVar5 + lVar7 * 0x20;" (assignment_expression "lVar2 = lVar5 + lVar7 * 0x20" (identifier "lVar2") (= "=") (binary_expression "lVar5 + lVar7 * 0x20" (identifier "lVar5") (+ "+") (binary_expression "lVar7 * 0x20" (identifier "lVar7") (* "*") (number_literal "0x20")))) (; ";")) (expression_statement "lVar4 = lVar2 + lVar7 * -0x10;" (assignment_expression "lVar4 = lVar2 + lVar7 * -0x10" (identifier "lVar4") (= "=") (binary_expression "lVar2 + lVar7 * -0x10" (identifier "lVar2") (+ "+") (binary_expression "lVar7 * -0x10" (identifier "lVar7") (* "*") (number_literal "-0x10")))) (; ";")) (expression_statement "lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);" (assignment_expression "lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3)" (identifier "lVar3") (= "=") (call_expression "FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3)" (identifier "FUN_00177b60") (argument_list "(lVar5,lVar4,lVar4,lVar2,lVar3)" (( "(") (identifier "lVar5") (, ",") (identifier "lVar4") (, ",") (identifier "lVar4") (, ",") (identifier "lVar2") (, ",") (identifier "lVar3") () ")")))) (; ";")) (expression_statement "lVar4 = lVar1 - lVar2 >> 3;" (assignment_expression "lVar4 = lVar1 - lVar2 >> 3" (identifier "lVar4") (= "=") (binary_expression "lVar1 - lVar2 >> 3" (binary_expression "lVar1 - lVar2" (identifier "lVar1") (- "-") (identifier "lVar2")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "lVar5 = lVar2;" (assignment_expression "lVar5 = lVar2" (identifier "lVar5") (= "=") (identifier "lVar2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar9 <= lVar4)" (( "(") (binary_expression "lVar9 <= lVar4" (identifier "lVar9") (<= "<=") (identifier "lVar4")) () ")")) (; ";")) (if_statement "if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {\n        lVar6 = lVar4;\n      }" (if "if") (parenthesized_expression "(lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0)" (( "(") (binary_expression "lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0" (binary_expression "lVar4 == lVar6" (identifier "lVar4") (== "==") (identifier "lVar6")) (|| "||") (binary_expression "SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0" (call_expression "SBORROW8(lVar4,lVar6)" (identifier "SBORROW8") (argument_list "(lVar4,lVar6)" (( "(") (identifier "lVar4") (, ",") (identifier "lVar6") () ")"))) (!= "!=") (binary_expression "lVar4 + lVar7 * -2 < 0" (binary_expression "lVar4 + lVar7 * -2" (identifier "lVar4") (+ "+") (binary_expression "lVar7 * -2" (identifier "lVar7") (* "*") (number_literal "-2"))) (< "<") (number_literal "0")))) () ")")) (compound_statement "{\n        lVar6 = lVar4;\n      }" ({ "{") (expression_statement "lVar6 = lVar4;" (assignment_expression "lVar6 = lVar4" (identifier "lVar6") (= "=") (identifier "lVar4")) (; ";")) (} "}"))) (expression_statement "lVar7 = lVar2 + lVar6 * 8;" (assignment_expression "lVar7 = lVar2 + lVar6 * 8" (identifier "lVar7") (= "=") (binary_expression "lVar2 + lVar6 * 8" (identifier "lVar2") (+ "+") (binary_expression "lVar6 * 8" (identifier "lVar6") (* "*") (number_literal "8")))) (; ";")) (expression_statement "FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);" (call_expression "FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3)" (identifier "FUN_00177b60") (argument_list "(lVar2,lVar7,lVar7,lVar1,lVar3)" (( "(") (identifier "lVar2") (, ",") (identifier "lVar7") (, ",") (identifier "lVar7") (, ",") (identifier "lVar1") (, ",") (identifier "lVar3") () ")"))) (; ";")) (expression_statement "lVar7 = lVar9;" (assignment_expression "lVar7 = lVar9" (identifier "lVar7") (= "=") (identifier "lVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar9 < lVar8)" (( "(") (binary_expression "lVar9 < lVar8" (identifier "lVar9") (< "<") (identifier "lVar8")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void std::
     __merge_sort_with_buffer<var_9::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,var_18::type_1**,var_10::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,var_11>::var_12>var_4>
               (type_1 **__first,long var_6,type_1 **var_22)

{
  long var_23;
  type_1 **ppOVar2;
  var_1<var_2::type_1**,var_3::vector<var_2::type_1*,var_3::allocator<var_2::type_1*>var_4>var_4>
  var_5;
  long var_20;
  long var_7;
  long var_19;
  type_1 **var_16;
  type_1 **var_13;
  long var_15;
  long var_21;
  
  var_7 = var_6 - (long)__first;
  var_23 = (long)var_22 + var_7;
  var_15 = var_7 >> 3;
  var_13 = __first;
  if (var_7 < 0x31) {
    var_8<var_9::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,var_10::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,var_11>::var_12>var_4>
              ();
    return;
  }
  do {
    var_16 = var_13 + 7;
    var_8<var_9::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,var_10::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,var_11>::var_12>var_4>
              (var_13,var_16);
    var_13 = var_16;
  } while (0x30 < var_6 - (long)var_16);
  var_8<var_9::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,var_10::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,var_11>::var_12>var_4>
            (var_16,var_6);
  if (0x38 < var_7) {
    var_7 = 7;
    do {
      var_19 = var_7 * 2;
      var_20 = var_15;
      var_16 = __first;
      ppOVar2 = var_22;
      var_13 = __first;
      if (var_14(var_15,var_19) == var_15 + var_7 * -2 < 0) {
        do {
          var_13 = var_16 + var_7 * 2;
          ppOVar2 = var_17<var_9::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,var_18::type_1**,var_10::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,var_11>::var_12>var_4>
                              (var_16,var_13 + -var_7,var_13 + -var_7,var_13,ppOVar2);
          var_20 = var_6 - (long)var_13 >> 3;
          var_16 = var_13;
        } while (var_19 <= var_20);
      }
      if (var_7 <= var_20) {
        var_20 = var_7;
      }
      var_21 = var_7 * 4;
      var_17<var_9::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,var_18::type_1**,var_10::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,var_11>::var_12>var_4>
                (var_13,var_13 + var_20,var_13 + var_20,var_6,ppOVar2);
      var_13 = var_22;
      var_5._M_current = __first;
      if (var_15 < var_21) {
        if (var_15 == var_19 || var_14(var_15,var_19) != var_15 + var_7 * -2 < 0) {
          var_19 = var_15;
        }
        var_17<var_2::type_1**,var_10::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,var_10::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,var_11>::var_12>var_4>
                  (var_22,var_22 + var_19,var_22 + var_19,var_23,__first);
        return;
      }
      do {
        var_16 = var_13 + var_7 * 4;
        var_5 = var_17<var_2::type_1**,var_10::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,var_10::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,var_11>::var_12>var_4>
                          (var_13,var_16 + var_7 * -2,var_16 + var_7 * -2,var_16,
                           var_5._M_current);
        var_20 = var_23 - (long)var_16 >> 3;
        var_13 = var_16;
      } while (var_21 <= var_20);
      if (var_20 == var_19 || var_14(var_20,var_19) != var_20 + var_7 * -2 < 0) {
        var_19 = var_20;
      }
      var_17<var_2::type_1**,var_10::var_1<var_2::type_1**,var_3::vector<var_2::type_1*>var_4>,var_10::__ops::_Iter_comp_iter<(anonymous_namespace)::Target_powerpc<64,var_11>::var_12>var_4>
                (var_16,var_16 + var_19,var_16 + var_19,var_23,var_5._M_current);
      var_7 = var_21;
    } while (var_21 < var_15);
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier)))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (return_statement))))

void MASKED(long param_1,long param_2,long param_3)

{
  long lVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  
  lVar5 = param_2 - param_1;
  lVar1 = param_3 + lVar5;
  lVar8 = lVar5 >> 3;
  lVar7 = param_1;
  if (lVar5 < 0x31) {
    FUN_00177f60();
    return;
  }
  do {
    lVar6 = lVar7 + 0x38;
    FUN_00177f60(lVar7,lVar6);
    lVar7 = lVar6;
  } while (0x30 < param_2 - lVar6);
  FUN_00177f60(lVar6,param_2);
  if (0x38 < lVar5) {
    lVar7 = 7;
    do {
      lVar6 = lVar7 * 2;
      lVar3 = lVar8;
      lVar2 = param_3;
      lVar5 = param_1;
      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {
        lVar9 = param_1;
        do {
          lVar5 = lVar9 + lVar7 * 0x10;
          lVar3 = lVar5 + lVar7 * -8;
          lVar2 = FUN_00177dc0(lVar9,lVar3,lVar3,lVar5,lVar2);
          lVar3 = param_2 - lVar5 >> 3;
          lVar9 = lVar5;
        } while (lVar6 <= lVar3);
      }
      if (lVar7 <= lVar3) {
        lVar3 = lVar7;
      }
      lVar9 = lVar7 * 4;
      lVar3 = lVar5 + lVar3 * 8;
      FUN_00177dc0(lVar5,lVar3,lVar3,param_2,lVar2);
      if (lVar8 < lVar9) {
        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {
          lVar6 = lVar8;
        }
        lVar7 = param_3 + lVar6 * 8;
        FUN_00177b60(param_3,lVar7,lVar7,lVar1,param_1);
        return;
      }
      lVar5 = param_3;
      lVar3 = param_1;
      do {
        lVar2 = lVar5 + lVar7 * 0x20;
        lVar4 = lVar2 + lVar7 * -0x10;
        lVar3 = FUN_00177b60(lVar5,lVar4,lVar4,lVar2,lVar3);
        lVar4 = lVar1 - lVar2 >> 3;
        lVar5 = lVar2;
      } while (lVar9 <= lVar4);
      if (lVar4 == lVar6 || SBORROW8(lVar4,lVar6) != lVar4 + lVar7 * -2 < 0) {
        lVar6 = lVar4;
      }
      lVar7 = lVar2 + lVar6 * 8;
      FUN_00177b60(lVar2,lVar7,lVar7,lVar1,lVar3);
      lVar7 = lVar9;
    } while (lVar9 < lVar8);
  }
  return;
}

