
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name:
   __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,
   std::vector<gold::Input_section_info> >, gold::Input_section_info*,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter> > */

void std::
     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
                        __last,Input_section_info *__buffer,
               _Iter_comp_iter<gold::Input_section_sorter> __comp)

{
  Input_section_info *__last2;
  Input_section_info *__last2_00;
  Input_section_info *pIVar1;
  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
  _Var2;
  long lVar3;
  long lVar4;
  long lVar5;
  long lVar6;
  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
  _Var7;
  long lVar8;
  long lVar9;
  
  lVar9 = (long)__last._M_current - (long)__first._M_current;
  lVar8 = (lVar9 >> 4) * -0x3333333333333333;
  __last2 = (Input_section_info *)((long)__buffer + lVar9);
  _Var2._M_current = __first._M_current;
  if (lVar9 < 0x1e1) {
    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
              (__first,__last,__comp);
    return;
  }
  do {
    _Var7._M_current = _Var2._M_current + 7;
    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
              (_Var2,_Var7,__comp);
    _Var2._M_current = _Var7._M_current;
  } while (0x1e0 < (long)__last._M_current - (long)_Var7._M_current);
  __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
            (_Var7,__last,__comp);
  if (0x230 < lVar9) {
    lVar9 = 7;
    do {
      lVar6 = lVar9 * 2;
      lVar4 = lVar8;
      _Var7._M_current = __first._M_current;
      pIVar1 = __buffer;
      _Var2._M_current = __first._M_current;
      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar9 * -2 < 0) {
        do {
          _Var2._M_current = _Var7._M_current + lVar9 * 2;
          pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,
                              __comp);
          lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4;
          lVar4 = lVar3 * -0x3333333333333333;
          _Var7._M_current = _Var2._M_current;
        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);
      }
      if (lVar9 <= lVar4) {
        lVar4 = lVar9;
      }
      lVar3 = lVar9 * 4;
      __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
                (_Var2,_Var2._M_current + lVar4,_Var2._M_current + lVar4,__last,pIVar1,__comp);
      pIVar1 = __buffer;
      _Var2._M_current = __first._M_current;
      if (lVar8 < lVar3) {
        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0) {
          lVar6 = lVar8;
        }
        __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
                  (__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp);
        return;
      }
      do {
        __last2_00 = pIVar1 + lVar9 * 4;
        _Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
                          (pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp);
        lVar4 = (long)__last2 - (long)__last2_00 >> 4;
        lVar5 = lVar4 * -0x3333333333333333;
        pIVar1 = __last2_00;
      } while (lVar3 == lVar5 || SBORROW8(lVar3,lVar5) != lVar3 + lVar4 * 0x3333333333333333 < 0);
      lVar9 = lVar5 + lVar9 * -2;
      if (lVar9 == 0 || SBORROW8(lVar5,lVar6) != lVar9 < 0) {
        lVar6 = lVar5;
      }
      __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>
                (__last2_00,__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp);
      lVar9 = lVar3;
    } while (lVar3 < lVar8);
  }
  return;
}



void FUN_00274050(long param_1,long param_2,long param_3,undefined8 param_4)

{
  long lVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  long lVar10;
  
  lVar10 = param_2 - param_1;
  lVar8 = (lVar10 >> 4) * -0x3333333333333333;
  lVar1 = param_3 + lVar10;
  lVar7 = param_1;
  if (lVar10 < 0x1e1) {
    FUN_00270d60(param_1,param_2,param_4);
    return;
  }
  do {
    lVar6 = lVar7 + 0x230;
    FUN_00270d60(lVar7,lVar6,param_4);
    lVar7 = lVar6;
  } while (0x1e0 < param_2 - lVar6);
  FUN_00270d60(lVar6,param_2,param_4);
  if (0x230 < lVar10) {
    lVar7 = 7;
    do {
      lVar6 = lVar7 * 2;
      lVar4 = lVar8;
      lVar2 = param_3;
      lVar10 = param_1;
      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {
        lVar9 = param_1;
        do {
          lVar10 = lVar9 + lVar7 * 0xa0;
          lVar4 = lVar9 + lVar7 * 0x50;
          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);
          lVar3 = param_2 - lVar10 >> 4;
          lVar4 = lVar3 * -0x3333333333333333;
          lVar9 = lVar10;
        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);
      }
      if (lVar7 <= lVar4) {
        lVar4 = lVar7;
      }
      lVar9 = lVar7 * 4;
      lVar4 = lVar4 * 0x50 + lVar10;
      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);
      if (lVar8 < lVar9) {
        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {
          lVar6 = lVar8;
        }
        lVar7 = lVar6 * 0x50 + param_3;
        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);
        return;
      }
      lVar10 = param_3;
      lVar4 = param_1;
      do {
        lVar2 = lVar10 + lVar7 * 0x140;
        lVar3 = lVar10 + lVar7 * 0xa0;
        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);
        lVar3 = lVar1 - lVar2 >> 4;
        lVar5 = lVar3 * -0x3333333333333333;
        lVar10 = lVar2;
      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);
      lVar7 = lVar5 + lVar7 * -2;
      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {
        lVar6 = lVar5;
      }
      lVar7 = lVar6 * 0x50 + lVar2;
      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);
      lVar7 = lVar9;
    } while (lVar9 < lVar8);
  }
  return;
}


MOV RAX,-0x3333333333333333
PUSH R15
PUSH R14
PUSH R13
MOV R13,RSI
SUB R13,RDI
PUSH R12
MOV R12,R13
PUSH RBP
SAR R12,0x4
PUSH RBX
IMUL R12,RAX
LEA RAX,[RDX + R13*0x1]
SUB RSP,0x38
MOV qword ptr [RSP + 0x28],R12
MOV qword ptr [RSP],RAX
CMP R13,0x1e0
JLE 0x002742a0
MOV qword ptr [RSP + 0x18],RDX
MOV RBP,RCX
MOV R15,RSI
MOV qword ptr [RSP + 0x10],RDI
NOP dword ptr [RAX + RAX*0x1]
LEA RBX,[RDI + 0x230]
MOV RDX,RBP
MOV RSI,RBX
CALL 0x00270d60
MOV RAX,R15
MOV RDI,RBX
SUB RAX,RBX
CMP RAX,0x1e0
JG 0x002740a8
MOV RDX,RBP
MOV RSI,R15
CALL 0x00270d60
CMP R13,0x230
JLE 0x0027422c
MOV qword ptr [RSP + 0x8],R15
MOV RBX,qword ptr [RSP + 0x28]
MOV R12D,0x7
NOP dword ptr [RAX + RAX*0x1]
LEA R15,[R12 + R12*0x1]
CMP RBX,R15
JL 0x00274288
LEA R13,[R12 + R12*0x4]
LEA R14,[R15 + R12*0x8]
MOV R8,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RSP + 0x10]
SHL R13,0x4
SHL R14,0x4
MOV qword ptr [RSP + 0x20],R13
NOP dword ptr [RAX]
MOV RAX,qword ptr [RSP + 0x20]
LEA R13,[RDI + R14*0x1]
MOV R9,RBP
MOV RCX,R13
LEA RSI,[RDI + RAX*0x1]
MOV RDX,RSI
CALL 0x00273620
MOV RDX,qword ptr [RSP + 0x8]
MOV RDI,R13
MOV R8,RAX
MOV RAX,-0x3333333333333333
SUB RDX,R13
SAR RDX,0x4
IMUL RDX,RAX
CMP R15,RDX
JLE 0x00274128
CMP R12,RDX
MOV RCX,qword ptr [RSP + 0x8]
MOV R9,RBP
MOV RDI,R13
CMOVLE RDX,R12
SHL R12,0x2
LEA RSI,[RDX + RDX*0x4]
SHL RSI,0x4
ADD RSI,R13
MOV RDX,RSI
CALL 0x00273620
MOV R8,qword ptr [RSP + 0x10]
CMP RBX,R12
JL 0x00274240
LEA R13,[R15 + R15*0x4]
LEA R14,[R12 + R12*0x4]
MOV RDI,qword ptr [RSP + 0x18]
SHL R13,0x4
SHL R14,0x4
MOV qword ptr [RSP + 0x20],R13
NOP dword ptr [RAX]
MOV RAX,qword ptr [RSP + 0x20]
LEA R13,[RDI + R14*0x1]
MOV R9,RBP
MOV RCX,R13
LEA RSI,[RDI + RAX*0x1]
MOV RDX,RSI
CALL 0x00273b50
MOV RDX,qword ptr [RSP]
MOV RDI,R13
MOV R8,RAX
MOV RAX,-0x3333333333333333
SUB RDX,R13
SAR RDX,0x4
IMUL RDX,RAX
CMP R12,RDX
JLE 0x002741c0
CMP RDX,R15
MOV R10,R15
MOV RCX,qword ptr [RSP]
MOV R9,RBP
CMOVLE R10,RDX
LEA RSI,[R10 + R10*0x4]
SHL RSI,0x4
ADD RSI,R13
MOV RDX,RSI
CALL 0x00273b50
CMP RBX,R12
JG 0x002740f8
ADD RSP,0x38
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RAX,qword ptr [RSP + 0x28]
MOV RBX,R15
MOV RDI,qword ptr [RSP + 0x18]
MOV R9,RBP
MOV R8,qword ptr [RSP + 0x10]
MOV RCX,qword ptr [RSP]
CMP RAX,R15
CMOVLE RBX,RAX
ADD RSP,0x38
LEA RSI,[RBX + RBX*0x4]
POP RBX
POP RBP
SHL RSI,0x4
POP R12
POP R13
ADD RSI,RDI
POP R14
POP R15
MOV RDX,RSI
JMP 0x00273b50
MOV R8,qword ptr [RSP + 0x18]
MOV RDX,RBX
MOV R13,qword ptr [RSP + 0x10]
JMP 0x00274168
ADD RSP,0x38
MOV RDX,RCX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x00270d60
(translation_unit "void FUN_00274050(long param_1,long param_2,long param_3,undefined8 param_4)\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  long lVar10;\n  \n  lVar10 = param_2 - param_1;\n  lVar8 = (lVar10 >> 4) * -0x3333333333333333;\n  lVar1 = param_3 + lVar10;\n  lVar7 = param_1;\n  if (lVar10 < 0x1e1) {\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  } while (0x1e0 < param_2 - lVar6);\n  FUN_00270d60(lVar6,param_2,param_4);\n  if (0x230 < lVar10) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00274050(long param_1,long param_2,long param_3,undefined8 param_4)\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  long lVar10;\n  \n  lVar10 = param_2 - param_1;\n  lVar8 = (lVar10 >> 4) * -0x3333333333333333;\n  lVar1 = param_3 + lVar10;\n  lVar7 = param_1;\n  if (lVar10 < 0x1e1) {\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  } while (0x1e0 < param_2 - lVar6);\n  FUN_00270d60(lVar6,param_2,param_4);\n  if (0x230 < lVar10) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00274050(long param_1,long param_2,long param_3,undefined8 param_4)" identifier (parameter_list "(long param_1,long param_2,long param_3,undefined8 param_4)" ( (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) , (parameter_declaration "undefined8 param_4" type_identifier 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  long lVar10;\n  \n  lVar10 = param_2 - param_1;\n  lVar8 = (lVar10 >> 4) * -0x3333333333333333;\n  lVar1 = param_3 + lVar10;\n  lVar7 = param_1;\n  if (lVar10 < 0x1e1) {\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  } while (0x1e0 < param_2 - lVar6);\n  FUN_00270d60(lVar6,param_2,param_4);\n  if (0x230 < lVar10) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\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 ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar10 = param_2 - param_1;" (assignment_expression "lVar10 = param_2 - param_1" identifier = (binary_expression "param_2 - param_1" identifier - identifier)) ;) (expression_statement "lVar8 = (lVar10 >> 4) * -0x3333333333333333;" (assignment_expression "lVar8 = (lVar10 >> 4) * -0x3333333333333333" identifier = (binary_expression "(lVar10 >> 4) * -0x3333333333333333" (parenthesized_expression "(lVar10 >> 4)" ( (binary_expression "lVar10 >> 4" identifier >> number_literal) )) * number_literal)) ;) (expression_statement "lVar1 = param_3 + lVar10;" (assignment_expression "lVar1 = param_3 + lVar10" identifier = (binary_expression "param_3 + lVar10" identifier + identifier)) ;) (expression_statement "lVar7 = param_1;" (assignment_expression "lVar7 = param_1" identifier = identifier) ;) (if_statement "if (lVar10 < 0x1e1) {\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }" if (parenthesized_expression "(lVar10 < 0x1e1)" ( (binary_expression "lVar10 < 0x1e1" identifier < number_literal) )) (compound_statement "{\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }" { (expression_statement "FUN_00270d60(param_1,param_2,param_4);" (call_expression "FUN_00270d60(param_1,param_2,param_4)" identifier (argument_list "(param_1,param_2,param_4)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (do_statement "do {\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  } while (0x1e0 < param_2 - lVar6);" do (compound_statement "{\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  }" { (expression_statement "lVar6 = lVar7 + 0x230;" (assignment_expression "lVar6 = lVar7 + 0x230" identifier = (binary_expression "lVar7 + 0x230" identifier + number_literal)) ;) (expression_statement "FUN_00270d60(lVar7,lVar6,param_4);" (call_expression "FUN_00270d60(lVar7,lVar6,param_4)" identifier (argument_list "(lVar7,lVar6,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" identifier = identifier) ;) }) while (parenthesized_expression "(0x1e0 < param_2 - lVar6)" ( (binary_expression "0x1e0 < param_2 - lVar6" number_literal < (binary_expression "param_2 - lVar6" identifier - identifier)) )) ;) (expression_statement "FUN_00270d60(lVar6,param_2,param_4);" (call_expression "FUN_00270d60(lVar6,param_2,param_4)" identifier (argument_list "(lVar6,param_2,param_4)" ( identifier , identifier , identifier ))) ;) (if_statement "if (0x230 < lVar10) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }" if (parenthesized_expression "(0x230 < lVar10)" ( (binary_expression "0x230 < lVar10" number_literal < identifier) )) (compound_statement "{\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\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      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);" do (compound_statement "{\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    }" { (expression_statement "lVar6 = lVar7 * 2;" (assignment_expression "lVar6 = lVar7 * 2" identifier = (binary_expression "lVar7 * 2" identifier * number_literal)) ;) (expression_statement "lVar4 = lVar8;" (assignment_expression "lVar4 = lVar8" identifier = identifier) ;) (expression_statement "lVar2 = param_3;" (assignment_expression "lVar2 = param_3" identifier = identifier) ;) (expression_statement "lVar10 = param_1;" (assignment_expression "lVar10 = param_1" identifier = identifier) ;) (if_statement "if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\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          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }" { (expression_statement "lVar9 = param_1;" (assignment_expression "lVar9 = param_1" identifier = identifier) ;) (do_statement "do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);" do (compound_statement "{\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        }" { (expression_statement "lVar10 = lVar9 + lVar7 * 0xa0;" (assignment_expression "lVar10 = lVar9 + lVar7 * 0xa0" identifier = (binary_expression "lVar9 + lVar7 * 0xa0" identifier + (binary_expression "lVar7 * 0xa0" identifier * number_literal))) ;) (expression_statement "lVar4 = lVar9 + lVar7 * 0x50;" (assignment_expression "lVar4 = lVar9 + lVar7 * 0x50" identifier = (binary_expression "lVar9 + lVar7 * 0x50" identifier + (binary_expression "lVar7 * 0x50" identifier * number_literal))) ;) (expression_statement "lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);" (assignment_expression "lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4)" identifier = (call_expression "FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4)" identifier (argument_list "(lVar9,lVar4,lVar4,lVar10,lVar2,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "lVar3 = param_2 - lVar10 >> 4;" (assignment_expression "lVar3 = param_2 - lVar10 >> 4" identifier = (binary_expression "param_2 - lVar10 >> 4" (binary_expression "param_2 - lVar10" identifier - identifier) >> number_literal)) ;) (expression_statement "lVar4 = lVar3 * -0x3333333333333333;" (assignment_expression "lVar4 = lVar3 * -0x3333333333333333" identifier = (binary_expression "lVar3 * -0x3333333333333333" identifier * number_literal)) ;) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" identifier = identifier) ;) }) while (parenthesized_expression "(lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0)" ( (binary_expression "lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar6 == lVar4" identifier == identifier) || (binary_expression "SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar6,lVar4)" identifier (argument_list "(lVar6,lVar4)" ( identifier , identifier ))) != (binary_expression "lVar6 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar6 + lVar3 * 0x3333333333333333" identifier + (binary_expression "lVar3 * 0x3333333333333333" identifier * number_literal)) < number_literal))) )) ;) })) (if_statement "if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }" if (parenthesized_expression "(lVar7 <= lVar4)" ( (binary_expression "lVar7 <= lVar4" identifier <= identifier) )) (compound_statement "{\n        lVar4 = lVar7;\n      }" { (expression_statement "lVar4 = lVar7;" (assignment_expression "lVar4 = lVar7" identifier = identifier) ;) })) (expression_statement "lVar9 = lVar7 * 4;" (assignment_expression "lVar9 = lVar7 * 4" identifier = (binary_expression "lVar7 * 4" identifier * number_literal)) ;) (expression_statement "lVar4 = lVar4 * 0x50 + lVar10;" (assignment_expression "lVar4 = lVar4 * 0x50 + lVar10" identifier = (binary_expression "lVar4 * 0x50 + lVar10" (binary_expression "lVar4 * 0x50" identifier * number_literal) + identifier)) ;) (expression_statement "FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);" (call_expression "FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4)" identifier (argument_list "(lVar10,lVar4,lVar4,param_2,lVar2,param_4)" ( identifier , 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 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\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 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\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 = lVar6 * 0x50 + param_3;" (assignment_expression "lVar7 = lVar6 * 0x50 + param_3" identifier = (binary_expression "lVar6 * 0x50 + param_3" (binary_expression "lVar6 * 0x50" identifier * number_literal) + identifier)) ;) (expression_statement "FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);" (call_expression "FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4)" identifier (argument_list "(param_3,lVar7,lVar7,lVar1,param_1,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "lVar10 = param_3;" (assignment_expression "lVar10 = param_3" identifier = identifier) ;) (expression_statement "lVar4 = param_1;" (assignment_expression "lVar4 = param_1" identifier = identifier) ;) (do_statement "do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);" do (compound_statement "{\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      }" { (expression_statement "lVar2 = lVar10 + lVar7 * 0x140;" (assignment_expression "lVar2 = lVar10 + lVar7 * 0x140" identifier = (binary_expression "lVar10 + lVar7 * 0x140" identifier + (binary_expression "lVar7 * 0x140" identifier * number_literal))) ;) (expression_statement "lVar3 = lVar10 + lVar7 * 0xa0;" (assignment_expression "lVar3 = lVar10 + lVar7 * 0xa0" identifier = (binary_expression "lVar10 + lVar7 * 0xa0" identifier + (binary_expression "lVar7 * 0xa0" identifier * number_literal))) ;) (expression_statement "lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);" (assignment_expression "lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4)" identifier = (call_expression "FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4)" identifier (argument_list "(lVar10,lVar3,lVar3,lVar2,lVar4,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "lVar3 = lVar1 - lVar2 >> 4;" (assignment_expression "lVar3 = lVar1 - lVar2 >> 4" identifier = (binary_expression "lVar1 - lVar2 >> 4" (binary_expression "lVar1 - lVar2" identifier - identifier) >> number_literal)) ;) (expression_statement "lVar5 = lVar3 * -0x3333333333333333;" (assignment_expression "lVar5 = lVar3 * -0x3333333333333333" identifier = (binary_expression "lVar3 * -0x3333333333333333" identifier * number_literal)) ;) (expression_statement "lVar10 = lVar2;" (assignment_expression "lVar10 = lVar2" identifier = identifier) ;) }) while (parenthesized_expression "(lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0)" ( (binary_expression "lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar9 == lVar5" identifier == identifier) || (binary_expression "SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar9,lVar5)" identifier (argument_list "(lVar9,lVar5)" ( identifier , identifier ))) != (binary_expression "lVar9 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar9 + lVar3 * 0x3333333333333333" identifier + (binary_expression "lVar3 * 0x3333333333333333" identifier * number_literal)) < number_literal))) )) ;) (expression_statement "lVar7 = lVar5 + lVar7 * -2;" (assignment_expression "lVar7 = lVar5 + lVar7 * -2" identifier = (binary_expression "lVar5 + lVar7 * -2" identifier + (binary_expression "lVar7 * -2" identifier * number_literal))) ;) (if_statement "if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }" if (parenthesized_expression "(lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0)" ( (binary_expression "lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0" (binary_expression "lVar7 == 0" identifier == number_literal) || (binary_expression "SBORROW8(lVar5,lVar6) != lVar7 < 0" (call_expression "SBORROW8(lVar5,lVar6)" identifier (argument_list "(lVar5,lVar6)" ( identifier , identifier ))) != (binary_expression "lVar7 < 0" identifier < number_literal))) )) (compound_statement "{\n        lVar6 = lVar5;\n      }" { (expression_statement "lVar6 = lVar5;" (assignment_expression "lVar6 = lVar5" identifier = identifier) ;) })) (expression_statement "lVar7 = lVar6 * 0x50 + lVar2;" (assignment_expression "lVar7 = lVar6 * 0x50 + lVar2" identifier = (binary_expression "lVar6 * 0x50 + lVar2" (binary_expression "lVar6 * 0x50" identifier * number_literal) + identifier)) ;) (expression_statement "FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);" (call_expression "FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4)" identifier (argument_list "(lVar2,lVar7,lVar7,lVar1,lVar4,param_4)" ( identifier , 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::Input_section_info*,\n   std::vector<gold::Input_section_info> >, gold::Input_section_info*,\n   __gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter> > */\n\nvoid std::\n     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __last,Input_section_info *__buffer,\n               _Iter_comp_iter<gold::Input_section_sorter> __comp)\n\n{\n  Input_section_info *__last2;\n  Input_section_info *__last2_00;\n  Input_section_info *pIVar1;\n  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n  _Var2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n  _Var7;\n  long lVar8;\n  long lVar9;\n  \n  lVar9 = (long)__last._M_current - (long)__first._M_current;\n  lVar8 = (lVar9 >> 4) * -0x3333333333333333;\n  __last2 = (Input_section_info *)((long)__buffer + lVar9);\n  _Var2._M_current = __first._M_current;\n  if (lVar9 < 0x1e1) {\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n              (__first,__last,__comp);\n    return;\n  }\n  do {\n    _Var7._M_current = _Var2._M_current + 7;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n              (_Var2,_Var7,__comp);\n    _Var2._M_current = _Var7._M_current;\n  } while (0x1e0 < (long)__last._M_current - (long)_Var7._M_current);\n  __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n            (_Var7,__last,__comp);\n  if (0x230 < lVar9) {\n    lVar9 = 7;\n    do {\n      lVar6 = lVar9 * 2;\n      lVar4 = lVar8;\n      _Var7._M_current = __first._M_current;\n      pIVar1 = __buffer;\n      _Var2._M_current = __first._M_current;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar9 * -2 < 0) {\n        do {\n          _Var2._M_current = _Var7._M_current + lVar9 * 2;\n          pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp);\n          lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          _Var7._M_current = _Var2._M_current;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar9 <= lVar4) {\n        lVar4 = lVar9;\n      }\n      lVar3 = lVar9 * 4;\n      __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (_Var2,_Var2._M_current + lVar4,_Var2._M_current + lVar4,__last,pIVar1,__comp);\n      pIVar1 = __buffer;\n      _Var2._M_current = __first._M_current;\n      if (lVar8 < lVar3) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp);\n        return;\n      }\n      do {\n        __last2_00 = pIVar1 + lVar9 * 4;\n        _Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                          (pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp);\n        lVar4 = (long)__last2 - (long)__last2_00 >> 4;\n        lVar5 = lVar4 * -0x3333333333333333;\n        pIVar1 = __last2_00;\n      } while (lVar3 == lVar5 || SBORROW8(lVar3,lVar5) != lVar3 + lVar4 * 0x3333333333333333 < 0);\n      lVar9 = lVar5 + lVar9 * -2;\n      if (lVar9 == 0 || SBORROW8(lVar5,lVar6) != lVar9 < 0) {\n        lVar6 = lVar5;\n      }\n      __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last2_00,__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp);\n      lVar9 = lVar3;\n    } while (lVar3 < lVar8);\n  }\n  return;\n}\n\n" comment comment (declaration "void std::\n     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __last,Input_section_info *__buffer,\n               _Iter_comp_iter<gold::Input_section_sorter> __comp)\n\n{\n  Input_section_info *__last2;" primitive_type (ERROR "std::\n     __merge_sort_with_buffer<__gnu_cxx::__normal_iterator<gold::" identifier : : identifier < identifier : : identifier < identifier : :) identifier (ERROR "*" *) , (ERROR "_std::vector<gold::Input_section_info>" identifier : : identifier < identifier : : identifier >) identifier (ERROR ">" >) , (ERROR "_gold::" identifier : :) identifier (ERROR "*" *) , (ERROR "___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __last,Input_section_info *__buffer,\n               _Iter_comp_iter<gold::Input_section_sorter> __comp)\n\n{\n  Input_section_info" identifier : : identifier : : identifier < identifier : : identifier > (function_declarator "_>\n               (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __last,Input_section_info *__buffer,\n               _Iter_comp_iter<gold::Input_section_sorter> __comp)" identifier (ERROR ">" >) (parameter_list "(__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                __first,__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                        __last,Input_section_info *__buffer,\n               _Iter_comp_iter<gold::Input_section_sorter> __comp)" ( (parameter_declaration "__normal_iterator<gold::Input_section_info*" type_identifier (ERROR "<gold::Input_section_info" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::vector<gold::Input_section_info" type_identifier (ERROR "::vector<gold::" : : identifier < identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Input_section_info>_>_>\n                __first" type_identifier (ERROR "::allocator<gold::Input_section_info>_>_>" : : identifier < identifier : : identifier > identifier > identifier >) identifier) , (parameter_declaration "__normal_iterator<gold::Input_section_info*" type_identifier (ERROR "<gold::Input_section_info" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::vector<gold::Input_section_info" type_identifier (ERROR "::vector<gold::" : : identifier < identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Input_section_info>_>_>\n                        __last" type_identifier (ERROR "::allocator<gold::Input_section_info>_>_>" : : identifier < identifier : : identifier > identifier > identifier >) identifier) , (parameter_declaration "Input_section_info *__buffer" type_identifier (pointer_declarator "*__buffer" * identifier)) , (parameter_declaration "_Iter_comp_iter<gold::Input_section_sorter> __comp" type_identifier (ERROR "<gold::Input_section_sorter>" < identifier : : identifier >) identifier) ))) { identifier) (pointer_declarator "*__last2" * identifier) ;) (declaration "Input_section_info *__last2_00;" type_identifier (pointer_declarator "*__last2_00" * identifier) ;) (declaration "Input_section_info *pIVar1;" type_identifier (pointer_declarator "*pIVar1" * identifier) ;) (ERROR "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info," (binary_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) : : identifier ,) (labeled_statement "_std::allocator<gold::Input_section_info>_>_>\n  _Var2;" statement_identifier (ERROR "::allocator<gold:" : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Input_section_info>_>_>\n  _Var2;" (binary_expression "Input_section_info>_>_>\n  _Var2" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > 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 ;) (ERROR "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info," (binary_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) : : identifier ,) (labeled_statement "_std::allocator<gold::Input_section_info>_>_>\n  _Var7;" statement_identifier (ERROR "::allocator<gold:" : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Input_section_info>_>_>\n  _Var7;" (binary_expression "Input_section_info>_>_>\n  _Var7" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > identifier) ;)) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar9 = (long)__last._M_current - (long)__first._M_current;" (assignment_expression "lVar9 = (long)__last._M_current - (long)__first._M_current" identifier = (binary_expression "(long)__last._M_current - (long)__first._M_current" (cast_expression "(long)__last._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__last._M_current" identifier . field_identifier)) - (cast_expression "(long)__first._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__first._M_current" identifier . field_identifier)))) ;) (expression_statement "lVar8 = (lVar9 >> 4) * -0x3333333333333333;" (assignment_expression "lVar8 = (lVar9 >> 4) * -0x3333333333333333" identifier = (binary_expression "(lVar9 >> 4) * -0x3333333333333333" (parenthesized_expression "(lVar9 >> 4)" ( (binary_expression "lVar9 >> 4" identifier >> number_literal) )) * number_literal)) ;) (expression_statement "__last2 = (Input_section_info *)((long)__buffer + lVar9);" (assignment_expression "__last2 = (Input_section_info *)((long)__buffer + lVar9)" identifier = (cast_expression "(Input_section_info *)((long)__buffer + lVar9)" ( (type_descriptor "Input_section_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__buffer + lVar9)" ( (binary_expression "(long)__buffer + lVar9" (cast_expression "(long)__buffer" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (expression_statement "_Var2._M_current = __first._M_current;" (assignment_expression "_Var2._M_current = __first._M_current" (field_expression "_Var2._M_current" identifier . field_identifier) = (field_expression "__first._M_current" identifier . field_identifier)) ;) (if_statement "if (lVar9 < 0x1e1) {\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n              (__first,__last,__comp);\n    return;\n  }" if (parenthesized_expression "(lVar9 < 0x1e1)" ( (binary_expression "lVar9 < 0x1e1" identifier < number_literal) )) (compound_statement "{\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n              (__first,__last,__comp);\n    return;\n  }" { (expression_statement "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n              (__first,__last,__comp);" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n              (__first,__last,__comp)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Input_section_sorter" : : identifier) > identifier) > (parenthesized_expression "(__first,__last,__comp)" ( (comma_expression "__first,__last,__comp" identifier , (comma_expression "__last,__comp" identifier , identifier)) ))) ;) (return_statement "return;" return ;) })) (do_statement "do {\n    _Var7._M_current = _Var2._M_current + 7;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n              (_Var2,_Var7,__comp);\n    _Var2._M_current = _Var7._M_current;\n  } while (0x1e0 < (long)__last._M_current - (long)_Var7._M_current);" do (compound_statement "{\n    _Var7._M_current = _Var2._M_current + 7;\n    __insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n              (_Var2,_Var7,__comp);\n    _Var2._M_current = _Var7._M_current;\n  }" { (expression_statement "_Var7._M_current = _Var2._M_current + 7;" (assignment_expression "_Var7._M_current = _Var2._M_current + 7" (field_expression "_Var7._M_current" identifier . field_identifier) = (binary_expression "_Var2._M_current + 7" (field_expression "_Var2._M_current" identifier . field_identifier) + number_literal)) ;) (expression_statement "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n              (_Var2,_Var7,__comp);" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n              (_Var2,_Var7,__comp)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Input_section_sorter" : : identifier) > identifier) > (parenthesized_expression "(_Var2,_Var7,__comp)" ( (comma_expression "_Var2,_Var7,__comp" identifier , (comma_expression "_Var7,__comp" identifier , identifier)) ))) ;) (expression_statement "_Var2._M_current = _Var7._M_current;" (assignment_expression "_Var2._M_current = _Var7._M_current" (field_expression "_Var2._M_current" identifier . field_identifier) = (field_expression "_Var7._M_current" identifier . field_identifier)) ;) }) while (parenthesized_expression "(0x1e0 < (long)__last._M_current - (long)_Var7._M_current)" ( (binary_expression "0x1e0 < (long)__last._M_current - (long)_Var7._M_current" number_literal < (binary_expression "(long)__last._M_current - (long)_Var7._M_current" (cast_expression "(long)__last._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__last._M_current" identifier . field_identifier)) - (cast_expression "(long)_Var7._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "_Var7._M_current" identifier . field_identifier)))) )) ;) (expression_statement "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n            (_Var7,__last,__comp);" (update_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n            (_Var7,__last,__comp)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n            (_Var7,__last,__comp)" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__insertion_sort<__gnu_cxx::__normal_iterator<gold" (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Input_section_sorter" : : identifier) > identifier) > (parenthesized_expression "(_Var7,__last,__comp)" ( (comma_expression "_Var7,__last,__comp" identifier , (comma_expression "__last,__comp" identifier , identifier)) ))) --) ;) (if_statement "if (0x230 < lVar9) {\n    lVar9 = 7;\n    do {\n      lVar6 = lVar9 * 2;\n      lVar4 = lVar8;\n      _Var7._M_current = __first._M_current;\n      pIVar1 = __buffer;\n      _Var2._M_current = __first._M_current;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar9 * -2 < 0) {\n        do {\n          _Var2._M_current = _Var7._M_current + lVar9 * 2;\n          pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp);\n          lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          _Var7._M_current = _Var2._M_current;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar9 <= lVar4) {\n        lVar4 = lVar9;\n      }\n      lVar3 = lVar9 * 4;\n      __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (_Var2,_Var2._M_current + lVar4,_Var2._M_current + lVar4,__last,pIVar1,__comp);\n      pIVar1 = __buffer;\n      _Var2._M_current = __first._M_current;\n      if (lVar8 < lVar3) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp);\n        return;\n      }\n      do {\n        __last2_00 = pIVar1 + lVar9 * 4;\n        _Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                          (pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp);\n        lVar4 = (long)__last2 - (long)__last2_00 >> 4;\n        lVar5 = lVar4 * -0x3333333333333333;\n        pIVar1 = __last2_00;\n      } while (lVar3 == lVar5 || SBORROW8(lVar3,lVar5) != lVar3 + lVar4 * 0x3333333333333333 < 0);\n      lVar9 = lVar5 + lVar9 * -2;\n      if (lVar9 == 0 || SBORROW8(lVar5,lVar6) != lVar9 < 0) {\n        lVar6 = lVar5;\n      }\n      __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last2_00,__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp);\n      lVar9 = lVar3;\n    } while (lVar3 < lVar8);\n  }" if (parenthesized_expression "(0x230 < lVar9)" ( (binary_expression "0x230 < lVar9" number_literal < identifier) )) (compound_statement "{\n    lVar9 = 7;\n    do {\n      lVar6 = lVar9 * 2;\n      lVar4 = lVar8;\n      _Var7._M_current = __first._M_current;\n      pIVar1 = __buffer;\n      _Var2._M_current = __first._M_current;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar9 * -2 < 0) {\n        do {\n          _Var2._M_current = _Var7._M_current + lVar9 * 2;\n          pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp);\n          lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          _Var7._M_current = _Var2._M_current;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar9 <= lVar4) {\n        lVar4 = lVar9;\n      }\n      lVar3 = lVar9 * 4;\n      __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (_Var2,_Var2._M_current + lVar4,_Var2._M_current + lVar4,__last,pIVar1,__comp);\n      pIVar1 = __buffer;\n      _Var2._M_current = __first._M_current;\n      if (lVar8 < lVar3) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp);\n        return;\n      }\n      do {\n        __last2_00 = pIVar1 + lVar9 * 4;\n        _Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                          (pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp);\n        lVar4 = (long)__last2 - (long)__last2_00 >> 4;\n        lVar5 = lVar4 * -0x3333333333333333;\n        pIVar1 = __last2_00;\n      } while (lVar3 == lVar5 || SBORROW8(lVar3,lVar5) != lVar3 + lVar4 * 0x3333333333333333 < 0);\n      lVar9 = lVar5 + lVar9 * -2;\n      if (lVar9 == 0 || SBORROW8(lVar5,lVar6) != lVar9 < 0) {\n        lVar6 = lVar5;\n      }\n      __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last2_00,__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp);\n      lVar9 = lVar3;\n    } while (lVar3 < lVar8);\n  }" { (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" identifier = number_literal) ;) (do_statement "do {\n      lVar6 = lVar9 * 2;\n      lVar4 = lVar8;\n      _Var7._M_current = __first._M_current;\n      pIVar1 = __buffer;\n      _Var2._M_current = __first._M_current;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar9 * -2 < 0) {\n        do {\n          _Var2._M_current = _Var7._M_current + lVar9 * 2;\n          pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp);\n          lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          _Var7._M_current = _Var2._M_current;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar9 <= lVar4) {\n        lVar4 = lVar9;\n      }\n      lVar3 = lVar9 * 4;\n      __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (_Var2,_Var2._M_current + lVar4,_Var2._M_current + lVar4,__last,pIVar1,__comp);\n      pIVar1 = __buffer;\n      _Var2._M_current = __first._M_current;\n      if (lVar8 < lVar3) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp);\n        return;\n      }\n      do {\n        __last2_00 = pIVar1 + lVar9 * 4;\n        _Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                          (pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp);\n        lVar4 = (long)__last2 - (long)__last2_00 >> 4;\n        lVar5 = lVar4 * -0x3333333333333333;\n        pIVar1 = __last2_00;\n      } while (lVar3 == lVar5 || SBORROW8(lVar3,lVar5) != lVar3 + lVar4 * 0x3333333333333333 < 0);\n      lVar9 = lVar5 + lVar9 * -2;\n      if (lVar9 == 0 || SBORROW8(lVar5,lVar6) != lVar9 < 0) {\n        lVar6 = lVar5;\n      }\n      __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last2_00,__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp);\n      lVar9 = lVar3;\n    } while (lVar3 < lVar8);" do (compound_statement "{\n      lVar6 = lVar9 * 2;\n      lVar4 = lVar8;\n      _Var7._M_current = __first._M_current;\n      pIVar1 = __buffer;\n      _Var2._M_current = __first._M_current;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar9 * -2 < 0) {\n        do {\n          _Var2._M_current = _Var7._M_current + lVar9 * 2;\n          pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp);\n          lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          _Var7._M_current = _Var2._M_current;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar9 <= lVar4) {\n        lVar4 = lVar9;\n      }\n      lVar3 = lVar9 * 4;\n      __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (_Var2,_Var2._M_current + lVar4,_Var2._M_current + lVar4,__last,pIVar1,__comp);\n      pIVar1 = __buffer;\n      _Var2._M_current = __first._M_current;\n      if (lVar8 < lVar3) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp);\n        return;\n      }\n      do {\n        __last2_00 = pIVar1 + lVar9 * 4;\n        _Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                          (pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp);\n        lVar4 = (long)__last2 - (long)__last2_00 >> 4;\n        lVar5 = lVar4 * -0x3333333333333333;\n        pIVar1 = __last2_00;\n      } while (lVar3 == lVar5 || SBORROW8(lVar3,lVar5) != lVar3 + lVar4 * 0x3333333333333333 < 0);\n      lVar9 = lVar5 + lVar9 * -2;\n      if (lVar9 == 0 || SBORROW8(lVar5,lVar6) != lVar9 < 0) {\n        lVar6 = lVar5;\n      }\n      __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last2_00,__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp);\n      lVar9 = lVar3;\n    }" { (expression_statement "lVar6 = lVar9 * 2;" (assignment_expression "lVar6 = lVar9 * 2" identifier = (binary_expression "lVar9 * 2" identifier * number_literal)) ;) (expression_statement "lVar4 = lVar8;" (assignment_expression "lVar4 = lVar8" identifier = identifier) ;) (expression_statement "_Var7._M_current = __first._M_current;" (assignment_expression "_Var7._M_current = __first._M_current" (field_expression "_Var7._M_current" identifier . field_identifier) = (field_expression "__first._M_current" identifier . field_identifier)) ;) (expression_statement "pIVar1 = __buffer;" (assignment_expression "pIVar1 = __buffer" identifier = identifier) ;) (expression_statement "_Var2._M_current = __first._M_current;" (assignment_expression "_Var2._M_current = __first._M_current" (field_expression "_Var2._M_current" identifier . field_identifier) = (field_expression "__first._M_current" identifier . field_identifier)) ;) (if_statement "if (SBORROW8(lVar8,lVar6) == lVar8 + lVar9 * -2 < 0) {\n        do {\n          _Var2._M_current = _Var7._M_current + lVar9 * 2;\n          pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp);\n          lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          _Var7._M_current = _Var2._M_current;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }" if (parenthesized_expression "(SBORROW8(lVar8,lVar6) == lVar8 + lVar9 * -2 < 0)" ( (binary_expression "SBORROW8(lVar8,lVar6) == lVar8 + lVar9 * -2 < 0" (call_expression "SBORROW8(lVar8,lVar6)" identifier (argument_list "(lVar8,lVar6)" ( identifier , identifier ))) == (binary_expression "lVar8 + lVar9 * -2 < 0" (binary_expression "lVar8 + lVar9 * -2" identifier + (binary_expression "lVar9 * -2" identifier * number_literal)) < number_literal)) )) (compound_statement "{\n        do {\n          _Var2._M_current = _Var7._M_current + lVar9 * 2;\n          pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp);\n          lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          _Var7._M_current = _Var2._M_current;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }" { (do_statement "do {\n          _Var2._M_current = _Var7._M_current + lVar9 * 2;\n          pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp);\n          lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          _Var7._M_current = _Var2._M_current;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);" do (compound_statement "{\n          _Var2._M_current = _Var7._M_current + lVar9 * 2;\n          pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp);\n          lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          _Var7._M_current = _Var2._M_current;\n        }" { (expression_statement "_Var2._M_current = _Var7._M_current + lVar9 * 2;" (assignment_expression "_Var2._M_current = _Var7._M_current + lVar9 * 2" (field_expression "_Var2._M_current" identifier . field_identifier) = (binary_expression "_Var7._M_current + lVar9 * 2" (field_expression "_Var7._M_current" identifier . field_identifier) + (binary_expression "lVar9 * 2" identifier * number_literal))) ;) (expression_statement "pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp);" (binary_expression "pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                             (_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp)" (binary_expression "pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_" (binary_expression "pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold" (binary_expression "pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx" (binary_expression "pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold" (binary_expression "pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_" (binary_expression "pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" (binary_expression "pIVar1 = __move_merge<__gnu_cxx::__normal_iterator<gold" (assignment_expression "pIVar1 = __move_merge<__gnu_cxx" identifier = (binary_expression "__move_merge<__gnu_cxx" identifier < identifier)) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Input_section_sorter" : : identifier) > identifier) > (parenthesized_expression "(_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp)" ( (comma_expression "_Var7,_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp" identifier , (comma_expression "_Var7._M_current + lVar9,_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp" (binary_expression "_Var7._M_current + lVar9" (field_expression "_Var7._M_current" identifier . field_identifier) + identifier) , (comma_expression "_Var7._M_current + lVar9,_Var2,pIVar1,\n                              __comp" (binary_expression "_Var7._M_current + lVar9" (field_expression "_Var7._M_current" identifier . field_identifier) + identifier) , (comma_expression "_Var2,pIVar1,\n                              __comp" identifier , (comma_expression "pIVar1,\n                              __comp" identifier , identifier))))) ))) ;) (expression_statement "lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4;" (assignment_expression "lVar3 = (long)__last._M_current - (long)_Var2._M_current >> 4" identifier = (binary_expression "(long)__last._M_current - (long)_Var2._M_current >> 4" (binary_expression "(long)__last._M_current - (long)_Var2._M_current" (cast_expression "(long)__last._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__last._M_current" identifier . field_identifier)) - (cast_expression "(long)_Var2._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "_Var2._M_current" identifier . field_identifier))) >> number_literal)) ;) (expression_statement "lVar4 = lVar3 * -0x3333333333333333;" (assignment_expression "lVar4 = lVar3 * -0x3333333333333333" identifier = (binary_expression "lVar3 * -0x3333333333333333" identifier * number_literal)) ;) (expression_statement "_Var7._M_current = _Var2._M_current;" (assignment_expression "_Var7._M_current = _Var2._M_current" (field_expression "_Var7._M_current" identifier . field_identifier) = (field_expression "_Var2._M_current" identifier . field_identifier)) ;) }) while (parenthesized_expression "(lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0)" ( (binary_expression "lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar6 == lVar4" identifier == identifier) || (binary_expression "SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar6,lVar4)" identifier (argument_list "(lVar6,lVar4)" ( identifier , identifier ))) != (binary_expression "lVar6 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar6 + lVar3 * 0x3333333333333333" identifier + (binary_expression "lVar3 * 0x3333333333333333" identifier * number_literal)) < number_literal))) )) ;) })) (if_statement "if (lVar9 <= lVar4) {\n        lVar4 = lVar9;\n      }" if (parenthesized_expression "(lVar9 <= lVar4)" ( (binary_expression "lVar9 <= lVar4" identifier <= identifier) )) (compound_statement "{\n        lVar4 = lVar9;\n      }" { (expression_statement "lVar4 = lVar9;" (assignment_expression "lVar4 = lVar9" identifier = identifier) ;) })) (expression_statement "lVar3 = lVar9 * 4;" (assignment_expression "lVar3 = lVar9 * 4" identifier = (binary_expression "lVar9 * 4" identifier * number_literal)) ;) (expression_statement "__move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (_Var2,_Var2._M_current + lVar4,_Var2._M_current + lVar4,__last,pIVar1,__comp);" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (_Var2,_Var2._M_current + lVar4,_Var2._M_current + lVar4,__last,pIVar1,__comp)" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx::__ops::_Iter_comp_iter<gold" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold::Input_section_info*,___gnu_cxx" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,_gold" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__move_merge<__gnu_cxx::__normal_iterator<gold" (binary_expression "__move_merge<__gnu_cxx" identifier < identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Input_section_sorter" : : identifier) > identifier) > (parenthesized_expression "(_Var2,_Var2._M_current + lVar4,_Var2._M_current + lVar4,__last,pIVar1,__comp)" ( (comma_expression "_Var2,_Var2._M_current + lVar4,_Var2._M_current + lVar4,__last,pIVar1,__comp" identifier , (comma_expression "_Var2._M_current + lVar4,_Var2._M_current + lVar4,__last,pIVar1,__comp" (binary_expression "_Var2._M_current + lVar4" (field_expression "_Var2._M_current" identifier . field_identifier) + identifier) , (comma_expression "_Var2._M_current + lVar4,__last,pIVar1,__comp" (binary_expression "_Var2._M_current + lVar4" (field_expression "_Var2._M_current" identifier . field_identifier) + identifier) , (comma_expression "__last,pIVar1,__comp" identifier , (comma_expression "pIVar1,__comp" identifier , identifier))))) ))) ;) (expression_statement "pIVar1 = __buffer;" (assignment_expression "pIVar1 = __buffer" identifier = identifier) ;) (expression_statement "_Var2._M_current = __first._M_current;" (assignment_expression "_Var2._M_current = __first._M_current" (field_expression "_Var2._M_current" identifier . field_identifier) = (field_expression "__first._M_current" identifier . field_identifier)) ;) (if_statement "if (lVar8 < lVar3) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp);\n        return;\n      }" if (parenthesized_expression "(lVar8 < lVar3)" ( (binary_expression "lVar8 < lVar3" identifier < identifier) )) (compound_statement "{\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp);\n        return;\n      }" { (if_statement "if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0) {\n          lVar6 = lVar8;\n        }" if (parenthesized_expression "(lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0)" ( (binary_expression "lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0" (binary_expression "lVar8 == lVar6" identifier == identifier) || (binary_expression "SBORROW8(lVar8,lVar6) != lVar8 + lVar9 * -2 < 0" (call_expression "SBORROW8(lVar8,lVar6)" identifier (argument_list "(lVar8,lVar6)" ( identifier , identifier ))) != (binary_expression "lVar8 + lVar9 * -2 < 0" (binary_expression "lVar8 + lVar9 * -2" identifier + (binary_expression "lVar9 * -2" identifier * number_literal)) < number_literal))) )) (compound_statement "{\n          lVar6 = lVar8;\n        }" { (expression_statement "lVar6 = lVar8;" (assignment_expression "lVar6 = lVar8" identifier = identifier) ;) })) (ERROR "__move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::" (binary_expression "__move_merge<gold" identifier < identifier) : : (binary_expression "Input_section_info*,___gnu_cxx" identifier * (ERROR "," ,) identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Input_section_info*,_std" identifier * (ERROR "," ,) identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Input_section_info>_>,___gnu_cxx" (binary_expression "Input_section_info>_" identifier > identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp);" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (expression_statement "Input_section_sorter>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp);" (binary_expression "Input_section_sorter>_>\n                  (__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp)" (binary_expression "Input_section_sorter>_" identifier > identifier) > (parenthesized_expression "(__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp)" ( (comma_expression "__buffer,__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp" identifier , (comma_expression "__buffer + lVar6,__buffer + lVar6,__last2,__first,__comp" (binary_expression "__buffer + lVar6" identifier + identifier) , (comma_expression "__buffer + lVar6,__last2,__first,__comp" (binary_expression "__buffer + lVar6" identifier + identifier) , (comma_expression "__last2,__first,__comp" identifier , (comma_expression "__first,__comp" identifier , identifier))))) ))) ;)) (return_statement "return;" return ;) })) (do_statement "do {\n        __last2_00 = pIVar1 + lVar9 * 4;\n        _Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                          (pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp);\n        lVar4 = (long)__last2 - (long)__last2_00 >> 4;\n        lVar5 = lVar4 * -0x3333333333333333;\n        pIVar1 = __last2_00;\n      } while (lVar3 == lVar5 || SBORROW8(lVar3,lVar5) != lVar3 + lVar4 * 0x3333333333333333 < 0);" do (compound_statement "{\n        __last2_00 = pIVar1 + lVar9 * 4;\n        _Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                          (pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp);\n        lVar4 = (long)__last2 - (long)__last2_00 >> 4;\n        lVar5 = lVar4 * -0x3333333333333333;\n        pIVar1 = __last2_00;\n      }" { (expression_statement "__last2_00 = pIVar1 + lVar9 * 4;" (assignment_expression "__last2_00 = pIVar1 + lVar9 * 4" identifier = (binary_expression "pIVar1 + lVar9 * 4" identifier + (binary_expression "lVar9 * 4" identifier * number_literal))) ;) (expression_statement "_Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                          (pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp);" (binary_expression "_Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                          (pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp)" (binary_expression "_Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter>_" (binary_expression "_Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold" (binary_expression "_Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx" (binary_expression "_Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_" (binary_expression "_Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "_Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" (binary_expression "_Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold" (binary_expression "_Var2 = __move_merge<gold::Input_section_info*,___gnu_cxx" (assignment_expression "_Var2 = __move_merge<gold" identifier = (binary_expression "__move_merge<gold" identifier < identifier)) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::__normal_iterator" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Input_section_sorter" : : identifier) > identifier) > (parenthesized_expression "(pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp)" ( (comma_expression "pIVar1,pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp" identifier , (comma_expression "pIVar1 + lVar9 * 2,pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp" (binary_expression "pIVar1 + lVar9 * 2" identifier + (binary_expression "lVar9 * 2" identifier * number_literal)) , (comma_expression "pIVar1 + lVar9 * 2,__last2_00,_Var2,__comp" (binary_expression "pIVar1 + lVar9 * 2" identifier + (binary_expression "lVar9 * 2" identifier * number_literal)) , (comma_expression "__last2_00,_Var2,__comp" identifier , (comma_expression "_Var2,__comp" identifier , identifier))))) ))) ;) (expression_statement "lVar4 = (long)__last2 - (long)__last2_00 >> 4;" (assignment_expression "lVar4 = (long)__last2 - (long)__last2_00 >> 4" identifier = (binary_expression "(long)__last2 - (long)__last2_00 >> 4" (binary_expression "(long)__last2 - (long)__last2_00" (cast_expression "(long)__last2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__last2_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) (expression_statement "lVar5 = lVar4 * -0x3333333333333333;" (assignment_expression "lVar5 = lVar4 * -0x3333333333333333" identifier = (binary_expression "lVar4 * -0x3333333333333333" identifier * number_literal)) ;) (expression_statement "pIVar1 = __last2_00;" (assignment_expression "pIVar1 = __last2_00" identifier = identifier) ;) }) while (parenthesized_expression "(lVar3 == lVar5 || SBORROW8(lVar3,lVar5) != lVar3 + lVar4 * 0x3333333333333333 < 0)" ( (binary_expression "lVar3 == lVar5 || SBORROW8(lVar3,lVar5) != lVar3 + lVar4 * 0x3333333333333333 < 0" (binary_expression "lVar3 == lVar5" identifier == identifier) || (binary_expression "SBORROW8(lVar3,lVar5) != lVar3 + lVar4 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar3,lVar5)" identifier (argument_list "(lVar3,lVar5)" ( identifier , identifier ))) != (binary_expression "lVar3 + lVar4 * 0x3333333333333333 < 0" (binary_expression "lVar3 + lVar4 * 0x3333333333333333" identifier + (binary_expression "lVar4 * 0x3333333333333333" identifier * number_literal)) < number_literal))) )) ;) (expression_statement "lVar9 = lVar5 + lVar9 * -2;" (assignment_expression "lVar9 = lVar5 + lVar9 * -2" identifier = (binary_expression "lVar5 + lVar9 * -2" identifier + (binary_expression "lVar9 * -2" identifier * number_literal))) ;) (if_statement "if (lVar9 == 0 || SBORROW8(lVar5,lVar6) != lVar9 < 0) {\n        lVar6 = lVar5;\n      }" if (parenthesized_expression "(lVar9 == 0 || SBORROW8(lVar5,lVar6) != lVar9 < 0)" ( (binary_expression "lVar9 == 0 || SBORROW8(lVar5,lVar6) != lVar9 < 0" (binary_expression "lVar9 == 0" identifier == number_literal) || (binary_expression "SBORROW8(lVar5,lVar6) != lVar9 < 0" (call_expression "SBORROW8(lVar5,lVar6)" identifier (argument_list "(lVar5,lVar6)" ( identifier , identifier ))) != (binary_expression "lVar9 < 0" identifier < number_literal))) )) (compound_statement "{\n        lVar6 = lVar5;\n      }" { (expression_statement "lVar6 = lVar5;" (assignment_expression "lVar6 = lVar5" identifier = identifier) ;) })) (ERROR "__move_merge<gold::Input_section_info*,___gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>,___gnu_cxx::" (binary_expression "__move_merge<gold" identifier < identifier) : : (binary_expression "Input_section_info*,___gnu_cxx" identifier * (ERROR "," ,) identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Input_section_info*,_std" identifier * (ERROR "," ,) identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Input_section_info>_>,___gnu_cxx" (binary_expression "Input_section_info>_" identifier > identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__ops::_Iter_comp_iter<gold::Input_section_sorter>_>\n                (__last2_00,__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp);" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (expression_statement "Input_section_sorter>_>\n                (__last2_00,__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp);" (binary_expression "Input_section_sorter>_>\n                (__last2_00,__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp)" (binary_expression "Input_section_sorter>_" identifier > identifier) > (parenthesized_expression "(__last2_00,__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp)" ( (comma_expression "__last2_00,__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp" identifier , (comma_expression "__last2_00 + lVar6,__last2_00 + lVar6,__last2,_Var2,__comp" (binary_expression "__last2_00 + lVar6" identifier + identifier) , (comma_expression "__last2_00 + lVar6,__last2,_Var2,__comp" (binary_expression "__last2_00 + lVar6" identifier + identifier) , (comma_expression "__last2,_Var2,__comp" identifier , (comma_expression "_Var2,__comp" identifier , identifier))))) ))) ;)) (expression_statement "lVar9 = lVar3;" (assignment_expression "lVar9 = lVar3" identifier = identifier) ;) }) while (parenthesized_expression "(lVar3 < lVar8)" ( (binary_expression "lVar3 < lVar8" identifier < identifier) )) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00274050(long param_1,long param_2,long param_3,undefined8 param_4)\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  long lVar10;\n  \n  lVar10 = param_2 - param_1;\n  lVar8 = (lVar10 >> 4) * -0x3333333333333333;\n  lVar1 = param_3 + lVar10;\n  lVar7 = param_1;\n  if (lVar10 < 0x1e1) {\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  } while (0x1e0 < param_2 - lVar6);\n  FUN_00270d60(lVar6,param_2,param_4);\n  if (0x230 < lVar10) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00274050(long param_1,long param_2,long param_3,undefined8 param_4)\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  long lVar10;\n  \n  lVar10 = param_2 - param_1;\n  lVar8 = (lVar10 >> 4) * -0x3333333333333333;\n  lVar1 = param_3 + lVar10;\n  lVar7 = param_1;\n  if (lVar10 < 0x1e1) {\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  } while (0x1e0 < param_2 - lVar6);\n  FUN_00270d60(lVar6,param_2,param_4);\n  if (0x230 < lVar10) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00274050(long param_1,long param_2,long param_3,undefined8 param_4)" identifier (parameter_list "(long param_1,long param_2,long param_3,undefined8 param_4)" ( (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) , (parameter_declaration "undefined8 param_4" type_identifier 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  long lVar10;\n  \n  lVar10 = param_2 - param_1;\n  lVar8 = (lVar10 >> 4) * -0x3333333333333333;\n  lVar1 = param_3 + lVar10;\n  lVar7 = param_1;\n  if (lVar10 < 0x1e1) {\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  } while (0x1e0 < param_2 - lVar6);\n  FUN_00270d60(lVar6,param_2,param_4);\n  if (0x230 < lVar10) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\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 ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar10 = param_2 - param_1;" (assignment_expression "lVar10 = param_2 - param_1" identifier = (binary_expression "param_2 - param_1" identifier - identifier)) ;) (expression_statement "lVar8 = (lVar10 >> 4) * -0x3333333333333333;" (assignment_expression "lVar8 = (lVar10 >> 4) * -0x3333333333333333" identifier = (binary_expression "(lVar10 >> 4) * -0x3333333333333333" (parenthesized_expression "(lVar10 >> 4)" ( (binary_expression "lVar10 >> 4" identifier >> number_literal) )) * number_literal)) ;) (expression_statement "lVar1 = param_3 + lVar10;" (assignment_expression "lVar1 = param_3 + lVar10" identifier = (binary_expression "param_3 + lVar10" identifier + identifier)) ;) (expression_statement "lVar7 = param_1;" (assignment_expression "lVar7 = param_1" identifier = identifier) ;) (if_statement "if (lVar10 < 0x1e1) {\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }" if (parenthesized_expression "(lVar10 < 0x1e1)" ( (binary_expression "lVar10 < 0x1e1" identifier < number_literal) )) (compound_statement "{\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }" { (expression_statement "FUN_00270d60(param_1,param_2,param_4);" (call_expression "FUN_00270d60(param_1,param_2,param_4)" identifier (argument_list "(param_1,param_2,param_4)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (do_statement "do {\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  } while (0x1e0 < param_2 - lVar6);" do (compound_statement "{\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  }" { (expression_statement "lVar6 = lVar7 + 0x230;" (assignment_expression "lVar6 = lVar7 + 0x230" identifier = (binary_expression "lVar7 + 0x230" identifier + number_literal)) ;) (expression_statement "FUN_00270d60(lVar7,lVar6,param_4);" (call_expression "FUN_00270d60(lVar7,lVar6,param_4)" identifier (argument_list "(lVar7,lVar6,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" identifier = identifier) ;) }) while (parenthesized_expression "(0x1e0 < param_2 - lVar6)" ( (binary_expression "0x1e0 < param_2 - lVar6" number_literal < (binary_expression "param_2 - lVar6" identifier - identifier)) )) ;) (expression_statement "FUN_00270d60(lVar6,param_2,param_4);" (call_expression "FUN_00270d60(lVar6,param_2,param_4)" identifier (argument_list "(lVar6,param_2,param_4)" ( identifier , identifier , identifier ))) ;) (if_statement "if (0x230 < lVar10) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }" if (parenthesized_expression "(0x230 < lVar10)" ( (binary_expression "0x230 < lVar10" number_literal < identifier) )) (compound_statement "{\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\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      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);" do (compound_statement "{\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    }" { (expression_statement "lVar6 = lVar7 * 2;" (assignment_expression "lVar6 = lVar7 * 2" identifier = (binary_expression "lVar7 * 2" identifier * number_literal)) ;) (expression_statement "lVar4 = lVar8;" (assignment_expression "lVar4 = lVar8" identifier = identifier) ;) (expression_statement "lVar2 = param_3;" (assignment_expression "lVar2 = param_3" identifier = identifier) ;) (expression_statement "lVar10 = param_1;" (assignment_expression "lVar10 = param_1" identifier = identifier) ;) (if_statement "if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\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          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }" { (expression_statement "lVar9 = param_1;" (assignment_expression "lVar9 = param_1" identifier = identifier) ;) (do_statement "do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);" do (compound_statement "{\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        }" { (expression_statement "lVar10 = lVar9 + lVar7 * 0xa0;" (assignment_expression "lVar10 = lVar9 + lVar7 * 0xa0" identifier = (binary_expression "lVar9 + lVar7 * 0xa0" identifier + (binary_expression "lVar7 * 0xa0" identifier * number_literal))) ;) (expression_statement "lVar4 = lVar9 + lVar7 * 0x50;" (assignment_expression "lVar4 = lVar9 + lVar7 * 0x50" identifier = (binary_expression "lVar9 + lVar7 * 0x50" identifier + (binary_expression "lVar7 * 0x50" identifier * number_literal))) ;) (expression_statement "lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);" (assignment_expression "lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4)" identifier = (call_expression "FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4)" identifier (argument_list "(lVar9,lVar4,lVar4,lVar10,lVar2,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "lVar3 = param_2 - lVar10 >> 4;" (assignment_expression "lVar3 = param_2 - lVar10 >> 4" identifier = (binary_expression "param_2 - lVar10 >> 4" (binary_expression "param_2 - lVar10" identifier - identifier) >> number_literal)) ;) (expression_statement "lVar4 = lVar3 * -0x3333333333333333;" (assignment_expression "lVar4 = lVar3 * -0x3333333333333333" identifier = (binary_expression "lVar3 * -0x3333333333333333" identifier * number_literal)) ;) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" identifier = identifier) ;) }) while (parenthesized_expression "(lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0)" ( (binary_expression "lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar6 == lVar4" identifier == identifier) || (binary_expression "SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar6,lVar4)" identifier (argument_list "(lVar6,lVar4)" ( identifier , identifier ))) != (binary_expression "lVar6 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar6 + lVar3 * 0x3333333333333333" identifier + (binary_expression "lVar3 * 0x3333333333333333" identifier * number_literal)) < number_literal))) )) ;) })) (if_statement "if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }" if (parenthesized_expression "(lVar7 <= lVar4)" ( (binary_expression "lVar7 <= lVar4" identifier <= identifier) )) (compound_statement "{\n        lVar4 = lVar7;\n      }" { (expression_statement "lVar4 = lVar7;" (assignment_expression "lVar4 = lVar7" identifier = identifier) ;) })) (expression_statement "lVar9 = lVar7 * 4;" (assignment_expression "lVar9 = lVar7 * 4" identifier = (binary_expression "lVar7 * 4" identifier * number_literal)) ;) (expression_statement "lVar4 = lVar4 * 0x50 + lVar10;" (assignment_expression "lVar4 = lVar4 * 0x50 + lVar10" identifier = (binary_expression "lVar4 * 0x50 + lVar10" (binary_expression "lVar4 * 0x50" identifier * number_literal) + identifier)) ;) (expression_statement "FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);" (call_expression "FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4)" identifier (argument_list "(lVar10,lVar4,lVar4,param_2,lVar2,param_4)" ( identifier , 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 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\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 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\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 = lVar6 * 0x50 + param_3;" (assignment_expression "lVar7 = lVar6 * 0x50 + param_3" identifier = (binary_expression "lVar6 * 0x50 + param_3" (binary_expression "lVar6 * 0x50" identifier * number_literal) + identifier)) ;) (expression_statement "FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);" (call_expression "FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4)" identifier (argument_list "(param_3,lVar7,lVar7,lVar1,param_1,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "lVar10 = param_3;" (assignment_expression "lVar10 = param_3" identifier = identifier) ;) (expression_statement "lVar4 = param_1;" (assignment_expression "lVar4 = param_1" identifier = identifier) ;) (do_statement "do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);" do (compound_statement "{\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      }" { (expression_statement "lVar2 = lVar10 + lVar7 * 0x140;" (assignment_expression "lVar2 = lVar10 + lVar7 * 0x140" identifier = (binary_expression "lVar10 + lVar7 * 0x140" identifier + (binary_expression "lVar7 * 0x140" identifier * number_literal))) ;) (expression_statement "lVar3 = lVar10 + lVar7 * 0xa0;" (assignment_expression "lVar3 = lVar10 + lVar7 * 0xa0" identifier = (binary_expression "lVar10 + lVar7 * 0xa0" identifier + (binary_expression "lVar7 * 0xa0" identifier * number_literal))) ;) (expression_statement "lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);" (assignment_expression "lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4)" identifier = (call_expression "FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4)" identifier (argument_list "(lVar10,lVar3,lVar3,lVar2,lVar4,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "lVar3 = lVar1 - lVar2 >> 4;" (assignment_expression "lVar3 = lVar1 - lVar2 >> 4" identifier = (binary_expression "lVar1 - lVar2 >> 4" (binary_expression "lVar1 - lVar2" identifier - identifier) >> number_literal)) ;) (expression_statement "lVar5 = lVar3 * -0x3333333333333333;" (assignment_expression "lVar5 = lVar3 * -0x3333333333333333" identifier = (binary_expression "lVar3 * -0x3333333333333333" identifier * number_literal)) ;) (expression_statement "lVar10 = lVar2;" (assignment_expression "lVar10 = lVar2" identifier = identifier) ;) }) while (parenthesized_expression "(lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0)" ( (binary_expression "lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar9 == lVar5" identifier == identifier) || (binary_expression "SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar9,lVar5)" identifier (argument_list "(lVar9,lVar5)" ( identifier , identifier ))) != (binary_expression "lVar9 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar9 + lVar3 * 0x3333333333333333" identifier + (binary_expression "lVar3 * 0x3333333333333333" identifier * number_literal)) < number_literal))) )) ;) (expression_statement "lVar7 = lVar5 + lVar7 * -2;" (assignment_expression "lVar7 = lVar5 + lVar7 * -2" identifier = (binary_expression "lVar5 + lVar7 * -2" identifier + (binary_expression "lVar7 * -2" identifier * number_literal))) ;) (if_statement "if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }" if (parenthesized_expression "(lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0)" ( (binary_expression "lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0" (binary_expression "lVar7 == 0" identifier == number_literal) || (binary_expression "SBORROW8(lVar5,lVar6) != lVar7 < 0" (call_expression "SBORROW8(lVar5,lVar6)" identifier (argument_list "(lVar5,lVar6)" ( identifier , identifier ))) != (binary_expression "lVar7 < 0" identifier < number_literal))) )) (compound_statement "{\n        lVar6 = lVar5;\n      }" { (expression_statement "lVar6 = lVar5;" (assignment_expression "lVar6 = lVar5" identifier = identifier) ;) })) (expression_statement "lVar7 = lVar6 * 0x50 + lVar2;" (assignment_expression "lVar7 = lVar6 * 0x50 + lVar2" identifier = (binary_expression "lVar6 * 0x50 + lVar2" (binary_expression "lVar6 * 0x50" identifier * number_literal) + identifier)) ;) (expression_statement "FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);" (call_expression "FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4)" identifier (argument_list "(lVar2,lVar7,lVar7,lVar1,lVar4,param_4)" ( identifier , 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) , (parameter_declaration TYPE 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 ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (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 , 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 , 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 , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (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))) )) ;) })) (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 (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (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))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (binary_expression IDENT < LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , 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_00274050(long param_1,long param_2,long param_3,undefined8 param_4)\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  long lVar10;\n  \n  lVar10 = param_2 - param_1;\n  lVar8 = (lVar10 >> 4) * -0x3333333333333333;\n  lVar1 = param_3 + lVar10;\n  lVar7 = param_1;\n  if (lVar10 < 0x1e1) {\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  } while (0x1e0 < param_2 - lVar6);\n  FUN_00270d60(lVar6,param_2,param_4);\n  if (0x230 < lVar10) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00274050(long param_1,long param_2,long param_3,undefined8 param_4)" (identifier "FUN_00274050") (parameter_list "(long param_1,long param_2,long param_3,undefined8 param_4)" (( "(") (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")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) () ")"))) (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  long lVar10;\n  \n  lVar10 = param_2 - param_1;\n  lVar8 = (lVar10 >> 4) * -0x3333333333333333;\n  lVar1 = param_3 + lVar10;\n  lVar7 = param_1;\n  if (lVar10 < 0x1e1) {\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }\n  do {\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  } while (0x1e0 < param_2 - lVar6);\n  FUN_00270d60(lVar6,param_2,param_4);\n  if (0x230 < lVar10) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\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") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (expression_statement "lVar10 = param_2 - param_1;" (assignment_expression "lVar10 = param_2 - param_1" (identifier "lVar10") (= "=") (binary_expression "param_2 - param_1" (identifier "param_2") (- "-") (identifier "param_1"))) (; ";")) (expression_statement "lVar8 = (lVar10 >> 4) * -0x3333333333333333;" (assignment_expression "lVar8 = (lVar10 >> 4) * -0x3333333333333333" (identifier "lVar8") (= "=") (binary_expression "(lVar10 >> 4) * -0x3333333333333333" (parenthesized_expression "(lVar10 >> 4)" (( "(") (binary_expression "lVar10 >> 4" (identifier "lVar10") (>> ">>") (number_literal "4")) () ")")) (* "*") (number_literal "-0x3333333333333333"))) (; ";")) (expression_statement "lVar1 = param_3 + lVar10;" (assignment_expression "lVar1 = param_3 + lVar10" (identifier "lVar1") (= "=") (binary_expression "param_3 + lVar10" (identifier "param_3") (+ "+") (identifier "lVar10"))) (; ";")) (expression_statement "lVar7 = param_1;" (assignment_expression "lVar7 = param_1" (identifier "lVar7") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (lVar10 < 0x1e1) {\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }" (if "if") (parenthesized_expression "(lVar10 < 0x1e1)" (( "(") (binary_expression "lVar10 < 0x1e1" (identifier "lVar10") (< "<") (number_literal "0x1e1")) () ")")) (compound_statement "{\n    FUN_00270d60(param_1,param_2,param_4);\n    return;\n  }" ({ "{") (expression_statement "FUN_00270d60(param_1,param_2,param_4);" (call_expression "FUN_00270d60(param_1,param_2,param_4)" (identifier "FUN_00270d60") (argument_list "(param_1,param_2,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (do_statement "do {\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  } while (0x1e0 < param_2 - lVar6);" (do "do") (compound_statement "{\n    lVar6 = lVar7 + 0x230;\n    FUN_00270d60(lVar7,lVar6,param_4);\n    lVar7 = lVar6;\n  }" ({ "{") (expression_statement "lVar6 = lVar7 + 0x230;" (assignment_expression "lVar6 = lVar7 + 0x230" (identifier "lVar6") (= "=") (binary_expression "lVar7 + 0x230" (identifier "lVar7") (+ "+") (number_literal "0x230"))) (; ";")) (expression_statement "FUN_00270d60(lVar7,lVar6,param_4);" (call_expression "FUN_00270d60(lVar7,lVar6,param_4)" (identifier "FUN_00270d60") (argument_list "(lVar7,lVar6,param_4)" (( "(") (identifier "lVar7") (, ",") (identifier "lVar6") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" (identifier "lVar7") (= "=") (identifier "lVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0x1e0 < param_2 - lVar6)" (( "(") (binary_expression "0x1e0 < param_2 - lVar6" (number_literal "0x1e0") (< "<") (binary_expression "param_2 - lVar6" (identifier "param_2") (- "-") (identifier "lVar6"))) () ")")) (; ";")) (expression_statement "FUN_00270d60(lVar6,param_2,param_4);" (call_expression "FUN_00270d60(lVar6,param_2,param_4)" (identifier "FUN_00270d60") (argument_list "(lVar6,param_2,param_4)" (( "(") (identifier "lVar6") (, ",") (identifier "param_2") (, ",") (identifier "param_4") () ")"))) (; ";")) (if_statement "if (0x230 < lVar10) {\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);\n  }" (if "if") (parenthesized_expression "(0x230 < lVar10)" (( "(") (binary_expression "0x230 < lVar10" (number_literal "0x230") (< "<") (identifier "lVar10")) () ")")) (compound_statement "{\n    lVar7 = 7;\n    do {\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\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      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\n      lVar7 = lVar9;\n    } while (lVar9 < lVar8);" (do "do") (compound_statement "{\n      lVar6 = lVar7 * 2;\n      lVar4 = lVar8;\n      lVar2 = param_3;\n      lVar10 = param_1;\n      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }\n      if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }\n      lVar9 = lVar7 * 4;\n      lVar4 = lVar4 * 0x50 + lVar10;\n      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);\n      if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\n        return;\n      }\n      lVar10 = param_3;\n      lVar4 = param_1;\n      do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);\n      lVar7 = lVar5 + lVar7 * -2;\n      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }\n      lVar7 = lVar6 * 0x50 + lVar2;\n      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);\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 "lVar4 = lVar8;" (assignment_expression "lVar4 = lVar8" (identifier "lVar4") (= "=") (identifier "lVar8")) (; ";")) (expression_statement "lVar2 = param_3;" (assignment_expression "lVar2 = param_3" (identifier "lVar2") (= "=") (identifier "param_3")) (; ";")) (expression_statement "lVar10 = param_1;" (assignment_expression "lVar10 = param_1" (identifier "lVar10") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {\n        lVar9 = param_1;\n        do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\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          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);\n      }" ({ "{") (expression_statement "lVar9 = param_1;" (assignment_expression "lVar9 = param_1" (identifier "lVar9") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);" (do "do") (compound_statement "{\n          lVar10 = lVar9 + lVar7 * 0xa0;\n          lVar4 = lVar9 + lVar7 * 0x50;\n          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);\n          lVar3 = param_2 - lVar10 >> 4;\n          lVar4 = lVar3 * -0x3333333333333333;\n          lVar9 = lVar10;\n        }" ({ "{") (expression_statement "lVar10 = lVar9 + lVar7 * 0xa0;" (assignment_expression "lVar10 = lVar9 + lVar7 * 0xa0" (identifier "lVar10") (= "=") (binary_expression "lVar9 + lVar7 * 0xa0" (identifier "lVar9") (+ "+") (binary_expression "lVar7 * 0xa0" (identifier "lVar7") (* "*") (number_literal "0xa0")))) (; ";")) (expression_statement "lVar4 = lVar9 + lVar7 * 0x50;" (assignment_expression "lVar4 = lVar9 + lVar7 * 0x50" (identifier "lVar4") (= "=") (binary_expression "lVar9 + lVar7 * 0x50" (identifier "lVar9") (+ "+") (binary_expression "lVar7 * 0x50" (identifier "lVar7") (* "*") (number_literal "0x50")))) (; ";")) (expression_statement "lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);" (assignment_expression "lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4)" (identifier "lVar2") (= "=") (call_expression "FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4)" (identifier "FUN_00273620") (argument_list "(lVar9,lVar4,lVar4,lVar10,lVar2,param_4)" (( "(") (identifier "lVar9") (, ",") (identifier "lVar4") (, ",") (identifier "lVar4") (, ",") (identifier "lVar10") (, ",") (identifier "lVar2") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "lVar3 = param_2 - lVar10 >> 4;" (assignment_expression "lVar3 = param_2 - lVar10 >> 4" (identifier "lVar3") (= "=") (binary_expression "param_2 - lVar10 >> 4" (binary_expression "param_2 - lVar10" (identifier "param_2") (- "-") (identifier "lVar10")) (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "lVar4 = lVar3 * -0x3333333333333333;" (assignment_expression "lVar4 = lVar3 * -0x3333333333333333" (identifier "lVar4") (= "=") (binary_expression "lVar3 * -0x3333333333333333" (identifier "lVar3") (* "*") (number_literal "-0x3333333333333333"))) (; ";")) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" (identifier "lVar9") (= "=") (identifier "lVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0)" (( "(") (binary_expression "lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar6 == lVar4" (identifier "lVar6") (== "==") (identifier "lVar4")) (|| "||") (binary_expression "SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar6,lVar4)" (identifier "SBORROW8") (argument_list "(lVar6,lVar4)" (( "(") (identifier "lVar6") (, ",") (identifier "lVar4") () ")"))) (!= "!=") (binary_expression "lVar6 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar6 + lVar3 * 0x3333333333333333" (identifier "lVar6") (+ "+") (binary_expression "lVar3 * 0x3333333333333333" (identifier "lVar3") (* "*") (number_literal "0x3333333333333333"))) (< "<") (number_literal "0")))) () ")")) (; ";")) (} "}"))) (if_statement "if (lVar7 <= lVar4) {\n        lVar4 = lVar7;\n      }" (if "if") (parenthesized_expression "(lVar7 <= lVar4)" (( "(") (binary_expression "lVar7 <= lVar4" (identifier "lVar7") (<= "<=") (identifier "lVar4")) () ")")) (compound_statement "{\n        lVar4 = lVar7;\n      }" ({ "{") (expression_statement "lVar4 = lVar7;" (assignment_expression "lVar4 = lVar7" (identifier "lVar4") (= "=") (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 "lVar4 = lVar4 * 0x50 + lVar10;" (assignment_expression "lVar4 = lVar4 * 0x50 + lVar10" (identifier "lVar4") (= "=") (binary_expression "lVar4 * 0x50 + lVar10" (binary_expression "lVar4 * 0x50" (identifier "lVar4") (* "*") (number_literal "0x50")) (+ "+") (identifier "lVar10"))) (; ";")) (expression_statement "FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);" (call_expression "FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4)" (identifier "FUN_00273620") (argument_list "(lVar10,lVar4,lVar4,param_2,lVar2,param_4)" (( "(") (identifier "lVar10") (, ",") (identifier "lVar4") (, ",") (identifier "lVar4") (, ",") (identifier "param_2") (, ",") (identifier "lVar2") (, ",") (identifier "param_4") () ")"))) (; ";")) (if_statement "if (lVar8 < lVar9) {\n        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {\n          lVar6 = lVar8;\n        }\n        lVar7 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\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 = lVar6 * 0x50 + param_3;\n        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);\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 = lVar6 * 0x50 + param_3;" (assignment_expression "lVar7 = lVar6 * 0x50 + param_3" (identifier "lVar7") (= "=") (binary_expression "lVar6 * 0x50 + param_3" (binary_expression "lVar6 * 0x50" (identifier "lVar6") (* "*") (number_literal "0x50")) (+ "+") (identifier "param_3"))) (; ";")) (expression_statement "FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);" (call_expression "FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4)" (identifier "FUN_00273b50") (argument_list "(param_3,lVar7,lVar7,lVar1,param_1,param_4)" (( "(") (identifier "param_3") (, ",") (identifier "lVar7") (, ",") (identifier "lVar7") (, ",") (identifier "lVar1") (, ",") (identifier "param_1") (, ",") (identifier "param_4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "lVar10 = param_3;" (assignment_expression "lVar10 = param_3" (identifier "lVar10") (= "=") (identifier "param_3")) (; ";")) (expression_statement "lVar4 = param_1;" (assignment_expression "lVar4 = param_1" (identifier "lVar4") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);" (do "do") (compound_statement "{\n        lVar2 = lVar10 + lVar7 * 0x140;\n        lVar3 = lVar10 + lVar7 * 0xa0;\n        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);\n        lVar3 = lVar1 - lVar2 >> 4;\n        lVar5 = lVar3 * -0x3333333333333333;\n        lVar10 = lVar2;\n      }" ({ "{") (expression_statement "lVar2 = lVar10 + lVar7 * 0x140;" (assignment_expression "lVar2 = lVar10 + lVar7 * 0x140" (identifier "lVar2") (= "=") (binary_expression "lVar10 + lVar7 * 0x140" (identifier "lVar10") (+ "+") (binary_expression "lVar7 * 0x140" (identifier "lVar7") (* "*") (number_literal "0x140")))) (; ";")) (expression_statement "lVar3 = lVar10 + lVar7 * 0xa0;" (assignment_expression "lVar3 = lVar10 + lVar7 * 0xa0" (identifier "lVar3") (= "=") (binary_expression "lVar10 + lVar7 * 0xa0" (identifier "lVar10") (+ "+") (binary_expression "lVar7 * 0xa0" (identifier "lVar7") (* "*") (number_literal "0xa0")))) (; ";")) (expression_statement "lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);" (assignment_expression "lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4)" (identifier "lVar4") (= "=") (call_expression "FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4)" (identifier "FUN_00273b50") (argument_list "(lVar10,lVar3,lVar3,lVar2,lVar4,param_4)" (( "(") (identifier "lVar10") (, ",") (identifier "lVar3") (, ",") (identifier "lVar3") (, ",") (identifier "lVar2") (, ",") (identifier "lVar4") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "lVar3 = lVar1 - lVar2 >> 4;" (assignment_expression "lVar3 = lVar1 - lVar2 >> 4" (identifier "lVar3") (= "=") (binary_expression "lVar1 - lVar2 >> 4" (binary_expression "lVar1 - lVar2" (identifier "lVar1") (- "-") (identifier "lVar2")) (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "lVar5 = lVar3 * -0x3333333333333333;" (assignment_expression "lVar5 = lVar3 * -0x3333333333333333" (identifier "lVar5") (= "=") (binary_expression "lVar3 * -0x3333333333333333" (identifier "lVar3") (* "*") (number_literal "-0x3333333333333333"))) (; ";")) (expression_statement "lVar10 = lVar2;" (assignment_expression "lVar10 = lVar2" (identifier "lVar10") (= "=") (identifier "lVar2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0)" (( "(") (binary_expression "lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar9 == lVar5" (identifier "lVar9") (== "==") (identifier "lVar5")) (|| "||") (binary_expression "SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar9,lVar5)" (identifier "SBORROW8") (argument_list "(lVar9,lVar5)" (( "(") (identifier "lVar9") (, ",") (identifier "lVar5") () ")"))) (!= "!=") (binary_expression "lVar9 + lVar3 * 0x3333333333333333 < 0" (binary_expression "lVar9 + lVar3 * 0x3333333333333333" (identifier "lVar9") (+ "+") (binary_expression "lVar3 * 0x3333333333333333" (identifier "lVar3") (* "*") (number_literal "0x3333333333333333"))) (< "<") (number_literal "0")))) () ")")) (; ";")) (expression_statement "lVar7 = lVar5 + lVar7 * -2;" (assignment_expression "lVar7 = lVar5 + lVar7 * -2" (identifier "lVar7") (= "=") (binary_expression "lVar5 + lVar7 * -2" (identifier "lVar5") (+ "+") (binary_expression "lVar7 * -2" (identifier "lVar7") (* "*") (number_literal "-2")))) (; ";")) (if_statement "if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {\n        lVar6 = lVar5;\n      }" (if "if") (parenthesized_expression "(lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0)" (( "(") (binary_expression "lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0" (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) (|| "||") (binary_expression "SBORROW8(lVar5,lVar6) != lVar7 < 0" (call_expression "SBORROW8(lVar5,lVar6)" (identifier "SBORROW8") (argument_list "(lVar5,lVar6)" (( "(") (identifier "lVar5") (, ",") (identifier "lVar6") () ")"))) (!= "!=") (binary_expression "lVar7 < 0" (identifier "lVar7") (< "<") (number_literal "0")))) () ")")) (compound_statement "{\n        lVar6 = lVar5;\n      }" ({ "{") (expression_statement "lVar6 = lVar5;" (assignment_expression "lVar6 = lVar5" (identifier "lVar6") (= "=") (identifier "lVar5")) (; ";")) (} "}"))) (expression_statement "lVar7 = lVar6 * 0x50 + lVar2;" (assignment_expression "lVar7 = lVar6 * 0x50 + lVar2" (identifier "lVar7") (= "=") (binary_expression "lVar6 * 0x50 + lVar2" (binary_expression "lVar6 * 0x50" (identifier "lVar6") (* "*") (number_literal "0x50")) (+ "+") (identifier "lVar2"))) (; ";")) (expression_statement "FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);" (call_expression "FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4)" (identifier "FUN_00273b50") (argument_list "(lVar2,lVar7,lVar7,lVar1,lVar4,param_4)" (( "(") (identifier "lVar2") (, ",") (identifier "lVar7") (, ",") (identifier "lVar7") (, ",") (identifier "lVar1") (, ",") (identifier "lVar4") (, ",") (identifier "param_4") () ")"))) (; ";")) (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::Input_section_info*,
   std::vector<gold::Input_section_info> >, gold::Input_section_info*,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Input_section_sorter> > */

void std::
     __merge_sort_with_buffer<var_6::__normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1>var_1>,var_13::type_1*,var_9::__ops::_Iter_comp_iter<var_7::var_17>var_1>
               (__normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1,var_8::allocator<var_7::type_1>var_1>var_1>
                __first,__normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1,var_8::allocator<var_7::type_1>var_1>var_1>
                        __last,type_1 *var_18,
               _Iter_comp_iter<var_7::var_17> __comp)

{
  type_1 *__last2;
  type_1 *var_21;
  type_1 *var_19;
  __normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1,_std::allocator<var_7::type_1>var_1>var_1>
  var_2;
  long var_14;
  long var_16;
  long var_20;
  long var_15;
  __normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1,_std::allocator<var_7::type_1>var_1>var_1>
  var_3;
  long var_11;
  long var_4;
  
  var_4 = (long)__last._M_current - (long)__first._M_current;
  var_11 = (var_4 >> 4) * -0x3333333333333333;
  __last2 = (type_1 *)((long)var_18 + var_4);
  var_2._M_current = __first._M_current;
  if (var_4 < 0x1e1) {
    var_5<var_6::__normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1>var_1>,var_9::__ops::_Iter_comp_iter<var_7::var_17>var_1>
              (__first,__last,__comp);
    return;
  }
  do {
    var_3._M_current = var_2._M_current + 7;
    var_5<var_6::__normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1>var_1>,var_9::__ops::_Iter_comp_iter<var_7::var_17>var_1>
              (var_2,var_3,__comp);
    var_2._M_current = var_3._M_current;
  } while (0x1e0 < (long)__last._M_current - (long)var_3._M_current);
  var_5<var_6::__normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1>var_1>,var_9::__ops::_Iter_comp_iter<var_7::var_17>var_1>
            (var_3,__last,__comp);
  if (0x230 < var_4) {
    var_4 = 7;
    do {
      var_15 = var_4 * 2;
      var_16 = var_11;
      var_3._M_current = __first._M_current;
      var_19 = var_18;
      var_2._M_current = __first._M_current;
      if (var_10(var_11,var_15) == var_11 + var_4 * -2 < 0) {
        do {
          var_2._M_current = var_3._M_current + var_4 * 2;
          var_19 = var_12<var_6::__normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1>var_1>,var_13::type_1*,var_9::__ops::_Iter_comp_iter<var_7::var_17>var_1>
                             (var_3,var_3._M_current + var_4,var_3._M_current + var_4,var_2,var_19,
                              __comp);
          var_14 = (long)__last._M_current - (long)var_2._M_current >> 4;
          var_16 = var_14 * -0x3333333333333333;
          var_3._M_current = var_2._M_current;
        } while (var_15 == var_16 || var_10(var_15,var_16) != var_15 + var_14 * 0x3333333333333333 < 0);
      }
      if (var_4 <= var_16) {
        var_16 = var_4;
      }
      var_14 = var_4 * 4;
      var_12<var_6::__normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1>var_1>,var_13::type_1*,var_9::__ops::_Iter_comp_iter<var_7::var_17>var_1>
                (var_2,var_2._M_current + var_16,var_2._M_current + var_16,__last,var_19,__comp);
      var_19 = var_18;
      var_2._M_current = __first._M_current;
      if (var_11 < var_14) {
        if (var_11 == var_15 || var_10(var_11,var_15) != var_11 + var_4 * -2 < 0) {
          var_15 = var_11;
        }
        var_12<var_7::type_1*,var_9::__normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1>var_1>,var_9::__ops::_Iter_comp_iter<var_7::var_17>var_1>
                  (var_18,var_18 + var_15,var_18 + var_15,__last2,__first,__comp);
        return;
      }
      do {
        var_21 = var_19 + var_4 * 4;
        var_2 = var_12<var_7::type_1*,var_9::__normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1>var_1>,var_9::__ops::_Iter_comp_iter<var_7::var_17>var_1>
                          (var_19,var_19 + var_4 * 2,var_19 + var_4 * 2,var_21,var_2,__comp);
        var_16 = (long)__last2 - (long)var_21 >> 4;
        var_20 = var_16 * -0x3333333333333333;
        var_19 = var_21;
      } while (var_14 == var_20 || var_10(var_14,var_20) != var_14 + var_16 * 0x3333333333333333 < 0);
      var_4 = var_20 + var_4 * -2;
      if (var_4 == 0 || var_10(var_20,var_15) != var_4 < 0) {
        var_15 = var_20;
      }
      var_12<var_7::type_1*,var_9::__normal_iterator<var_7::type_1*,var_8::vector<var_7::type_1>var_1>,var_9::__ops::_Iter_comp_iter<var_7::var_17>var_1>
                (var_21,var_21 + var_15,var_21 + var_15,__last2,var_2,__comp);
      var_4 = var_14;
    } while (var_14 < var_11);
  }
  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)) (parameter_declaration type: (type_identifier) 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)) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (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 (identifier) (identifier) (identifier)))) (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) (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) (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) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) 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)))))))) (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) 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)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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,undefined8 param_4)

{
  long lVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  long lVar10;
  
  lVar10 = param_2 - param_1;
  lVar8 = (lVar10 >> 4) * -0x3333333333333333;
  lVar1 = param_3 + lVar10;
  lVar7 = param_1;
  if (lVar10 < 0x1e1) {
    FUN_00270d60(param_1,param_2,param_4);
    return;
  }
  do {
    lVar6 = lVar7 + 0x230;
    FUN_00270d60(lVar7,lVar6,param_4);
    lVar7 = lVar6;
  } while (0x1e0 < param_2 - lVar6);
  FUN_00270d60(lVar6,param_2,param_4);
  if (0x230 < lVar10) {
    lVar7 = 7;
    do {
      lVar6 = lVar7 * 2;
      lVar4 = lVar8;
      lVar2 = param_3;
      lVar10 = param_1;
      if (SBORROW8(lVar8,lVar6) == lVar8 + lVar7 * -2 < 0) {
        lVar9 = param_1;
        do {
          lVar10 = lVar9 + lVar7 * 0xa0;
          lVar4 = lVar9 + lVar7 * 0x50;
          lVar2 = FUN_00273620(lVar9,lVar4,lVar4,lVar10,lVar2,param_4);
          lVar3 = param_2 - lVar10 >> 4;
          lVar4 = lVar3 * -0x3333333333333333;
          lVar9 = lVar10;
        } while (lVar6 == lVar4 || SBORROW8(lVar6,lVar4) != lVar6 + lVar3 * 0x3333333333333333 < 0);
      }
      if (lVar7 <= lVar4) {
        lVar4 = lVar7;
      }
      lVar9 = lVar7 * 4;
      lVar4 = lVar4 * 0x50 + lVar10;
      FUN_00273620(lVar10,lVar4,lVar4,param_2,lVar2,param_4);
      if (lVar8 < lVar9) {
        if (lVar8 == lVar6 || SBORROW8(lVar8,lVar6) != lVar8 + lVar7 * -2 < 0) {
          lVar6 = lVar8;
        }
        lVar7 = lVar6 * 0x50 + param_3;
        FUN_00273b50(param_3,lVar7,lVar7,lVar1,param_1,param_4);
        return;
      }
      lVar10 = param_3;
      lVar4 = param_1;
      do {
        lVar2 = lVar10 + lVar7 * 0x140;
        lVar3 = lVar10 + lVar7 * 0xa0;
        lVar4 = FUN_00273b50(lVar10,lVar3,lVar3,lVar2,lVar4,param_4);
        lVar3 = lVar1 - lVar2 >> 4;
        lVar5 = lVar3 * -0x3333333333333333;
        lVar10 = lVar2;
      } while (lVar9 == lVar5 || SBORROW8(lVar9,lVar5) != lVar9 + lVar3 * 0x3333333333333333 < 0);
      lVar7 = lVar5 + lVar7 * -2;
      if (lVar7 == 0 || SBORROW8(lVar5,lVar6) != lVar7 < 0) {
        lVar6 = lVar5;
      }
      lVar7 = lVar6 * 0x50 + lVar2;
      FUN_00273b50(lVar2,lVar7,lVar7,lVar1,lVar4,param_4);
      lVar7 = lVar9;
    } while (lVar9 < lVar8);
  }
  return;
}

