
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name: __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4, true, 64,
   false>*, std::vector<gold::Output_reloc<4, true, 64, false>, std::allocator<gold::Output_reloc<4,
   true, 64, false> > > >, int, gold::Output_reloc<4, true, 64, false>,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4, true, 64,
   false>::Sort_relocs_comparison> > */

void std::
     __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4,_true,_64,_false>*,_std::vector<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>_>,_int,_gold::Output_reloc<4,_true,_64,_false>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,_true,_64,_false>::Sort_relocs_comparison>_>
               (int __first,int __holeIndex,uint __len,anon_union_4_4_c82d8563_for_u1_ __value,
               anon_union_4_4_c82d8563_for_u1_ param_5,anon_union_4_4_c82d8563_for_u1_ param_6,
               anon_union_4_4_c82d8563_for_u1_ param_7,anon_union_4_4_c82d8563_for_u1_ param_8,
               anon_union_4_4_c82d8563_for_u1_ param_9,anon_union_4_4_c82d8563_for_u1_ param_10,
               Sized_relobj<64,_false> *param_11,Sized_relobj<64,_false> *param_12)

{
  int iVar1;
  anon_union_4_4_c82d8563_for_u1_ *paVar2;
  anon_union_4_4_c82d8563_for_u1_ *r2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  anon_union_4_4_c82d8563_for_u1_ *this;
  int iVar7;
  anon_union_4_4_c82d8563_for_u1_ local_40;
  anon_union_4_4_c82d8563_for_u1_ local_3c;
  anon_union_4_4_c82d8563_for_u1_ local_38;
  anon_union_4_4_c82d8563_for_u1_ local_34;
  anon_union_4_4_c82d8563_for_u1_ local_30;
  anon_union_4_4_c82d8563_for_u1_ local_2c;
  anon_union_4_4_c82d8563_for_u1_ local_28;
  Sized_relobj<64,_false> *local_24;
  Sized_relobj<64,_false> *local_20;
  
  iVar4 = (int)(__len - 1) / 2;
  iVar6 = __holeIndex;
  if (__holeIndex < iVar4) {
    do {
      iVar3 = (iVar6 + 1) * 2;
      iVar1 = iVar3 + -1;
      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + (iVar6 + 1) * 0x48);
      r2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar1 * 0x24);
      iVar5 = gold::Output_reloc<9,_true,_64,_false>::compare
                        ((Output_reloc<9,_true,_64,_false> *)paVar2,
                         (Output_reloc<9,_true,_64,_false> *)r2);
      this = r2;
      iVar7 = iVar1;
      if (((-1 < iVar5) && (this = paVar2, iVar7 = iVar3, iVar5 == 0)) &&
         (paVar2[8].relobj < r2[8].relobj ||
          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <
          (uint)(paVar2[7].relobj < r2[7].relobj))) {
        this = r2;
        iVar7 = iVar1;
      }
      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar6 * 0x24);
      *paVar2 = *this;
      paVar2[1] = this[1];
      paVar2[2] = this[2];
      paVar2[3] = this[3];
      paVar2[4] = this[4];
      paVar2[5] = this[5];
      paVar2[6] = this[6];
      paVar2[7] = this[7];
      paVar2[8] = this[8];
      iVar6 = iVar7;
    } while (iVar7 < iVar4);
    if ((__len & 1) == 0) goto LAB_000eb6b0;
  }
  else {
    this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + __holeIndex * 0x24);
    iVar7 = __holeIndex;
    if ((__len & 1) != 0) {
      local_40 = __value;
      local_3c = param_5;
      local_38 = param_6;
      local_34 = param_7;
      local_30 = param_8;
      local_2c = param_9;
      local_28 = param_10;
      local_24 = param_11;
      local_20 = param_12;
      goto LAB_000eb5d4;
    }
LAB_000eb6b0:
    if ((int)(__len - 2) / 2 == iVar7) {
      iVar7 = iVar7 * 2 + 1;
      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);
      *this = *paVar2;
      this[1] = paVar2[1];
      this[2] = paVar2[2];
      this[3] = paVar2[3];
      this[4] = paVar2[4];
      this[5] = paVar2[5];
      this[6] = paVar2[6];
      this[7] = paVar2[7];
      this[8] = paVar2[8];
      this = paVar2;
    }
  }
  local_40 = __value;
  local_3c = param_5;
  local_38 = param_6;
  local_34 = param_7;
  local_30 = param_8;
  local_2c = param_9;
  local_28 = param_10;
  local_24 = param_11;
  local_20 = param_12;
  if (__holeIndex < iVar7) {
    do {
      iVar4 = (iVar7 + -1) / 2;
      this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x24);
      iVar6 = gold::Output_reloc<9,_true,_64,_false>::compare
                        ((Output_reloc<9,_true,_64,_false> *)this,
                         (Output_reloc<9,_true,_64,_false> *)&local_40);
      if ((-1 < iVar6) &&
         ((iVar6 != 0 ||
          (local_20 <= this[8].relobj &&
           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20))))) {
        this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);
        break;
      }
      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);
      *paVar2 = *this;
      paVar2[1] = this[1];
      paVar2[2] = this[2];
      paVar2[3] = this[3];
      paVar2[4] = this[4];
      paVar2[5] = this[5];
      paVar2[6] = this[6];
      paVar2[7] = this[7];
      paVar2[8] = this[8];
      iVar7 = iVar4;
    } while (__holeIndex < iVar4);
  }
LAB_000eb5d4:
  *this = local_40;
  this[1] = local_3c;
  this[2] = local_38;
  this[3] = local_34;
  this[4] = local_30;
  this[5] = local_2c;
  this[6] = local_28;
  this[7].relobj = local_24;
  this[8].relobj = local_20;
  return;
}



void FUN_000eb440(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,
                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,
                 undefined4 param_10,uint param_11,uint param_12)

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  undefined4 *puVar8;
  int iVar9;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  uint local_24;
  uint local_20;
  
  iVar5 = (int)(param_3 - 1) / 2;
  iVar7 = param_2;
  if (param_2 < iVar5) {
    do {
      iVar4 = (iVar7 + 1) * 2;
      iVar1 = iVar4 + -1;
      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);
      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);
      iVar6 = FUN_000e3c40(puVar2,puVar3);
      puVar8 = puVar3;
      iVar9 = iVar1;
      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&
         ((uint)puVar2[8] < (uint)puVar3[8] ||
          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {
        puVar8 = puVar3;
        iVar9 = iVar1;
      }
      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);
      *puVar2 = *puVar8;
      puVar2[1] = puVar8[1];
      puVar2[2] = puVar8[2];
      puVar2[3] = puVar8[3];
      puVar2[4] = puVar8[4];
      puVar2[5] = puVar8[5];
      puVar2[6] = puVar8[6];
      puVar2[7] = puVar8[7];
      puVar2[8] = puVar8[8];
      iVar7 = iVar9;
    } while (iVar9 < iVar5);
    if ((param_3 & 1) == 0) goto LAB_000eb6b0;
  }
  else {
    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);
    iVar9 = param_2;
    if ((param_3 & 1) != 0) {
      local_40 = param_4;
      local_3c = param_5;
      local_38 = param_6;
      local_34 = param_7;
      local_30 = param_8;
      local_2c = param_9;
      local_28 = param_10;
      local_24 = param_11;
      local_20 = param_12;
      goto LAB_000eb5d4;
    }
LAB_000eb6b0:
    if ((int)(param_3 - 2) / 2 == iVar9) {
      iVar9 = iVar9 * 2 + 1;
      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);
      *puVar8 = *puVar2;
      puVar8[1] = puVar2[1];
      puVar8[2] = puVar2[2];
      puVar8[3] = puVar2[3];
      puVar8[4] = puVar2[4];
      puVar8[5] = puVar2[5];
      puVar8[6] = puVar2[6];
      puVar8[7] = puVar2[7];
      puVar8[8] = puVar2[8];
      puVar8 = puVar2;
    }
  }
  local_40 = param_4;
  local_3c = param_5;
  local_38 = param_6;
  local_34 = param_7;
  local_30 = param_8;
  local_2c = param_9;
  local_28 = param_10;
  local_24 = param_11;
  local_20 = param_12;
  if (param_2 < iVar9) {
    do {
      iVar5 = (iVar9 + -1) / 2;
      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);
      iVar7 = FUN_000e3c40(puVar8,&local_40);
      if ((-1 < iVar7) &&
         ((iVar7 != 0 ||
          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20
          )))) {
        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);
        break;
      }
      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);
      *puVar2 = *puVar8;
      puVar2[1] = puVar8[1];
      puVar2[2] = puVar8[2];
      puVar2[3] = puVar8[3];
      puVar2[4] = puVar8[4];
      puVar2[5] = puVar8[5];
      puVar2[6] = puVar8[6];
      puVar2[7] = puVar8[7];
      puVar2[8] = puVar8[8];
      iVar9 = iVar5;
    } while (param_2 < iVar5);
  }
LAB_000eb5d4:
  *puVar8 = local_40;
  puVar8[1] = local_3c;
  puVar8[2] = local_38;
  puVar8[3] = local_34;
  puVar8[4] = local_30;
  puVar8[5] = local_2c;
  puVar8[6] = local_28;
  puVar8[7] = local_24;
  puVar8[8] = local_20;
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x4c
MOV EAX,dword ptr [ESP + 0x68]
MOV ESI,dword ptr [ESP + 0x68]
MOV EDI,dword ptr [ESP + 0x60]
LEA EDX,[EAX + -0x1]
AND ESI,0x1
MOV EAX,EDX
MOV dword ptr [ESP + 0xc],ESI
SHR EAX,0x1f
ADD EAX,EDX
SAR EAX,0x1
MOV dword ptr [ESP + 0x8],EAX
CMP dword ptr [ESP + 0x64],EAX
JGE 0x000eb690
MOV EBP,dword ptr [ESP + 0x64]
MOV ECX,EDI
JMP 0x000eb4df
JNZ 0x000eb49c
MOV EAX,dword ptr [EBX + 0x20]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [EDX + 0x1c]
CMP dword ptr [EBX + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x4]
SBB EAX,dword ptr [EDX + 0x20]
CMOVC EBX,EDX
CMOVC ESI,EDI
MOV EDX,dword ptr [EBX]
LEA EAX,[EBP + EBP*0x8]
MOV EBP,ESI
LEA EAX,[ECX + EAX*0x4]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [EBX + 0x4]
MOV dword ptr [EAX + 0x4],EDX
MOV EDX,dword ptr [EBX + 0x8]
MOV dword ptr [EAX + 0x8],EDX
MOV EDX,dword ptr [EBX + 0xc]
MOV dword ptr [EAX + 0xc],EDX
MOV EDX,dword ptr [EBX + 0x10]
MOV dword ptr [EAX + 0x10],EDX
MOV EDX,dword ptr [EBX + 0x14]
MOV dword ptr [EAX + 0x14],EDX
MOV EDX,dword ptr [EBX + 0x18]
MOV dword ptr [EAX + 0x18],EDX
MOV EDX,dword ptr [EBX + 0x1c]
MOV dword ptr [EAX + 0x1c],EDX
MOV EDX,dword ptr [EBX + 0x20]
MOV dword ptr [EAX + 0x20],EDX
CMP ESI,dword ptr [ESP + 0x8]
JGE 0x000eb528
LEA EAX,[EBP + 0x1]
MOV dword ptr [ESP + 0x60],ECX
SUB ESP,0x8
LEA ESI,[EAX + EAX*0x1]
SHL EAX,0x4
LEA EDI,[ESI + -0x1]
ADD EAX,ESI
LEA EDX,[EDI + EDI*0x8]
LEA EBX,[ECX + EAX*0x4]
LEA EDX,[ECX + EDX*0x4]
PUSH EDX
MOV dword ptr [ESP + 0x10],EDX
PUSH EBX
CALL 0x000e3c40
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [ESP + 0x60]
TEST EAX,EAX
JNS 0x000eb480
MOV EBX,EDX
MOV ESI,EDI
JMP 0x000eb49c
MOV EDX,dword ptr [ESP + 0xc]
MOV EDI,ECX
TEST EDX,EDX
JZ 0x000eb6b0
MOV EAX,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x74]
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [ESP + 0x78]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [ESP + 0x7c]
MOV dword ptr [ESP + 0x2c],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [ESP + 0x88]
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0x8c]
MOV dword ptr [ESP + 0x3c],EAX
LEA EAX,[ESI + -0x1]
MOV EDX,EAX
SHR EDX,0x1f
ADD EDX,EAX
SAR EDX,0x1
CMP ESI,dword ptr [ESP + 0x64]
JLE 0x000eb5d4
LEA EAX,[ESP + 0x1c]
MOV dword ptr [ESP + 0x60],EDI
MOV EBP,dword ptr [ESP + 0x60]
MOV EDI,EDX
MOV dword ptr [ESP + 0x4],EAX
NOP
LEA EAX,[EDI + EDI*0x8]
SUB ESP,0x8
LEA EBX,[EBP + EAX*0x4]
PUSH dword ptr [ESP + 0xc]
PUSH EBX
CALL 0x000e3c40
ADD ESP,0x10
TEST EAX,EAX
JS 0x000eb630
JZ 0x000eb620
LEA EAX,[ESI + ESI*0x8]
LEA EBX,[EBP + EAX*0x4]
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [EBX],EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [EBX + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [EBX + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EBX + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [EBX + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [EBX + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x34]
MOV dword ptr [EBX + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [EBX + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [EBX + 0x20],EAX
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBX + 0x20]
MOV EDX,dword ptr [ESP + 0x38]
CMP dword ptr [EBX + 0x1c],EDX
SBB EAX,dword ptr [ESP + 0x3c]
JNC 0x000eb5cd
MOV ECX,dword ptr [EBX]
LEA EAX,[ESI + ESI*0x8]
MOV ESI,EDI
LEA EAX,[EBP + EAX*0x4]
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [EBX + 0x4]
MOV dword ptr [EAX + 0x4],ECX
MOV ECX,dword ptr [EBX + 0x8]
MOV dword ptr [EAX + 0x8],ECX
MOV ECX,dword ptr [EBX + 0xc]
MOV dword ptr [EAX + 0xc],ECX
MOV ECX,dword ptr [EBX + 0x10]
MOV dword ptr [EAX + 0x10],ECX
MOV ECX,dword ptr [EBX + 0x14]
MOV dword ptr [EAX + 0x14],ECX
MOV ECX,dword ptr [EBX + 0x18]
MOV dword ptr [EAX + 0x18],ECX
MOV ECX,dword ptr [EBX + 0x1c]
MOV dword ptr [EAX + 0x1c],ECX
MOV ECX,dword ptr [EBX + 0x20]
MOV dword ptr [EAX + 0x20],ECX
LEA ECX,[EDI + -0x1]
MOV EAX,ECX
SHR EAX,0x1f
ADD EAX,ECX
SAR EAX,0x1
CMP dword ptr [ESP + 0x64],EDI
JGE 0x000eb5d4
MOV EDI,EAX
JMP 0x000eb5b0
MOV EAX,dword ptr [ESP + 0x64]
LEA EAX,[EAX + EAX*0x8]
LEA EBX,[EDI + EAX*0x4]
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JNZ 0x000eb70d
MOV ESI,dword ptr [ESP + 0x64]
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x68]
LEA EDX,[EAX + -0x2]
MOV EAX,EDX
SHR EAX,0x1f
ADD EAX,EDX
SAR EAX,0x1
CMP EAX,ESI
JNZ 0x000eb536
LEA ESI,[ESI + ESI*0x1 + 0x1]
LEA EAX,[ESI + ESI*0x8]
LEA EAX,[EDI + EAX*0x4]
MOV EDX,dword ptr [EAX]
MOV dword ptr [EBX],EDX
MOV EDX,dword ptr [EAX + 0x4]
MOV dword ptr [EBX + 0x4],EDX
MOV EDX,dword ptr [EAX + 0x8]
MOV dword ptr [EBX + 0x8],EDX
MOV EDX,dword ptr [EAX + 0xc]
MOV dword ptr [EBX + 0xc],EDX
MOV EDX,dword ptr [EAX + 0x10]
MOV dword ptr [EBX + 0x10],EDX
MOV EDX,dword ptr [EAX + 0x14]
MOV dword ptr [EBX + 0x14],EDX
MOV EDX,dword ptr [EAX + 0x18]
MOV dword ptr [EBX + 0x18],EDX
MOV EDX,dword ptr [EAX + 0x1c]
MOV dword ptr [EBX + 0x1c],EDX
MOV EDX,dword ptr [EAX + 0x20]
MOV dword ptr [EBX + 0x20],EDX
MOV EBX,EAX
JMP 0x000eb536
MOV EAX,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x74]
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [ESP + 0x78]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [ESP + 0x7c]
MOV dword ptr [ESP + 0x2c],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [ESP + 0x88]
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0x8c]
MOV dword ptr [ESP + 0x3c],EAX
JMP 0x000eb5d4
(translation_unit "void FUN_000eb440(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 undefined4 param_10,uint param_11,uint param_12)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  uint local_24;\n  uint local_20;\n  \n  iVar5 = (int)(param_3 - 1) / 2;\n  iVar7 = param_2;\n  if (param_2 < iVar5) {\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }\n  local_40 = param_4;\n  local_3c = param_5;\n  local_38 = param_6;\n  local_34 = param_7;\n  local_30 = param_8;\n  local_2c = param_9;\n  local_28 = param_10;\n  local_24 = param_11;\n  local_20 = param_12;\n  if (param_2 < iVar9) {\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }\nLAB_000eb5d4:\n  *puVar8 = local_40;\n  puVar8[1] = local_3c;\n  puVar8[2] = local_38;\n  puVar8[3] = local_34;\n  puVar8[4] = local_30;\n  puVar8[5] = local_2c;\n  puVar8[6] = local_28;\n  puVar8[7] = local_24;\n  puVar8[8] = local_20;\n  return;\n}\n\n" (function_definition "void FUN_000eb440(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 undefined4 param_10,uint param_11,uint param_12)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  uint local_24;\n  uint local_20;\n  \n  iVar5 = (int)(param_3 - 1) / 2;\n  iVar7 = param_2;\n  if (param_2 < iVar5) {\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }\n  local_40 = param_4;\n  local_3c = param_5;\n  local_38 = param_6;\n  local_34 = param_7;\n  local_30 = param_8;\n  local_2c = param_9;\n  local_28 = param_10;\n  local_24 = param_11;\n  local_20 = param_12;\n  if (param_2 < iVar9) {\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }\nLAB_000eb5d4:\n  *puVar8 = local_40;\n  puVar8[1] = local_3c;\n  puVar8[2] = local_38;\n  puVar8[3] = local_34;\n  puVar8[4] = local_30;\n  puVar8[5] = local_2c;\n  puVar8[6] = local_28;\n  puVar8[7] = local_24;\n  puVar8[8] = local_20;\n  return;\n}" primitive_type (function_declarator "FUN_000eb440(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 undefined4 param_10,uint param_11,uint param_12)" identifier (parameter_list "(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 undefined4 param_10,uint param_11,uint param_12)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 param_10" type_identifier identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "uint param_12" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  uint local_24;\n  uint local_20;\n  \n  iVar5 = (int)(param_3 - 1) / 2;\n  iVar7 = param_2;\n  if (param_2 < iVar5) {\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }\n  local_40 = param_4;\n  local_3c = param_5;\n  local_38 = param_6;\n  local_34 = param_7;\n  local_30 = param_8;\n  local_2c = param_9;\n  local_28 = param_10;\n  local_24 = param_11;\n  local_20 = param_12;\n  if (param_2 < iVar9) {\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }\nLAB_000eb5d4:\n  *puVar8 = local_40;\n  puVar8[1] = local_3c;\n  puVar8[2] = local_38;\n  puVar8[3] = local_34;\n  puVar8[4] = local_30;\n  puVar8[5] = local_2c;\n  puVar8[6] = local_28;\n  puVar8[7] = local_24;\n  puVar8[8] = local_20;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "uint local_20;" type_identifier identifier ;) (expression_statement "iVar5 = (int)(param_3 - 1) / 2;" (assignment_expression "iVar5 = (int)(param_3 - 1) / 2" identifier = (binary_expression "(int)(param_3 - 1) / 2" (cast_expression "(int)(param_3 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 - 1)" ( (binary_expression "param_3 - 1" identifier - number_literal) ))) / number_literal)) ;) (expression_statement "iVar7 = param_2;" (assignment_expression "iVar7 = param_2" identifier = identifier) ;) (if_statement "if (param_2 < iVar5) {\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }" if (parenthesized_expression "(param_2 < iVar5)" ( (binary_expression "param_2 < iVar5" identifier < identifier) )) (compound_statement "{\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }" { (do_statement "do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);" do (compound_statement "{\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    }" { (expression_statement "iVar4 = (iVar7 + 1) * 2;" (assignment_expression "iVar4 = (iVar7 + 1) * 2" identifier = (binary_expression "(iVar7 + 1) * 2" (parenthesized_expression "(iVar7 + 1)" ( (binary_expression "iVar7 + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "iVar1 = iVar4 + -1;" (assignment_expression "iVar1 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48)" identifier = (cast_expression "(undefined4 *)(param_1 + (iVar7 + 1) * 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + (iVar7 + 1) * 0x48)" ( (binary_expression "param_1 + (iVar7 + 1) * 0x48" identifier + (binary_expression "(iVar7 + 1) * 0x48" (parenthesized_expression "(iVar7 + 1)" ( (binary_expression "iVar7 + 1" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);" (assignment_expression "puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar1 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar1 * 0x24)" ( (binary_expression "param_1 + iVar1 * 0x24" identifier + (binary_expression "iVar1 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "iVar6 = FUN_000e3c40(puVar2,puVar3);" (assignment_expression "iVar6 = FUN_000e3c40(puVar2,puVar3)" identifier = (call_expression "FUN_000e3c40(puVar2,puVar3)" identifier (argument_list "(puVar2,puVar3)" ( identifier , identifier )))) ;) (expression_statement "puVar8 = puVar3;" (assignment_expression "puVar8 = puVar3" identifier = identifier) ;) (expression_statement "iVar9 = iVar1;" (assignment_expression "iVar9 = iVar1" identifier = identifier) ;) (if_statement "if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }" if (parenthesized_expression "(((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7])))" ( (binary_expression "((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))" (parenthesized_expression "((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0))" ( (binary_expression "(-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)" (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) && (parenthesized_expression "(puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)" ( (comma_expression "puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0" (assignment_expression "puVar8 = puVar2" identifier = identifier) , (comma_expression "iVar9 = iVar4, iVar6 == 0" (assignment_expression "iVar9 = iVar4" identifier = identifier) , (binary_expression "iVar6 == 0" identifier == number_literal))) ))) )) && (parenthesized_expression "((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))" ( (binary_expression "(uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7])" (binary_expression "(uint)puVar2[8] < (uint)puVar3[8]" (cast_expression "(uint)puVar2[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar2[8]" identifier [ number_literal ])) < (cast_expression "(uint)puVar3[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar3[8]" identifier [ number_literal ]))) || (binary_expression "(uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7])" (call_expression "(uint)(puVar2[8] - puVar3[8])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar2[8] - puVar3[8])" ( (binary_expression "puVar2[8] - puVar3[8]" (subscript_expression "puVar2[8]" identifier [ number_literal ]) - (subscript_expression "puVar3[8]" identifier [ number_literal ])) ))) < (call_expression "(uint)((uint)puVar2[7] < (uint)puVar3[7])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)puVar2[7] < (uint)puVar3[7])" ( (binary_expression "(uint)puVar2[7] < (uint)puVar3[7]" (cast_expression "(uint)puVar2[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar2[7]" identifier [ number_literal ])) < (cast_expression "(uint)puVar3[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar3[7]" identifier [ number_literal ]))) ))))) ))) )) (compound_statement "{\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }" { (expression_statement "puVar8 = puVar3;" (assignment_expression "puVar8 = puVar3" identifier = identifier) ;) (expression_statement "iVar9 = iVar1;" (assignment_expression "iVar9 = iVar1" identifier = identifier) ;) })) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar7 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar7 * 0x24)" ( (binary_expression "param_1 + iVar7 * 0x24" identifier + (binary_expression "iVar7 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar2[1] = puVar8[1];" (assignment_expression "puVar2[1] = puVar8[1]" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2[2] = puVar8[2];" (assignment_expression "puVar2[2] = puVar8[2]" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "puVar2[3] = puVar8[3];" (assignment_expression "puVar2[3] = puVar8[3]" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = puVar8[4];" (assignment_expression "puVar2[4] = puVar8[4]" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (subscript_expression "puVar8[4]" identifier [ number_literal ])) ;) (expression_statement "puVar2[5] = puVar8[5];" (assignment_expression "puVar2[5] = puVar8[5]" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[6] = puVar8[6];" (assignment_expression "puVar2[6] = puVar8[6]" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (subscript_expression "puVar8[6]" identifier [ number_literal ])) ;) (expression_statement "puVar2[7] = puVar8[7];" (assignment_expression "puVar2[7] = puVar8[7]" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (subscript_expression "puVar8[7]" identifier [ number_literal ])) ;) (expression_statement "puVar2[8] = puVar8[8];" (assignment_expression "puVar2[8] = puVar8[8]" (subscript_expression "puVar2[8]" identifier [ number_literal ]) = (subscript_expression "puVar8[8]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = iVar9;" (assignment_expression "iVar7 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(iVar9 < iVar5)" ( (binary_expression "iVar9 < iVar5" identifier < identifier) )) ;) (if_statement "if ((param_3 & 1) == 0) goto LAB_000eb6b0;" if (parenthesized_expression "((param_3 & 1) == 0)" ( (binary_expression "(param_3 & 1) == 0" (parenthesized_expression "(param_3 & 1)" ( (binary_expression "param_3 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000eb6b0;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }" else (compound_statement "{\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }" { (expression_statement "puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);" (assignment_expression "puVar8 = (undefined4 *)(param_1 + param_2 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + param_2 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + param_2 * 0x24)" ( (binary_expression "param_1 + param_2 * 0x24" identifier + (binary_expression "param_2 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "iVar9 = param_2;" (assignment_expression "iVar9 = param_2" identifier = identifier) ;) (if_statement "if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }" if (parenthesized_expression "((param_3 & 1) != 0)" ( (binary_expression "(param_3 & 1) != 0" (parenthesized_expression "(param_3 & 1)" ( (binary_expression "param_3 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }" { (expression_statement "local_40 = param_4;" (assignment_expression "local_40 = param_4" identifier = identifier) ;) (expression_statement "local_3c = param_5;" (assignment_expression "local_3c = param_5" identifier = identifier) ;) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" identifier = identifier) ;) (expression_statement "local_34 = param_7;" (assignment_expression "local_34 = param_7" identifier = identifier) ;) (expression_statement "local_30 = param_8;" (assignment_expression "local_30 = param_8" identifier = identifier) ;) (expression_statement "local_2c = param_9;" (assignment_expression "local_2c = param_9" identifier = identifier) ;) (expression_statement "local_28 = param_10;" (assignment_expression "local_28 = param_10" identifier = identifier) ;) (expression_statement "local_24 = param_11;" (assignment_expression "local_24 = param_11" identifier = identifier) ;) (expression_statement "local_20 = param_12;" (assignment_expression "local_20 = param_12" identifier = identifier) ;) (goto_statement "goto LAB_000eb5d4;" goto statement_identifier ;) })) (labeled_statement "LAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }" statement_identifier : (if_statement "if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }" if (parenthesized_expression "((int)(param_3 - 2) / 2 == iVar9)" ( (binary_expression "(int)(param_3 - 2) / 2 == iVar9" (binary_expression "(int)(param_3 - 2) / 2" (cast_expression "(int)(param_3 - 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 - 2)" ( (binary_expression "param_3 - 2" identifier - number_literal) ))) / number_literal) == identifier) )) (compound_statement "{\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }" { (expression_statement "iVar9 = iVar9 * 2 + 1;" (assignment_expression "iVar9 = iVar9 * 2 + 1" identifier = (binary_expression "iVar9 * 2 + 1" (binary_expression "iVar9 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar9 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar9 * 0x24)" ( (binary_expression "param_1 + iVar9 * 0x24" identifier + (binary_expression "iVar9 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "*puVar8 = *puVar2;" (assignment_expression "*puVar8 = *puVar2" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "puVar8[1] = puVar2[1];" (assignment_expression "puVar8[1] = puVar2[1]" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar8[2] = puVar2[2];" (assignment_expression "puVar8[2] = puVar2[2]" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar8[3] = puVar2[3];" (assignment_expression "puVar8[3] = puVar2[3]" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = (subscript_expression "puVar2[3]" identifier [ number_literal ])) ;) (expression_statement "puVar8[4] = puVar2[4];" (assignment_expression "puVar8[4] = puVar2[4]" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = (subscript_expression "puVar2[4]" identifier [ number_literal ])) ;) (expression_statement "puVar8[5] = puVar2[5];" (assignment_expression "puVar8[5] = puVar2[5]" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = (subscript_expression "puVar2[5]" identifier [ number_literal ])) ;) (expression_statement "puVar8[6] = puVar2[6];" (assignment_expression "puVar8[6] = puVar2[6]" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = (subscript_expression "puVar2[6]" identifier [ number_literal ])) ;) (expression_statement "puVar8[7] = puVar2[7];" (assignment_expression "puVar8[7] = puVar2[7]" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = (subscript_expression "puVar2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar8[8] = puVar2[8];" (assignment_expression "puVar8[8] = puVar2[8]" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = (subscript_expression "puVar2[8]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = puVar2;" (assignment_expression "puVar8 = puVar2" identifier = identifier) ;) }))) }))) (expression_statement "local_40 = param_4;" (assignment_expression "local_40 = param_4" identifier = identifier) ;) (expression_statement "local_3c = param_5;" (assignment_expression "local_3c = param_5" identifier = identifier) ;) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" identifier = identifier) ;) (expression_statement "local_34 = param_7;" (assignment_expression "local_34 = param_7" identifier = identifier) ;) (expression_statement "local_30 = param_8;" (assignment_expression "local_30 = param_8" identifier = identifier) ;) (expression_statement "local_2c = param_9;" (assignment_expression "local_2c = param_9" identifier = identifier) ;) (expression_statement "local_28 = param_10;" (assignment_expression "local_28 = param_10" identifier = identifier) ;) (expression_statement "local_24 = param_11;" (assignment_expression "local_24 = param_11" identifier = identifier) ;) (expression_statement "local_20 = param_12;" (assignment_expression "local_20 = param_12" identifier = identifier) ;) (if_statement "if (param_2 < iVar9) {\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }" if (parenthesized_expression "(param_2 < iVar9)" ( (binary_expression "param_2 < iVar9" identifier < identifier) )) (compound_statement "{\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }" { (do_statement "do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);" do (compound_statement "{\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    }" { (expression_statement "iVar5 = (iVar9 + -1) / 2;" (assignment_expression "iVar5 = (iVar9 + -1) / 2" identifier = (binary_expression "(iVar9 + -1) / 2" (parenthesized_expression "(iVar9 + -1)" ( (binary_expression "iVar9 + -1" identifier + number_literal) )) / number_literal)) ;) (expression_statement "puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);" (assignment_expression "puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar5 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar5 * 0x24)" ( (binary_expression "param_1 + iVar5 * 0x24" identifier + (binary_expression "iVar5 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "iVar7 = FUN_000e3c40(puVar8,&local_40);" (assignment_expression "iVar7 = FUN_000e3c40(puVar8,&local_40)" identifier = (call_expression "FUN_000e3c40(puVar8,&local_40)" identifier (argument_list "(puVar8,&local_40)" ( identifier , (pointer_expression "&local_40" & identifier) )))) ;) (if_statement "if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }" if (parenthesized_expression "((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          ))))" ( (binary_expression "(-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))" (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) && (parenthesized_expression "((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))" ( (parenthesized_expression "(iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          ))" ( (binary_expression "iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "(local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )" ( (binary_expression "local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20" (binary_expression "local_20 <= (uint)puVar8[8]" identifier <= (cast_expression "(uint)puVar8[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar8[8]" identifier [ number_literal ]))) && (binary_expression "(uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20" (call_expression "(uint)((uint)puVar8[7] < local_24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)puVar8[7] < local_24)" ( (binary_expression "(uint)puVar8[7] < local_24" (cast_expression "(uint)puVar8[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar8[7]" identifier [ number_literal ])) < identifier) ))) <= (binary_expression "puVar8[8] - local_20" (subscript_expression "puVar8[8]" identifier [ number_literal ]) - identifier))) ))) )) ))) )) (compound_statement "{\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }" { (expression_statement "puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);" (assignment_expression "puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar9 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar9 * 0x24)" ( (binary_expression "param_1 + iVar9 * 0x24" identifier + (binary_expression "iVar9 * 0x24" identifier * number_literal)) )))) ;) (break_statement "break;" break ;) })) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar9 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar9 * 0x24)" ( (binary_expression "param_1 + iVar9 * 0x24" identifier + (binary_expression "iVar9 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar2[1] = puVar8[1];" (assignment_expression "puVar2[1] = puVar8[1]" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2[2] = puVar8[2];" (assignment_expression "puVar2[2] = puVar8[2]" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "puVar2[3] = puVar8[3];" (assignment_expression "puVar2[3] = puVar8[3]" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = puVar8[4];" (assignment_expression "puVar2[4] = puVar8[4]" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (subscript_expression "puVar8[4]" identifier [ number_literal ])) ;) (expression_statement "puVar2[5] = puVar8[5];" (assignment_expression "puVar2[5] = puVar8[5]" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[6] = puVar8[6];" (assignment_expression "puVar2[6] = puVar8[6]" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (subscript_expression "puVar8[6]" identifier [ number_literal ])) ;) (expression_statement "puVar2[7] = puVar8[7];" (assignment_expression "puVar2[7] = puVar8[7]" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (subscript_expression "puVar8[7]" identifier [ number_literal ])) ;) (expression_statement "puVar2[8] = puVar8[8];" (assignment_expression "puVar2[8] = puVar8[8]" (subscript_expression "puVar2[8]" identifier [ number_literal ]) = (subscript_expression "puVar8[8]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = iVar5;" (assignment_expression "iVar9 = iVar5" identifier = identifier) ;) }) while (parenthesized_expression "(param_2 < iVar5)" ( (binary_expression "param_2 < iVar5" identifier < identifier) )) ;) })) (labeled_statement "LAB_000eb5d4:\n  *puVar8 = local_40;" statement_identifier : (expression_statement "*puVar8 = local_40;" (assignment_expression "*puVar8 = local_40" (pointer_expression "*puVar8" * identifier) = identifier) ;)) (expression_statement "puVar8[1] = local_3c;" (assignment_expression "puVar8[1] = local_3c" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = local_38;" (assignment_expression "puVar8[2] = local_38" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = local_34;" (assignment_expression "puVar8[3] = local_34" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[4] = local_30;" (assignment_expression "puVar8[4] = local_30" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = local_2c;" (assignment_expression "puVar8[5] = local_2c" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[6] = local_28;" (assignment_expression "puVar8[6] = local_28" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[7] = local_24;" (assignment_expression "puVar8[7] = local_24" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[8] = local_20;" (assignment_expression "puVar8[8] = local_20" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* DWARF original name: __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4, true, 64,\n   false>*, std::vector<gold::Output_reloc<4, true, 64, false>, std::allocator<gold::Output_reloc<4,\n   true, 64, false> > > >, int, gold::Output_reloc<4, true, 64, false>,\n   __gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4, true, 64,\n   false>::Sort_relocs_comparison> > */\n\nvoid std::\n     __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4,_true,_64,_false>*,_std::vector<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>_>,_int,_gold::Output_reloc<4,_true,_64,_false>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,_true,_64,_false>::Sort_relocs_comparison>_>\n               (int __first,int __holeIndex,uint __len,anon_union_4_4_c82d8563_for_u1_ __value,\n               anon_union_4_4_c82d8563_for_u1_ param_5,anon_union_4_4_c82d8563_for_u1_ param_6,\n               anon_union_4_4_c82d8563_for_u1_ param_7,anon_union_4_4_c82d8563_for_u1_ param_8,\n               anon_union_4_4_c82d8563_for_u1_ param_9,anon_union_4_4_c82d8563_for_u1_ param_10,\n               Sized_relobj<64,_false> *param_11,Sized_relobj<64,_false> *param_12)\n\n{\n  int iVar1;\n  anon_union_4_4_c82d8563_for_u1_ *paVar2;\n  anon_union_4_4_c82d8563_for_u1_ *r2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  anon_union_4_4_c82d8563_for_u1_ *this;\n  int iVar7;\n  anon_union_4_4_c82d8563_for_u1_ local_40;\n  anon_union_4_4_c82d8563_for_u1_ local_3c;\n  anon_union_4_4_c82d8563_for_u1_ local_38;\n  anon_union_4_4_c82d8563_for_u1_ local_34;\n  anon_union_4_4_c82d8563_for_u1_ local_30;\n  anon_union_4_4_c82d8563_for_u1_ local_2c;\n  anon_union_4_4_c82d8563_for_u1_ local_28;\n  Sized_relobj<64,_false> *local_24;\n  Sized_relobj<64,_false> *local_20;\n  \n  iVar4 = (int)(__len - 1) / 2;\n  iVar6 = __holeIndex;\n  if (__holeIndex < iVar4) {\n    do {\n      iVar3 = (iVar6 + 1) * 2;\n      iVar1 = iVar3 + -1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + (iVar6 + 1) * 0x48);\n      r2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar1 * 0x24);\n      iVar5 = gold::Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)paVar2,\n                         (Output_reloc<9,_true,_64,_false> *)r2);\n      this = r2;\n      iVar7 = iVar1;\n      if (((-1 < iVar5) && (this = paVar2, iVar7 = iVar3, iVar5 == 0)) &&\n         (paVar2[8].relobj < r2[8].relobj ||\n          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <\n          (uint)(paVar2[7].relobj < r2[7].relobj))) {\n        this = r2;\n        iVar7 = iVar1;\n      }\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar6 * 0x24);\n      *paVar2 = *this;\n      paVar2[1] = this[1];\n      paVar2[2] = this[2];\n      paVar2[3] = this[3];\n      paVar2[4] = this[4];\n      paVar2[5] = this[5];\n      paVar2[6] = this[6];\n      paVar2[7] = this[7];\n      paVar2[8] = this[8];\n      iVar6 = iVar7;\n    } while (iVar7 < iVar4);\n    if ((__len & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + __holeIndex * 0x24);\n    iVar7 = __holeIndex;\n    if ((__len & 1) != 0) {\n      local_40 = __value;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(__len - 2) / 2 == iVar7) {\n      iVar7 = iVar7 * 2 + 1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *this = *paVar2;\n      this[1] = paVar2[1];\n      this[2] = paVar2[2];\n      this[3] = paVar2[3];\n      this[4] = paVar2[4];\n      this[5] = paVar2[5];\n      this[6] = paVar2[6];\n      this[7] = paVar2[7];\n      this[8] = paVar2[8];\n      this = paVar2;\n    }\n  }\n  local_40 = __value;\n  local_3c = param_5;\n  local_38 = param_6;\n  local_34 = param_7;\n  local_30 = param_8;\n  local_2c = param_9;\n  local_28 = param_10;\n  local_24 = param_11;\n  local_20 = param_12;\n  if (__holeIndex < iVar7) {\n    do {\n      iVar4 = (iVar7 + -1) / 2;\n      this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x24);\n      iVar6 = gold::Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)this,\n                         (Output_reloc<9,_true,_64,_false> *)&local_40);\n      if ((-1 < iVar6) &&\n         ((iVar6 != 0 ||\n          (local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20))))) {\n        this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n        break;\n      }\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *paVar2 = *this;\n      paVar2[1] = this[1];\n      paVar2[2] = this[2];\n      paVar2[3] = this[3];\n      paVar2[4] = this[4];\n      paVar2[5] = this[5];\n      paVar2[6] = this[6];\n      paVar2[7] = this[7];\n      paVar2[8] = this[8];\n      iVar7 = iVar4;\n    } while (__holeIndex < iVar4);\n  }\nLAB_000eb5d4:\n  *this = local_40;\n  this[1] = local_3c;\n  this[2] = local_38;\n  this[3] = local_34;\n  this[4] = local_30;\n  this[5] = local_2c;\n  this[6] = local_28;\n  this[7].relobj = local_24;\n  this[8].relobj = local_20;\n  return;\n}\n\n" comment comment (declaration "void std::\n     __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4,_true,_64,_false>*,_std::vector<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>_>,_int,_gold::Output_reloc<4,_true,_64,_false>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,_true,_64,_false>::Sort_relocs_comparison>_>\n               (int __first,int __holeIndex,uint __len,anon_union_4_4_c82d8563_for_u1_ __value,\n               anon_union_4_4_c82d8563_for_u1_ param_5,anon_union_4_4_c82d8563_for_u1_ param_6,\n               anon_union_4_4_c82d8563_for_u1_ param_7,anon_union_4_4_c82d8563_for_u1_ param_8,\n               anon_union_4_4_c82d8563_for_u1_ param_9,anon_union_4_4_c82d8563_for_u1_ param_10,\n               Sized_relobj<64,_false> *param_11,Sized_relobj<64,_false> *param_12)\n\n{\n  int iVar1;" primitive_type (ERROR "std::\n     __adjust_heap<__gnu_cxx::__normal_iterator<gold::" identifier : : identifier < identifier : : identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier , identifier , identifier (ERROR ">*" > *) , (ERROR "_std::vector<gold::" identifier : : identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier , identifier , identifier (ERROR ">" >) , (ERROR "_std::allocator<gold::" identifier : : identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier , identifier , identifier (ERROR ">_>_>_>" > identifier > identifier > identifier >) , identifier , (ERROR "_gold::" identifier : :) identifier (ERROR "<4" < number_literal) , identifier , identifier , identifier (ERROR ">" >) , (ERROR "___gnu_cxx::__ops::_Iter_comp_iter<gold::" identifier : : identifier : : identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier , identifier , (ERROR "_false>::Sort_relocs_comparison>_>\n               (int __first,int __holeIndex,uint __len,anon_union_4_4_c82d8563_for_u1_ __value,\n               anon_union_4_4_c82d8563_for_u1_ param_5,anon_union_4_4_c82d8563_for_u1_ param_6,\n               anon_union_4_4_c82d8563_for_u1_ param_7,anon_union_4_4_c82d8563_for_u1_ param_8,\n               anon_union_4_4_c82d8563_for_u1_ param_9,anon_union_4_4_c82d8563_for_u1_ param_10,\n               Sized_relobj<64,_false> *param_11,Sized_relobj<64,_false> *param_12)\n\n{\n  int" identifier > : : identifier > (function_declarator "_>\n               (int __first,int __holeIndex,uint __len,anon_union_4_4_c82d8563_for_u1_ __value,\n               anon_union_4_4_c82d8563_for_u1_ param_5,anon_union_4_4_c82d8563_for_u1_ param_6,\n               anon_union_4_4_c82d8563_for_u1_ param_7,anon_union_4_4_c82d8563_for_u1_ param_8,\n               anon_union_4_4_c82d8563_for_u1_ param_9,anon_union_4_4_c82d8563_for_u1_ param_10,\n               Sized_relobj<64,_false> *param_11,Sized_relobj<64,_false> *param_12)" identifier (ERROR ">" >) (parameter_list "(int __first,int __holeIndex,uint __len,anon_union_4_4_c82d8563_for_u1_ __value,\n               anon_union_4_4_c82d8563_for_u1_ param_5,anon_union_4_4_c82d8563_for_u1_ param_6,\n               anon_union_4_4_c82d8563_for_u1_ param_7,anon_union_4_4_c82d8563_for_u1_ param_8,\n               anon_union_4_4_c82d8563_for_u1_ param_9,anon_union_4_4_c82d8563_for_u1_ param_10,\n               Sized_relobj<64,_false> *param_11,Sized_relobj<64,_false> *param_12)" ( (parameter_declaration "int __first" primitive_type identifier) , (parameter_declaration "int __holeIndex" primitive_type identifier) , (parameter_declaration "uint __len" type_identifier identifier) , (parameter_declaration "anon_union_4_4_c82d8563_for_u1_ __value" type_identifier identifier) , (parameter_declaration "anon_union_4_4_c82d8563_for_u1_ param_5" type_identifier identifier) , (parameter_declaration "anon_union_4_4_c82d8563_for_u1_ param_6" type_identifier identifier) , (parameter_declaration "anon_union_4_4_c82d8563_for_u1_ param_7" type_identifier identifier) , (parameter_declaration "anon_union_4_4_c82d8563_for_u1_ param_8" type_identifier identifier) , (parameter_declaration "anon_union_4_4_c82d8563_for_u1_ param_9" type_identifier identifier) , (parameter_declaration "anon_union_4_4_c82d8563_for_u1_ param_10" type_identifier identifier) , (parameter_declaration "Sized_relobj" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *param_11" type_identifier (ERROR ">" >) (pointer_declarator "*param_11" * identifier)) , (parameter_declaration "Sized_relobj" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *param_12" type_identifier (ERROR ">" >) (pointer_declarator "*param_12" * identifier)) ))) { primitive_type) identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *r2;" type_identifier (pointer_declarator "*r2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ local_40;" type_identifier identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ local_3c;" type_identifier identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ local_38;" type_identifier identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ local_34;" type_identifier identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ local_30;" type_identifier identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ local_2c;" type_identifier identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ local_28;" type_identifier identifier ;) (expression_statement "Sized_relobj<64,_false> *local_24;" (update_expression "Sized_relobj<64,_false> *local_24" (binary_expression "Sized_relobj<64,_false> *local_24" (binary_expression "Sized_relobj<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*local_24" * identifier)) --) ;) (expression_statement "Sized_relobj<64,_false> *local_20;" (update_expression "Sized_relobj<64,_false> *local_20" (binary_expression "Sized_relobj<64,_false> *local_20" (binary_expression "Sized_relobj<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*local_20" * identifier)) --) ;) (expression_statement "iVar4 = (int)(__len - 1) / 2;" (assignment_expression "iVar4 = (int)(__len - 1) / 2" identifier = (binary_expression "(int)(__len - 1) / 2" (cast_expression "(int)(__len - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(__len - 1)" ( (binary_expression "__len - 1" identifier - number_literal) ))) / number_literal)) ;) (expression_statement "iVar6 = __holeIndex;" (assignment_expression "iVar6 = __holeIndex" identifier = identifier) ;) (if_statement "if (__holeIndex < iVar4) {\n    do {\n      iVar3 = (iVar6 + 1) * 2;\n      iVar1 = iVar3 + -1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + (iVar6 + 1) * 0x48);\n      r2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar1 * 0x24);\n      iVar5 = gold::Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)paVar2,\n                         (Output_reloc<9,_true,_64,_false> *)r2);\n      this = r2;\n      iVar7 = iVar1;\n      if (((-1 < iVar5) && (this = paVar2, iVar7 = iVar3, iVar5 == 0)) &&\n         (paVar2[8].relobj < r2[8].relobj ||\n          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <\n          (uint)(paVar2[7].relobj < r2[7].relobj))) {\n        this = r2;\n        iVar7 = iVar1;\n      }\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar6 * 0x24);\n      *paVar2 = *this;\n      paVar2[1] = this[1];\n      paVar2[2] = this[2];\n      paVar2[3] = this[3];\n      paVar2[4] = this[4];\n      paVar2[5] = this[5];\n      paVar2[6] = this[6];\n      paVar2[7] = this[7];\n      paVar2[8] = this[8];\n      iVar6 = iVar7;\n    } while (iVar7 < iVar4);\n    if ((__len & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + __holeIndex * 0x24);\n    iVar7 = __holeIndex;\n    if ((__len & 1) != 0) {\n      local_40 = __value;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(__len - 2) / 2 == iVar7) {\n      iVar7 = iVar7 * 2 + 1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *this = *paVar2;\n      this[1] = paVar2[1];\n      this[2] = paVar2[2];\n      this[3] = paVar2[3];\n      this[4] = paVar2[4];\n      this[5] = paVar2[5];\n      this[6] = paVar2[6];\n      this[7] = paVar2[7];\n      this[8] = paVar2[8];\n      this = paVar2;\n    }\n  }" if (parenthesized_expression "(__holeIndex < iVar4)" ( (binary_expression "__holeIndex < iVar4" identifier < identifier) )) (compound_statement "{\n    do {\n      iVar3 = (iVar6 + 1) * 2;\n      iVar1 = iVar3 + -1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + (iVar6 + 1) * 0x48);\n      r2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar1 * 0x24);\n      iVar5 = gold::Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)paVar2,\n                         (Output_reloc<9,_true,_64,_false> *)r2);\n      this = r2;\n      iVar7 = iVar1;\n      if (((-1 < iVar5) && (this = paVar2, iVar7 = iVar3, iVar5 == 0)) &&\n         (paVar2[8].relobj < r2[8].relobj ||\n          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <\n          (uint)(paVar2[7].relobj < r2[7].relobj))) {\n        this = r2;\n        iVar7 = iVar1;\n      }\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar6 * 0x24);\n      *paVar2 = *this;\n      paVar2[1] = this[1];\n      paVar2[2] = this[2];\n      paVar2[3] = this[3];\n      paVar2[4] = this[4];\n      paVar2[5] = this[5];\n      paVar2[6] = this[6];\n      paVar2[7] = this[7];\n      paVar2[8] = this[8];\n      iVar6 = iVar7;\n    } while (iVar7 < iVar4);\n    if ((__len & 1) == 0) goto LAB_000eb6b0;\n  }" { (do_statement "do {\n      iVar3 = (iVar6 + 1) * 2;\n      iVar1 = iVar3 + -1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + (iVar6 + 1) * 0x48);\n      r2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar1 * 0x24);\n      iVar5 = gold::Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)paVar2,\n                         (Output_reloc<9,_true,_64,_false> *)r2);\n      this = r2;\n      iVar7 = iVar1;\n      if (((-1 < iVar5) && (this = paVar2, iVar7 = iVar3, iVar5 == 0)) &&\n         (paVar2[8].relobj < r2[8].relobj ||\n          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <\n          (uint)(paVar2[7].relobj < r2[7].relobj))) {\n        this = r2;\n        iVar7 = iVar1;\n      }\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar6 * 0x24);\n      *paVar2 = *this;\n      paVar2[1] = this[1];\n      paVar2[2] = this[2];\n      paVar2[3] = this[3];\n      paVar2[4] = this[4];\n      paVar2[5] = this[5];\n      paVar2[6] = this[6];\n      paVar2[7] = this[7];\n      paVar2[8] = this[8];\n      iVar6 = iVar7;\n    } while (iVar7 < iVar4);" do (compound_statement "{\n      iVar3 = (iVar6 + 1) * 2;\n      iVar1 = iVar3 + -1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + (iVar6 + 1) * 0x48);\n      r2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar1 * 0x24);\n      iVar5 = gold::Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)paVar2,\n                         (Output_reloc<9,_true,_64,_false> *)r2);\n      this = r2;\n      iVar7 = iVar1;\n      if (((-1 < iVar5) && (this = paVar2, iVar7 = iVar3, iVar5 == 0)) &&\n         (paVar2[8].relobj < r2[8].relobj ||\n          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <\n          (uint)(paVar2[7].relobj < r2[7].relobj))) {\n        this = r2;\n        iVar7 = iVar1;\n      }\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar6 * 0x24);\n      *paVar2 = *this;\n      paVar2[1] = this[1];\n      paVar2[2] = this[2];\n      paVar2[3] = this[3];\n      paVar2[4] = this[4];\n      paVar2[5] = this[5];\n      paVar2[6] = this[6];\n      paVar2[7] = this[7];\n      paVar2[8] = this[8];\n      iVar6 = iVar7;\n    }" { (expression_statement "iVar3 = (iVar6 + 1) * 2;" (assignment_expression "iVar3 = (iVar6 + 1) * 2" identifier = (binary_expression "(iVar6 + 1) * 2" (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "iVar1 = iVar3 + -1;" (assignment_expression "iVar1 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + (iVar6 + 1) * 0x48);" (assignment_expression "paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + (iVar6 + 1) * 0x48)" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)(__first + (iVar6 + 1) * 0x48)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + (iVar6 + 1) * 0x48)" ( (binary_expression "__first + (iVar6 + 1) * 0x48" identifier + (binary_expression "(iVar6 + 1) * 0x48" (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "r2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar1 * 0x24);" (assignment_expression "r2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar1 * 0x24)" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar1 * 0x24)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + iVar1 * 0x24)" ( (binary_expression "__first + iVar1 * 0x24" identifier + (binary_expression "iVar1 * 0x24" identifier * number_literal)) )))) ;) (ERROR "iVar5 = gold::" (assignment_expression "iVar5 = gold" identifier = identifier) : :) (expression_statement "Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)paVar2,\n                         (Output_reloc<9,_true,_64,_false> *)r2);" (comma_expression "Output_reloc<9,_true,_64,_false>::compare" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_false>::compare" identifier , (comma_expression "_64,_false>::compare" identifier , (binary_expression "_false>::compare" identifier > (ERROR "::" : :) identifier)))) (ERROR "((Output_reloc<9,_true,_64,_false> *)paVar2,\n                         (Output_reloc<9,_true,_64,_false> *)r2)" ( ( (comma_expression "Output_reloc<9,_true,_64,_false> *)paVar2,\n                         (Output_reloc<9,_true,_64,_false> *)r2)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_false> *)paVar2,\n                         (Output_reloc<9,_true,_64,_false> *)r2)" identifier , (comma_expression "_64,_false> *)paVar2,\n                         (Output_reloc<9,_true,_64,_false> *)r2)" identifier , (comma_expression "_false> *)paVar2,\n                         (Output_reloc<9,_true,_64,_false> *)r2)" (binary_expression "_false> *)paVar2" identifier > (pointer_expression "*)paVar2" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Output_reloc<9,_true,_64,_false> *)r2)" ( (comma_expression "Output_reloc<9,_true,_64,_false> *)r2" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_false> *)r2" identifier , (comma_expression "_64,_false> *)r2" identifier , (binary_expression "_false> *)r2" identifier > (pointer_expression "*)r2" * (ERROR ")" )) identifier))))) ))))))) ;) (expression_statement "this = r2;" (assignment_expression "this = r2" identifier = identifier) ;) (expression_statement "iVar7 = iVar1;" (assignment_expression "iVar7 = iVar1" identifier = identifier) ;) (if_statement "if (((-1 < iVar5) && (this = paVar2, iVar7 = iVar3, iVar5 == 0)) &&\n         (paVar2[8].relobj < r2[8].relobj ||\n          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <\n          (uint)(paVar2[7].relobj < r2[7].relobj))) {\n        this = r2;\n        iVar7 = iVar1;\n      }" if (parenthesized_expression "(((-1 < iVar5) && (this = paVar2, iVar7 = iVar3, iVar5 == 0)) &&\n         (paVar2[8].relobj < r2[8].relobj ||\n          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <\n          (uint)(paVar2[7].relobj < r2[7].relobj)))" ( (binary_expression "((-1 < iVar5) && (this = paVar2, iVar7 = iVar3, iVar5 == 0)) &&\n         (paVar2[8].relobj < r2[8].relobj ||\n          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <\n          (uint)(paVar2[7].relobj < r2[7].relobj))" (parenthesized_expression "((-1 < iVar5) && (this = paVar2, iVar7 = iVar3, iVar5 == 0))" ( (binary_expression "(-1 < iVar5) && (this = paVar2, iVar7 = iVar3, iVar5 == 0)" (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) && (parenthesized_expression "(this = paVar2, iVar7 = iVar3, iVar5 == 0)" ( (comma_expression "this = paVar2, iVar7 = iVar3, iVar5 == 0" (assignment_expression "this = paVar2" identifier = identifier) , (comma_expression "iVar7 = iVar3, iVar5 == 0" (assignment_expression "iVar7 = iVar3" identifier = identifier) , (binary_expression "iVar5 == 0" identifier == number_literal))) ))) )) && (parenthesized_expression "(paVar2[8].relobj < r2[8].relobj ||\n          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <\n          (uint)(paVar2[7].relobj < r2[7].relobj))" ( (binary_expression "paVar2[8].relobj < r2[8].relobj ||\n          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <\n          (uint)(paVar2[7].relobj < r2[7].relobj)" (binary_expression "paVar2[8].relobj < r2[8].relobj" (field_expression "paVar2[8].relobj" (subscript_expression "paVar2[8]" identifier [ number_literal ]) . field_identifier) < (field_expression "r2[8].relobj" (subscript_expression "r2[8]" identifier [ number_literal ]) . field_identifier)) || (binary_expression "(uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <\n          (uint)(paVar2[7].relobj < r2[7].relobj)" (call_expression "(uint)((int)paVar2[8].relobj - (int)r2[8].relobj)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)paVar2[8].relobj - (int)r2[8].relobj)" ( (binary_expression "(int)paVar2[8].relobj - (int)r2[8].relobj" (cast_expression "(int)paVar2[8].relobj" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar2[8].relobj" (subscript_expression "paVar2[8]" identifier [ number_literal ]) . field_identifier)) - (cast_expression "(int)r2[8].relobj" ( (type_descriptor "int" primitive_type) ) (field_expression "r2[8].relobj" (subscript_expression "r2[8]" identifier [ number_literal ]) . field_identifier))) ))) < (call_expression "(uint)(paVar2[7].relobj < r2[7].relobj)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(paVar2[7].relobj < r2[7].relobj)" ( (binary_expression "paVar2[7].relobj < r2[7].relobj" (field_expression "paVar2[7].relobj" (subscript_expression "paVar2[7]" identifier [ number_literal ]) . field_identifier) < (field_expression "r2[7].relobj" (subscript_expression "r2[7]" identifier [ number_literal ]) . field_identifier)) ))))) ))) )) (compound_statement "{\n        this = r2;\n        iVar7 = iVar1;\n      }" { (expression_statement "this = r2;" (assignment_expression "this = r2" identifier = identifier) ;) (expression_statement "iVar7 = iVar1;" (assignment_expression "iVar7 = iVar1" identifier = identifier) ;) })) (expression_statement "paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar6 * 0x24);" (assignment_expression "paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar6 * 0x24)" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar6 * 0x24)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + iVar6 * 0x24)" ( (binary_expression "__first + iVar6 * 0x24" identifier + (binary_expression "iVar6 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "*paVar2 = *this;" (assignment_expression "*paVar2 = *this" (pointer_expression "*paVar2" * identifier) = (pointer_expression "*this" * identifier)) ;) (expression_statement "paVar2[1] = this[1];" (assignment_expression "paVar2[1] = this[1]" (subscript_expression "paVar2[1]" identifier [ number_literal ]) = (subscript_expression "this[1]" identifier [ number_literal ])) ;) (expression_statement "paVar2[2] = this[2];" (assignment_expression "paVar2[2] = this[2]" (subscript_expression "paVar2[2]" identifier [ number_literal ]) = (subscript_expression "this[2]" identifier [ number_literal ])) ;) (expression_statement "paVar2[3] = this[3];" (assignment_expression "paVar2[3] = this[3]" (subscript_expression "paVar2[3]" identifier [ number_literal ]) = (subscript_expression "this[3]" identifier [ number_literal ])) ;) (expression_statement "paVar2[4] = this[4];" (assignment_expression "paVar2[4] = this[4]" (subscript_expression "paVar2[4]" identifier [ number_literal ]) = (subscript_expression "this[4]" identifier [ number_literal ])) ;) (expression_statement "paVar2[5] = this[5];" (assignment_expression "paVar2[5] = this[5]" (subscript_expression "paVar2[5]" identifier [ number_literal ]) = (subscript_expression "this[5]" identifier [ number_literal ])) ;) (expression_statement "paVar2[6] = this[6];" (assignment_expression "paVar2[6] = this[6]" (subscript_expression "paVar2[6]" identifier [ number_literal ]) = (subscript_expression "this[6]" identifier [ number_literal ])) ;) (expression_statement "paVar2[7] = this[7];" (assignment_expression "paVar2[7] = this[7]" (subscript_expression "paVar2[7]" identifier [ number_literal ]) = (subscript_expression "this[7]" identifier [ number_literal ])) ;) (expression_statement "paVar2[8] = this[8];" (assignment_expression "paVar2[8] = this[8]" (subscript_expression "paVar2[8]" identifier [ number_literal ]) = (subscript_expression "this[8]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = iVar7;" (assignment_expression "iVar6 = iVar7" identifier = identifier) ;) }) while (parenthesized_expression "(iVar7 < iVar4)" ( (binary_expression "iVar7 < iVar4" identifier < identifier) )) ;) (if_statement "if ((__len & 1) == 0) goto LAB_000eb6b0;" if (parenthesized_expression "((__len & 1) == 0)" ( (binary_expression "(__len & 1) == 0" (parenthesized_expression "(__len & 1)" ( (binary_expression "__len & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000eb6b0;" goto statement_identifier ;)) }) (else_clause "else {\n    this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + __holeIndex * 0x24);\n    iVar7 = __holeIndex;\n    if ((__len & 1) != 0) {\n      local_40 = __value;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(__len - 2) / 2 == iVar7) {\n      iVar7 = iVar7 * 2 + 1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *this = *paVar2;\n      this[1] = paVar2[1];\n      this[2] = paVar2[2];\n      this[3] = paVar2[3];\n      this[4] = paVar2[4];\n      this[5] = paVar2[5];\n      this[6] = paVar2[6];\n      this[7] = paVar2[7];\n      this[8] = paVar2[8];\n      this = paVar2;\n    }\n  }" else (compound_statement "{\n    this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + __holeIndex * 0x24);\n    iVar7 = __holeIndex;\n    if ((__len & 1) != 0) {\n      local_40 = __value;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(__len - 2) / 2 == iVar7) {\n      iVar7 = iVar7 * 2 + 1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *this = *paVar2;\n      this[1] = paVar2[1];\n      this[2] = paVar2[2];\n      this[3] = paVar2[3];\n      this[4] = paVar2[4];\n      this[5] = paVar2[5];\n      this[6] = paVar2[6];\n      this[7] = paVar2[7];\n      this[8] = paVar2[8];\n      this = paVar2;\n    }\n  }" { (expression_statement "this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + __holeIndex * 0x24);" (assignment_expression "this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + __holeIndex * 0x24)" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)(__first + __holeIndex * 0x24)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + __holeIndex * 0x24)" ( (binary_expression "__first + __holeIndex * 0x24" identifier + (binary_expression "__holeIndex * 0x24" identifier * number_literal)) )))) ;) (expression_statement "iVar7 = __holeIndex;" (assignment_expression "iVar7 = __holeIndex" identifier = identifier) ;) (if_statement "if ((__len & 1) != 0) {\n      local_40 = __value;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }" if (parenthesized_expression "((__len & 1) != 0)" ( (binary_expression "(__len & 1) != 0" (parenthesized_expression "(__len & 1)" ( (binary_expression "__len & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_40 = __value;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }" { (expression_statement "local_40 = __value;" (assignment_expression "local_40 = __value" identifier = identifier) ;) (expression_statement "local_3c = param_5;" (assignment_expression "local_3c = param_5" identifier = identifier) ;) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" identifier = identifier) ;) (expression_statement "local_34 = param_7;" (assignment_expression "local_34 = param_7" identifier = identifier) ;) (expression_statement "local_30 = param_8;" (assignment_expression "local_30 = param_8" identifier = identifier) ;) (expression_statement "local_2c = param_9;" (assignment_expression "local_2c = param_9" identifier = identifier) ;) (expression_statement "local_28 = param_10;" (assignment_expression "local_28 = param_10" identifier = identifier) ;) (expression_statement "local_24 = param_11;" (assignment_expression "local_24 = param_11" identifier = identifier) ;) (expression_statement "local_20 = param_12;" (assignment_expression "local_20 = param_12" identifier = identifier) ;) (goto_statement "goto LAB_000eb5d4;" goto statement_identifier ;) })) (labeled_statement "LAB_000eb6b0:\n    if ((int)(__len - 2) / 2 == iVar7) {\n      iVar7 = iVar7 * 2 + 1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *this = *paVar2;\n      this[1] = paVar2[1];\n      this[2] = paVar2[2];\n      this[3] = paVar2[3];\n      this[4] = paVar2[4];\n      this[5] = paVar2[5];\n      this[6] = paVar2[6];\n      this[7] = paVar2[7];\n      this[8] = paVar2[8];\n      this = paVar2;\n    }" statement_identifier : (if_statement "if ((int)(__len - 2) / 2 == iVar7) {\n      iVar7 = iVar7 * 2 + 1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *this = *paVar2;\n      this[1] = paVar2[1];\n      this[2] = paVar2[2];\n      this[3] = paVar2[3];\n      this[4] = paVar2[4];\n      this[5] = paVar2[5];\n      this[6] = paVar2[6];\n      this[7] = paVar2[7];\n      this[8] = paVar2[8];\n      this = paVar2;\n    }" if (parenthesized_expression "((int)(__len - 2) / 2 == iVar7)" ( (binary_expression "(int)(__len - 2) / 2 == iVar7" (binary_expression "(int)(__len - 2) / 2" (cast_expression "(int)(__len - 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(__len - 2)" ( (binary_expression "__len - 2" identifier - number_literal) ))) / number_literal) == identifier) )) (compound_statement "{\n      iVar7 = iVar7 * 2 + 1;\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *this = *paVar2;\n      this[1] = paVar2[1];\n      this[2] = paVar2[2];\n      this[3] = paVar2[3];\n      this[4] = paVar2[4];\n      this[5] = paVar2[5];\n      this[6] = paVar2[6];\n      this[7] = paVar2[7];\n      this[8] = paVar2[8];\n      this = paVar2;\n    }" { (expression_statement "iVar7 = iVar7 * 2 + 1;" (assignment_expression "iVar7 = iVar7 * 2 + 1" identifier = (binary_expression "iVar7 * 2 + 1" (binary_expression "iVar7 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);" (assignment_expression "paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24)" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + iVar7 * 0x24)" ( (binary_expression "__first + iVar7 * 0x24" identifier + (binary_expression "iVar7 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "*this = *paVar2;" (assignment_expression "*this = *paVar2" (pointer_expression "*this" * identifier) = (pointer_expression "*paVar2" * identifier)) ;) (expression_statement "this[1] = paVar2[1];" (assignment_expression "this[1] = paVar2[1]" (subscript_expression "this[1]" identifier [ number_literal ]) = (subscript_expression "paVar2[1]" identifier [ number_literal ])) ;) (expression_statement "this[2] = paVar2[2];" (assignment_expression "this[2] = paVar2[2]" (subscript_expression "this[2]" identifier [ number_literal ]) = (subscript_expression "paVar2[2]" identifier [ number_literal ])) ;) (expression_statement "this[3] = paVar2[3];" (assignment_expression "this[3] = paVar2[3]" (subscript_expression "this[3]" identifier [ number_literal ]) = (subscript_expression "paVar2[3]" identifier [ number_literal ])) ;) (expression_statement "this[4] = paVar2[4];" (assignment_expression "this[4] = paVar2[4]" (subscript_expression "this[4]" identifier [ number_literal ]) = (subscript_expression "paVar2[4]" identifier [ number_literal ])) ;) (expression_statement "this[5] = paVar2[5];" (assignment_expression "this[5] = paVar2[5]" (subscript_expression "this[5]" identifier [ number_literal ]) = (subscript_expression "paVar2[5]" identifier [ number_literal ])) ;) (expression_statement "this[6] = paVar2[6];" (assignment_expression "this[6] = paVar2[6]" (subscript_expression "this[6]" identifier [ number_literal ]) = (subscript_expression "paVar2[6]" identifier [ number_literal ])) ;) (expression_statement "this[7] = paVar2[7];" (assignment_expression "this[7] = paVar2[7]" (subscript_expression "this[7]" identifier [ number_literal ]) = (subscript_expression "paVar2[7]" identifier [ number_literal ])) ;) (expression_statement "this[8] = paVar2[8];" (assignment_expression "this[8] = paVar2[8]" (subscript_expression "this[8]" identifier [ number_literal ]) = (subscript_expression "paVar2[8]" identifier [ number_literal ])) ;) (expression_statement "this = paVar2;" (assignment_expression "this = paVar2" identifier = identifier) ;) }))) }))) (expression_statement "local_40 = __value;" (assignment_expression "local_40 = __value" identifier = identifier) ;) (expression_statement "local_3c = param_5;" (assignment_expression "local_3c = param_5" identifier = identifier) ;) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" identifier = identifier) ;) (expression_statement "local_34 = param_7;" (assignment_expression "local_34 = param_7" identifier = identifier) ;) (expression_statement "local_30 = param_8;" (assignment_expression "local_30 = param_8" identifier = identifier) ;) (expression_statement "local_2c = param_9;" (assignment_expression "local_2c = param_9" identifier = identifier) ;) (expression_statement "local_28 = param_10;" (assignment_expression "local_28 = param_10" identifier = identifier) ;) (expression_statement "local_24 = param_11;" (assignment_expression "local_24 = param_11" identifier = identifier) ;) (expression_statement "local_20 = param_12;" (assignment_expression "local_20 = param_12" identifier = identifier) ;) (if_statement "if (__holeIndex < iVar7) {\n    do {\n      iVar4 = (iVar7 + -1) / 2;\n      this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x24);\n      iVar6 = gold::Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)this,\n                         (Output_reloc<9,_true,_64,_false> *)&local_40);\n      if ((-1 < iVar6) &&\n         ((iVar6 != 0 ||\n          (local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20))))) {\n        this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n        break;\n      }\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *paVar2 = *this;\n      paVar2[1] = this[1];\n      paVar2[2] = this[2];\n      paVar2[3] = this[3];\n      paVar2[4] = this[4];\n      paVar2[5] = this[5];\n      paVar2[6] = this[6];\n      paVar2[7] = this[7];\n      paVar2[8] = this[8];\n      iVar7 = iVar4;\n    } while (__holeIndex < iVar4);\n  }" if (parenthesized_expression "(__holeIndex < iVar7)" ( (binary_expression "__holeIndex < iVar7" identifier < identifier) )) (compound_statement "{\n    do {\n      iVar4 = (iVar7 + -1) / 2;\n      this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x24);\n      iVar6 = gold::Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)this,\n                         (Output_reloc<9,_true,_64,_false> *)&local_40);\n      if ((-1 < iVar6) &&\n         ((iVar6 != 0 ||\n          (local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20))))) {\n        this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n        break;\n      }\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *paVar2 = *this;\n      paVar2[1] = this[1];\n      paVar2[2] = this[2];\n      paVar2[3] = this[3];\n      paVar2[4] = this[4];\n      paVar2[5] = this[5];\n      paVar2[6] = this[6];\n      paVar2[7] = this[7];\n      paVar2[8] = this[8];\n      iVar7 = iVar4;\n    } while (__holeIndex < iVar4);\n  }" { (do_statement "do {\n      iVar4 = (iVar7 + -1) / 2;\n      this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x24);\n      iVar6 = gold::Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)this,\n                         (Output_reloc<9,_true,_64,_false> *)&local_40);\n      if ((-1 < iVar6) &&\n         ((iVar6 != 0 ||\n          (local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20))))) {\n        this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n        break;\n      }\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *paVar2 = *this;\n      paVar2[1] = this[1];\n      paVar2[2] = this[2];\n      paVar2[3] = this[3];\n      paVar2[4] = this[4];\n      paVar2[5] = this[5];\n      paVar2[6] = this[6];\n      paVar2[7] = this[7];\n      paVar2[8] = this[8];\n      iVar7 = iVar4;\n    } while (__holeIndex < iVar4);" do (compound_statement "{\n      iVar4 = (iVar7 + -1) / 2;\n      this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x24);\n      iVar6 = gold::Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)this,\n                         (Output_reloc<9,_true,_64,_false> *)&local_40);\n      if ((-1 < iVar6) &&\n         ((iVar6 != 0 ||\n          (local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20))))) {\n        this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n        break;\n      }\n      paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n      *paVar2 = *this;\n      paVar2[1] = this[1];\n      paVar2[2] = this[2];\n      paVar2[3] = this[3];\n      paVar2[4] = this[4];\n      paVar2[5] = this[5];\n      paVar2[6] = this[6];\n      paVar2[7] = this[7];\n      paVar2[8] = this[8];\n      iVar7 = iVar4;\n    }" { (expression_statement "iVar4 = (iVar7 + -1) / 2;" (assignment_expression "iVar4 = (iVar7 + -1) / 2" identifier = (binary_expression "(iVar7 + -1) / 2" (parenthesized_expression "(iVar7 + -1)" ( (binary_expression "iVar7 + -1" identifier + number_literal) )) / number_literal)) ;) (expression_statement "this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x24);" (assignment_expression "this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x24)" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x24)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + iVar4 * 0x24)" ( (binary_expression "__first + iVar4 * 0x24" identifier + (binary_expression "iVar4 * 0x24" identifier * number_literal)) )))) ;) (ERROR "iVar6 = gold::" (assignment_expression "iVar6 = gold" identifier = identifier) : :) (expression_statement "Output_reloc<9,_true,_64,_false>::compare\n                        ((Output_reloc<9,_true,_64,_false> *)this,\n                         (Output_reloc<9,_true,_64,_false> *)&local_40);" (comma_expression "Output_reloc<9,_true,_64,_false>::compare" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_false>::compare" identifier , (comma_expression "_64,_false>::compare" identifier , (binary_expression "_false>::compare" identifier > (ERROR "::" : :) identifier)))) (ERROR "((Output_reloc<9,_true,_64,_false> *)this,\n                         (Output_reloc<9,_true,_64,_false> *)&local_40)" ( ( (comma_expression "Output_reloc<9,_true,_64,_false> *)this,\n                         (Output_reloc<9,_true,_64,_false> *)&local_40)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_false> *)this,\n                         (Output_reloc<9,_true,_64,_false> *)&local_40)" identifier , (comma_expression "_64,_false> *)this,\n                         (Output_reloc<9,_true,_64,_false> *)&local_40)" identifier , (comma_expression "_false> *)this,\n                         (Output_reloc<9,_true,_64,_false> *)&local_40)" (binary_expression "_false> *)this" identifier > (pointer_expression "*)this" * (ERROR ")" )) identifier)) , (parenthesized_expression "(Output_reloc<9,_true,_64,_false> *)&local_40)" ( (comma_expression "Output_reloc<9,_true,_64,_false> *)&local_40" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_false> *)&local_40" identifier , (comma_expression "_64,_false> *)&local_40" identifier , (binary_expression "_false> *)&local_40" identifier > (pointer_expression "*)&local_40" * (ERROR ")" )) (pointer_expression "&local_40" & identifier)))))) ))))))) ;) (if_statement "if ((-1 < iVar6) &&\n         ((iVar6 != 0 ||\n          (local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20))))) {\n        this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n        break;\n      }" if (parenthesized_expression "((-1 < iVar6) &&\n         ((iVar6 != 0 ||\n          (local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20)))))" ( (binary_expression "(-1 < iVar6) &&\n         ((iVar6 != 0 ||\n          (local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20))))" (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) && (parenthesized_expression "((iVar6 != 0 ||\n          (local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20))))" ( (parenthesized_expression "(iVar6 != 0 ||\n          (local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20)))" ( (binary_expression "iVar6 != 0 ||\n          (local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20))" (binary_expression "iVar6 != 0" identifier != number_literal) || (parenthesized_expression "(local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20))" ( (binary_expression "local_20 <= this[8].relobj &&\n           (uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20)" (binary_expression "local_20 <= this[8].relobj" identifier <= (field_expression "this[8].relobj" (subscript_expression "this[8]" identifier [ number_literal ]) . field_identifier)) && (binary_expression "(uint)(this[7].relobj < local_24) <= (uint)((int)this[8].relobj - (int)local_20)" (call_expression "(uint)(this[7].relobj < local_24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this[7].relobj < local_24)" ( (binary_expression "this[7].relobj < local_24" (field_expression "this[7].relobj" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) < identifier) ))) <= (call_expression "(uint)((int)this[8].relobj - (int)local_20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)this[8].relobj - (int)local_20)" ( (binary_expression "(int)this[8].relobj - (int)local_20" (cast_expression "(int)this[8].relobj" ( (type_descriptor "int" primitive_type) ) (field_expression "this[8].relobj" (subscript_expression "this[8]" identifier [ number_literal ]) . field_identifier)) - (cast_expression "(int)local_20" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ))) )) ))) )) (compound_statement "{\n        this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);\n        break;\n      }" { (expression_statement "this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);" (assignment_expression "this = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24)" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + iVar7 * 0x24)" ( (binary_expression "__first + iVar7 * 0x24" identifier + (binary_expression "iVar7 * 0x24" identifier * number_literal)) )))) ;) (break_statement "break;" break ;) })) (expression_statement "paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24);" (assignment_expression "paVar2 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24)" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar7 * 0x24)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + iVar7 * 0x24)" ( (binary_expression "__first + iVar7 * 0x24" identifier + (binary_expression "iVar7 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "*paVar2 = *this;" (assignment_expression "*paVar2 = *this" (pointer_expression "*paVar2" * identifier) = (pointer_expression "*this" * identifier)) ;) (expression_statement "paVar2[1] = this[1];" (assignment_expression "paVar2[1] = this[1]" (subscript_expression "paVar2[1]" identifier [ number_literal ]) = (subscript_expression "this[1]" identifier [ number_literal ])) ;) (expression_statement "paVar2[2] = this[2];" (assignment_expression "paVar2[2] = this[2]" (subscript_expression "paVar2[2]" identifier [ number_literal ]) = (subscript_expression "this[2]" identifier [ number_literal ])) ;) (expression_statement "paVar2[3] = this[3];" (assignment_expression "paVar2[3] = this[3]" (subscript_expression "paVar2[3]" identifier [ number_literal ]) = (subscript_expression "this[3]" identifier [ number_literal ])) ;) (expression_statement "paVar2[4] = this[4];" (assignment_expression "paVar2[4] = this[4]" (subscript_expression "paVar2[4]" identifier [ number_literal ]) = (subscript_expression "this[4]" identifier [ number_literal ])) ;) (expression_statement "paVar2[5] = this[5];" (assignment_expression "paVar2[5] = this[5]" (subscript_expression "paVar2[5]" identifier [ number_literal ]) = (subscript_expression "this[5]" identifier [ number_literal ])) ;) (expression_statement "paVar2[6] = this[6];" (assignment_expression "paVar2[6] = this[6]" (subscript_expression "paVar2[6]" identifier [ number_literal ]) = (subscript_expression "this[6]" identifier [ number_literal ])) ;) (expression_statement "paVar2[7] = this[7];" (assignment_expression "paVar2[7] = this[7]" (subscript_expression "paVar2[7]" identifier [ number_literal ]) = (subscript_expression "this[7]" identifier [ number_literal ])) ;) (expression_statement "paVar2[8] = this[8];" (assignment_expression "paVar2[8] = this[8]" (subscript_expression "paVar2[8]" identifier [ number_literal ]) = (subscript_expression "this[8]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = iVar4;" (assignment_expression "iVar7 = iVar4" identifier = identifier) ;) }) while (parenthesized_expression "(__holeIndex < iVar4)" ( (binary_expression "__holeIndex < iVar4" identifier < identifier) )) ;) })) (labeled_statement "LAB_000eb5d4:\n  *this = local_40;" statement_identifier : (expression_statement "*this = local_40;" (assignment_expression "*this = local_40" (pointer_expression "*this" * identifier) = identifier) ;)) (expression_statement "this[1] = local_3c;" (assignment_expression "this[1] = local_3c" (subscript_expression "this[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "this[2] = local_38;" (assignment_expression "this[2] = local_38" (subscript_expression "this[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "this[3] = local_34;" (assignment_expression "this[3] = local_34" (subscript_expression "this[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "this[4] = local_30;" (assignment_expression "this[4] = local_30" (subscript_expression "this[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "this[5] = local_2c;" (assignment_expression "this[5] = local_2c" (subscript_expression "this[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "this[6] = local_28;" (assignment_expression "this[6] = local_28" (subscript_expression "this[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "this[7].relobj = local_24;" (assignment_expression "this[7].relobj = local_24" (field_expression "this[7].relobj" (subscript_expression "this[7]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "this[8].relobj = local_20;" (assignment_expression "this[8].relobj = local_20" (field_expression "this[8].relobj" (subscript_expression "this[8]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_000eb440(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 undefined4 param_10,uint param_11,uint param_12)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  uint local_24;\n  uint local_20;\n  \n  iVar5 = (int)(param_3 - 1) / 2;\n  iVar7 = param_2;\n  if (param_2 < iVar5) {\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }\n  local_40 = param_4;\n  local_3c = param_5;\n  local_38 = param_6;\n  local_34 = param_7;\n  local_30 = param_8;\n  local_2c = param_9;\n  local_28 = param_10;\n  local_24 = param_11;\n  local_20 = param_12;\n  if (param_2 < iVar9) {\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }\nLAB_000eb5d4:\n  *puVar8 = local_40;\n  puVar8[1] = local_3c;\n  puVar8[2] = local_38;\n  puVar8[3] = local_34;\n  puVar8[4] = local_30;\n  puVar8[5] = local_2c;\n  puVar8[6] = local_28;\n  puVar8[7] = local_24;\n  puVar8[8] = local_20;\n  return;\n}\n\n" (function_definition "void FUN_000eb440(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 undefined4 param_10,uint param_11,uint param_12)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  uint local_24;\n  uint local_20;\n  \n  iVar5 = (int)(param_3 - 1) / 2;\n  iVar7 = param_2;\n  if (param_2 < iVar5) {\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }\n  local_40 = param_4;\n  local_3c = param_5;\n  local_38 = param_6;\n  local_34 = param_7;\n  local_30 = param_8;\n  local_2c = param_9;\n  local_28 = param_10;\n  local_24 = param_11;\n  local_20 = param_12;\n  if (param_2 < iVar9) {\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }\nLAB_000eb5d4:\n  *puVar8 = local_40;\n  puVar8[1] = local_3c;\n  puVar8[2] = local_38;\n  puVar8[3] = local_34;\n  puVar8[4] = local_30;\n  puVar8[5] = local_2c;\n  puVar8[6] = local_28;\n  puVar8[7] = local_24;\n  puVar8[8] = local_20;\n  return;\n}" primitive_type (function_declarator "FUN_000eb440(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 undefined4 param_10,uint param_11,uint param_12)" identifier (parameter_list "(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 undefined4 param_10,uint param_11,uint param_12)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 param_10" type_identifier identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "uint param_12" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  uint local_24;\n  uint local_20;\n  \n  iVar5 = (int)(param_3 - 1) / 2;\n  iVar7 = param_2;\n  if (param_2 < iVar5) {\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }\n  local_40 = param_4;\n  local_3c = param_5;\n  local_38 = param_6;\n  local_34 = param_7;\n  local_30 = param_8;\n  local_2c = param_9;\n  local_28 = param_10;\n  local_24 = param_11;\n  local_20 = param_12;\n  if (param_2 < iVar9) {\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }\nLAB_000eb5d4:\n  *puVar8 = local_40;\n  puVar8[1] = local_3c;\n  puVar8[2] = local_38;\n  puVar8[3] = local_34;\n  puVar8[4] = local_30;\n  puVar8[5] = local_2c;\n  puVar8[6] = local_28;\n  puVar8[7] = local_24;\n  puVar8[8] = local_20;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "uint local_20;" type_identifier identifier ;) (expression_statement "iVar5 = (int)(param_3 - 1) / 2;" (assignment_expression "iVar5 = (int)(param_3 - 1) / 2" identifier = (binary_expression "(int)(param_3 - 1) / 2" (cast_expression "(int)(param_3 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 - 1)" ( (binary_expression "param_3 - 1" identifier - number_literal) ))) / number_literal)) ;) (expression_statement "iVar7 = param_2;" (assignment_expression "iVar7 = param_2" identifier = identifier) ;) (if_statement "if (param_2 < iVar5) {\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }" if (parenthesized_expression "(param_2 < iVar5)" ( (binary_expression "param_2 < iVar5" identifier < identifier) )) (compound_statement "{\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }" { (do_statement "do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);" do (compound_statement "{\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    }" { (expression_statement "iVar4 = (iVar7 + 1) * 2;" (assignment_expression "iVar4 = (iVar7 + 1) * 2" identifier = (binary_expression "(iVar7 + 1) * 2" (parenthesized_expression "(iVar7 + 1)" ( (binary_expression "iVar7 + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "iVar1 = iVar4 + -1;" (assignment_expression "iVar1 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48)" identifier = (cast_expression "(undefined4 *)(param_1 + (iVar7 + 1) * 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + (iVar7 + 1) * 0x48)" ( (binary_expression "param_1 + (iVar7 + 1) * 0x48" identifier + (binary_expression "(iVar7 + 1) * 0x48" (parenthesized_expression "(iVar7 + 1)" ( (binary_expression "iVar7 + 1" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);" (assignment_expression "puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar1 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar1 * 0x24)" ( (binary_expression "param_1 + iVar1 * 0x24" identifier + (binary_expression "iVar1 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "iVar6 = FUN_000e3c40(puVar2,puVar3);" (assignment_expression "iVar6 = FUN_000e3c40(puVar2,puVar3)" identifier = (call_expression "FUN_000e3c40(puVar2,puVar3)" identifier (argument_list "(puVar2,puVar3)" ( identifier , identifier )))) ;) (expression_statement "puVar8 = puVar3;" (assignment_expression "puVar8 = puVar3" identifier = identifier) ;) (expression_statement "iVar9 = iVar1;" (assignment_expression "iVar9 = iVar1" identifier = identifier) ;) (if_statement "if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }" if (parenthesized_expression "(((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7])))" ( (binary_expression "((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))" (parenthesized_expression "((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0))" ( (binary_expression "(-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)" (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) && (parenthesized_expression "(puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)" ( (comma_expression "puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0" (assignment_expression "puVar8 = puVar2" identifier = identifier) , (comma_expression "iVar9 = iVar4, iVar6 == 0" (assignment_expression "iVar9 = iVar4" identifier = identifier) , (binary_expression "iVar6 == 0" identifier == number_literal))) ))) )) && (parenthesized_expression "((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))" ( (binary_expression "(uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7])" (binary_expression "(uint)puVar2[8] < (uint)puVar3[8]" (cast_expression "(uint)puVar2[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar2[8]" identifier [ number_literal ])) < (cast_expression "(uint)puVar3[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar3[8]" identifier [ number_literal ]))) || (binary_expression "(uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7])" (call_expression "(uint)(puVar2[8] - puVar3[8])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar2[8] - puVar3[8])" ( (binary_expression "puVar2[8] - puVar3[8]" (subscript_expression "puVar2[8]" identifier [ number_literal ]) - (subscript_expression "puVar3[8]" identifier [ number_literal ])) ))) < (call_expression "(uint)((uint)puVar2[7] < (uint)puVar3[7])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)puVar2[7] < (uint)puVar3[7])" ( (binary_expression "(uint)puVar2[7] < (uint)puVar3[7]" (cast_expression "(uint)puVar2[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar2[7]" identifier [ number_literal ])) < (cast_expression "(uint)puVar3[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar3[7]" identifier [ number_literal ]))) ))))) ))) )) (compound_statement "{\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }" { (expression_statement "puVar8 = puVar3;" (assignment_expression "puVar8 = puVar3" identifier = identifier) ;) (expression_statement "iVar9 = iVar1;" (assignment_expression "iVar9 = iVar1" identifier = identifier) ;) })) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar7 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar7 * 0x24)" ( (binary_expression "param_1 + iVar7 * 0x24" identifier + (binary_expression "iVar7 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar2[1] = puVar8[1];" (assignment_expression "puVar2[1] = puVar8[1]" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2[2] = puVar8[2];" (assignment_expression "puVar2[2] = puVar8[2]" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "puVar2[3] = puVar8[3];" (assignment_expression "puVar2[3] = puVar8[3]" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = puVar8[4];" (assignment_expression "puVar2[4] = puVar8[4]" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (subscript_expression "puVar8[4]" identifier [ number_literal ])) ;) (expression_statement "puVar2[5] = puVar8[5];" (assignment_expression "puVar2[5] = puVar8[5]" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[6] = puVar8[6];" (assignment_expression "puVar2[6] = puVar8[6]" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (subscript_expression "puVar8[6]" identifier [ number_literal ])) ;) (expression_statement "puVar2[7] = puVar8[7];" (assignment_expression "puVar2[7] = puVar8[7]" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (subscript_expression "puVar8[7]" identifier [ number_literal ])) ;) (expression_statement "puVar2[8] = puVar8[8];" (assignment_expression "puVar2[8] = puVar8[8]" (subscript_expression "puVar2[8]" identifier [ number_literal ]) = (subscript_expression "puVar8[8]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = iVar9;" (assignment_expression "iVar7 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(iVar9 < iVar5)" ( (binary_expression "iVar9 < iVar5" identifier < identifier) )) ;) (if_statement "if ((param_3 & 1) == 0) goto LAB_000eb6b0;" if (parenthesized_expression "((param_3 & 1) == 0)" ( (binary_expression "(param_3 & 1) == 0" (parenthesized_expression "(param_3 & 1)" ( (binary_expression "param_3 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000eb6b0;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }" else (compound_statement "{\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }" { (expression_statement "puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);" (assignment_expression "puVar8 = (undefined4 *)(param_1 + param_2 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + param_2 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + param_2 * 0x24)" ( (binary_expression "param_1 + param_2 * 0x24" identifier + (binary_expression "param_2 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "iVar9 = param_2;" (assignment_expression "iVar9 = param_2" identifier = identifier) ;) (if_statement "if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }" if (parenthesized_expression "((param_3 & 1) != 0)" ( (binary_expression "(param_3 & 1) != 0" (parenthesized_expression "(param_3 & 1)" ( (binary_expression "param_3 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }" { (expression_statement "local_40 = param_4;" (assignment_expression "local_40 = param_4" identifier = identifier) ;) (expression_statement "local_3c = param_5;" (assignment_expression "local_3c = param_5" identifier = identifier) ;) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" identifier = identifier) ;) (expression_statement "local_34 = param_7;" (assignment_expression "local_34 = param_7" identifier = identifier) ;) (expression_statement "local_30 = param_8;" (assignment_expression "local_30 = param_8" identifier = identifier) ;) (expression_statement "local_2c = param_9;" (assignment_expression "local_2c = param_9" identifier = identifier) ;) (expression_statement "local_28 = param_10;" (assignment_expression "local_28 = param_10" identifier = identifier) ;) (expression_statement "local_24 = param_11;" (assignment_expression "local_24 = param_11" identifier = identifier) ;) (expression_statement "local_20 = param_12;" (assignment_expression "local_20 = param_12" identifier = identifier) ;) (goto_statement "goto LAB_000eb5d4;" goto statement_identifier ;) })) (labeled_statement "LAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }" statement_identifier : (if_statement "if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }" if (parenthesized_expression "((int)(param_3 - 2) / 2 == iVar9)" ( (binary_expression "(int)(param_3 - 2) / 2 == iVar9" (binary_expression "(int)(param_3 - 2) / 2" (cast_expression "(int)(param_3 - 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 - 2)" ( (binary_expression "param_3 - 2" identifier - number_literal) ))) / number_literal) == identifier) )) (compound_statement "{\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }" { (expression_statement "iVar9 = iVar9 * 2 + 1;" (assignment_expression "iVar9 = iVar9 * 2 + 1" identifier = (binary_expression "iVar9 * 2 + 1" (binary_expression "iVar9 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar9 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar9 * 0x24)" ( (binary_expression "param_1 + iVar9 * 0x24" identifier + (binary_expression "iVar9 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "*puVar8 = *puVar2;" (assignment_expression "*puVar8 = *puVar2" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "puVar8[1] = puVar2[1];" (assignment_expression "puVar8[1] = puVar2[1]" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar8[2] = puVar2[2];" (assignment_expression "puVar8[2] = puVar2[2]" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar8[3] = puVar2[3];" (assignment_expression "puVar8[3] = puVar2[3]" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = (subscript_expression "puVar2[3]" identifier [ number_literal ])) ;) (expression_statement "puVar8[4] = puVar2[4];" (assignment_expression "puVar8[4] = puVar2[4]" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = (subscript_expression "puVar2[4]" identifier [ number_literal ])) ;) (expression_statement "puVar8[5] = puVar2[5];" (assignment_expression "puVar8[5] = puVar2[5]" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = (subscript_expression "puVar2[5]" identifier [ number_literal ])) ;) (expression_statement "puVar8[6] = puVar2[6];" (assignment_expression "puVar8[6] = puVar2[6]" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = (subscript_expression "puVar2[6]" identifier [ number_literal ])) ;) (expression_statement "puVar8[7] = puVar2[7];" (assignment_expression "puVar8[7] = puVar2[7]" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = (subscript_expression "puVar2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar8[8] = puVar2[8];" (assignment_expression "puVar8[8] = puVar2[8]" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = (subscript_expression "puVar2[8]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = puVar2;" (assignment_expression "puVar8 = puVar2" identifier = identifier) ;) }))) }))) (expression_statement "local_40 = param_4;" (assignment_expression "local_40 = param_4" identifier = identifier) ;) (expression_statement "local_3c = param_5;" (assignment_expression "local_3c = param_5" identifier = identifier) ;) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" identifier = identifier) ;) (expression_statement "local_34 = param_7;" (assignment_expression "local_34 = param_7" identifier = identifier) ;) (expression_statement "local_30 = param_8;" (assignment_expression "local_30 = param_8" identifier = identifier) ;) (expression_statement "local_2c = param_9;" (assignment_expression "local_2c = param_9" identifier = identifier) ;) (expression_statement "local_28 = param_10;" (assignment_expression "local_28 = param_10" identifier = identifier) ;) (expression_statement "local_24 = param_11;" (assignment_expression "local_24 = param_11" identifier = identifier) ;) (expression_statement "local_20 = param_12;" (assignment_expression "local_20 = param_12" identifier = identifier) ;) (if_statement "if (param_2 < iVar9) {\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }" if (parenthesized_expression "(param_2 < iVar9)" ( (binary_expression "param_2 < iVar9" identifier < identifier) )) (compound_statement "{\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }" { (do_statement "do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);" do (compound_statement "{\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    }" { (expression_statement "iVar5 = (iVar9 + -1) / 2;" (assignment_expression "iVar5 = (iVar9 + -1) / 2" identifier = (binary_expression "(iVar9 + -1) / 2" (parenthesized_expression "(iVar9 + -1)" ( (binary_expression "iVar9 + -1" identifier + number_literal) )) / number_literal)) ;) (expression_statement "puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);" (assignment_expression "puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar5 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar5 * 0x24)" ( (binary_expression "param_1 + iVar5 * 0x24" identifier + (binary_expression "iVar5 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "iVar7 = FUN_000e3c40(puVar8,&local_40);" (assignment_expression "iVar7 = FUN_000e3c40(puVar8,&local_40)" identifier = (call_expression "FUN_000e3c40(puVar8,&local_40)" identifier (argument_list "(puVar8,&local_40)" ( identifier , (pointer_expression "&local_40" & identifier) )))) ;) (if_statement "if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }" if (parenthesized_expression "((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          ))))" ( (binary_expression "(-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))" (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) && (parenthesized_expression "((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))" ( (parenthesized_expression "(iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          ))" ( (binary_expression "iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "(local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )" ( (binary_expression "local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20" (binary_expression "local_20 <= (uint)puVar8[8]" identifier <= (cast_expression "(uint)puVar8[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar8[8]" identifier [ number_literal ]))) && (binary_expression "(uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20" (call_expression "(uint)((uint)puVar8[7] < local_24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)puVar8[7] < local_24)" ( (binary_expression "(uint)puVar8[7] < local_24" (cast_expression "(uint)puVar8[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar8[7]" identifier [ number_literal ])) < identifier) ))) <= (binary_expression "puVar8[8] - local_20" (subscript_expression "puVar8[8]" identifier [ number_literal ]) - identifier))) ))) )) ))) )) (compound_statement "{\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }" { (expression_statement "puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);" (assignment_expression "puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar9 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar9 * 0x24)" ( (binary_expression "param_1 + iVar9 * 0x24" identifier + (binary_expression "iVar9 * 0x24" identifier * number_literal)) )))) ;) (break_statement "break;" break ;) })) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar9 * 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar9 * 0x24)" ( (binary_expression "param_1 + iVar9 * 0x24" identifier + (binary_expression "iVar9 * 0x24" identifier * number_literal)) )))) ;) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar2[1] = puVar8[1];" (assignment_expression "puVar2[1] = puVar8[1]" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2[2] = puVar8[2];" (assignment_expression "puVar2[2] = puVar8[2]" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "puVar2[3] = puVar8[3];" (assignment_expression "puVar2[3] = puVar8[3]" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = puVar8[4];" (assignment_expression "puVar2[4] = puVar8[4]" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (subscript_expression "puVar8[4]" identifier [ number_literal ])) ;) (expression_statement "puVar2[5] = puVar8[5];" (assignment_expression "puVar2[5] = puVar8[5]" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[6] = puVar8[6];" (assignment_expression "puVar2[6] = puVar8[6]" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (subscript_expression "puVar8[6]" identifier [ number_literal ])) ;) (expression_statement "puVar2[7] = puVar8[7];" (assignment_expression "puVar2[7] = puVar8[7]" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (subscript_expression "puVar8[7]" identifier [ number_literal ])) ;) (expression_statement "puVar2[8] = puVar8[8];" (assignment_expression "puVar2[8] = puVar8[8]" (subscript_expression "puVar2[8]" identifier [ number_literal ]) = (subscript_expression "puVar8[8]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = iVar5;" (assignment_expression "iVar9 = iVar5" identifier = identifier) ;) }) while (parenthesized_expression "(param_2 < iVar5)" ( (binary_expression "param_2 < iVar5" identifier < identifier) )) ;) })) (labeled_statement "LAB_000eb5d4:\n  *puVar8 = local_40;" statement_identifier : (expression_statement "*puVar8 = local_40;" (assignment_expression "*puVar8 = local_40" (pointer_expression "*puVar8" * identifier) = identifier) ;)) (expression_statement "puVar8[1] = local_3c;" (assignment_expression "puVar8[1] = local_3c" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = local_38;" (assignment_expression "puVar8[2] = local_38" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = local_34;" (assignment_expression "puVar8[3] = local_34" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[4] = local_30;" (assignment_expression "puVar8[4] = local_30" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = local_2c;" (assignment_expression "puVar8[5] = local_2c" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[6] = local_28;" (assignment_expression "puVar8[6] = local_28" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[7] = local_24;" (assignment_expression "puVar8[7] = local_24" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[8] = local_20;" (assignment_expression "puVar8[8] = local_20" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - LIT) ))) / LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) && (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) || (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - LIT) ))) / LIT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (binary_expression (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) ))) <= (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_000eb440(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 undefined4 param_10,uint param_11,uint param_12)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  uint local_24;\n  uint local_20;\n  \n  iVar5 = (int)(param_3 - 1) / 2;\n  iVar7 = param_2;\n  if (param_2 < iVar5) {\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }\n  local_40 = param_4;\n  local_3c = param_5;\n  local_38 = param_6;\n  local_34 = param_7;\n  local_30 = param_8;\n  local_2c = param_9;\n  local_28 = param_10;\n  local_24 = param_11;\n  local_20 = param_12;\n  if (param_2 < iVar9) {\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }\nLAB_000eb5d4:\n  *puVar8 = local_40;\n  puVar8[1] = local_3c;\n  puVar8[2] = local_38;\n  puVar8[3] = local_34;\n  puVar8[4] = local_30;\n  puVar8[5] = local_2c;\n  puVar8[6] = local_28;\n  puVar8[7] = local_24;\n  puVar8[8] = local_20;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000eb440(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 undefined4 param_10,uint param_11,uint param_12)" (identifier "FUN_000eb440") (parameter_list "(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 undefined4 param_10,uint param_11,uint param_12)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "undefined4 param_9" (type_identifier "undefined4") (identifier "param_9")) (, ",") (parameter_declaration "undefined4 param_10" (type_identifier "undefined4") (identifier "param_10")) (, ",") (parameter_declaration "uint param_11" (type_identifier "uint") (identifier "param_11")) (, ",") (parameter_declaration "uint param_12" (type_identifier "uint") (identifier "param_12")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  uint local_24;\n  uint local_20;\n  \n  iVar5 = (int)(param_3 - 1) / 2;\n  iVar7 = param_2;\n  if (param_2 < iVar5) {\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }\n  local_40 = param_4;\n  local_3c = param_5;\n  local_38 = param_6;\n  local_34 = param_7;\n  local_30 = param_8;\n  local_2c = param_9;\n  local_28 = param_10;\n  local_24 = param_11;\n  local_20 = param_12;\n  if (param_2 < iVar9) {\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }\nLAB_000eb5d4:\n  *puVar8 = local_40;\n  puVar8[1] = local_3c;\n  puVar8[2] = local_38;\n  puVar8[3] = local_34;\n  puVar8[4] = local_30;\n  puVar8[5] = local_2c;\n  puVar8[6] = local_28;\n  puVar8[7] = local_24;\n  puVar8[8] = local_20;\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "uint local_20;" (type_identifier "uint") (identifier "local_20") (; ";")) (expression_statement "iVar5 = (int)(param_3 - 1) / 2;" (assignment_expression "iVar5 = (int)(param_3 - 1) / 2" (identifier "iVar5") (= "=") (binary_expression "(int)(param_3 - 1) / 2" (cast_expression "(int)(param_3 - 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 - 1)" (( "(") (binary_expression "param_3 - 1" (identifier "param_3") (- "-") (number_literal "1")) () ")"))) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "iVar7 = param_2;" (assignment_expression "iVar7 = param_2" (identifier "iVar7") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_2 < iVar5) {\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }\n  else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }" (if "if") (parenthesized_expression "(param_2 < iVar5)" (( "(") (binary_expression "param_2 < iVar5" (identifier "param_2") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n    do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);\n    if ((param_3 & 1) == 0) goto LAB_000eb6b0;\n  }" ({ "{") (do_statement "do {\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    } while (iVar9 < iVar5);" (do "do") (compound_statement "{\n      iVar4 = (iVar7 + 1) * 2;\n      iVar1 = iVar4 + -1;\n      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);\n      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);\n      iVar6 = FUN_000e3c40(puVar2,puVar3);\n      puVar8 = puVar3;\n      iVar9 = iVar1;\n      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar7 = iVar9;\n    }" ({ "{") (expression_statement "iVar4 = (iVar7 + 1) * 2;" (assignment_expression "iVar4 = (iVar7 + 1) * 2" (identifier "iVar4") (= "=") (binary_expression "(iVar7 + 1) * 2" (parenthesized_expression "(iVar7 + 1)" (( "(") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "iVar1 = iVar4 + -1;" (assignment_expression "iVar1 = iVar4 + -1" (identifier "iVar1") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(param_1 + (iVar7 + 1) * 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + (iVar7 + 1) * 0x48)" (( "(") (binary_expression "param_1 + (iVar7 + 1) * 0x48" (identifier "param_1") (+ "+") (binary_expression "(iVar7 + 1) * 0x48" (parenthesized_expression "(iVar7 + 1)" (( "(") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0x48"))) () ")")))) (; ";")) (expression_statement "puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);" (assignment_expression "puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)(param_1 + iVar1 * 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar1 * 0x24)" (( "(") (binary_expression "param_1 + iVar1 * 0x24" (identifier "param_1") (+ "+") (binary_expression "iVar1 * 0x24" (identifier "iVar1") (* "*") (number_literal "0x24"))) () ")")))) (; ";")) (expression_statement "iVar6 = FUN_000e3c40(puVar2,puVar3);" (assignment_expression "iVar6 = FUN_000e3c40(puVar2,puVar3)" (identifier "iVar6") (= "=") (call_expression "FUN_000e3c40(puVar2,puVar3)" (identifier "FUN_000e3c40") (argument_list "(puVar2,puVar3)" (( "(") (identifier "puVar2") (, ",") (identifier "puVar3") () ")")))) (; ";")) (expression_statement "puVar8 = puVar3;" (assignment_expression "puVar8 = puVar3" (identifier "puVar8") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "iVar9 = iVar1;" (assignment_expression "iVar9 = iVar1" (identifier "iVar9") (= "=") (identifier "iVar1")) (; ";")) (if_statement "if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }" (if "if") (parenthesized_expression "(((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7])))" (( "(") (binary_expression "((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&\n         ((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))" (parenthesized_expression "((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0))" (( "(") (binary_expression "(-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)" (parenthesized_expression "(-1 < iVar6)" (( "(") (binary_expression "-1 < iVar6" (number_literal "-1") (< "<") (identifier "iVar6")) () ")")) (&& "&&") (parenthesized_expression "(puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)" (( "(") (comma_expression "puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0" (assignment_expression "puVar8 = puVar2" (identifier "puVar8") (= "=") (identifier "puVar2")) (, ",") (comma_expression "iVar9 = iVar4, iVar6 == 0" (assignment_expression "iVar9 = iVar4" (identifier "iVar9") (= "=") (identifier "iVar4")) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))" (( "(") (binary_expression "(uint)puVar2[8] < (uint)puVar3[8] ||\n          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7])" (binary_expression "(uint)puVar2[8] < (uint)puVar3[8]" (cast_expression "(uint)puVar2[8]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar2[8]" (identifier "puVar2") ([ "[") (number_literal "8") (] "]"))) (< "<") (cast_expression "(uint)puVar3[8]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar3[8]" (identifier "puVar3") ([ "[") (number_literal "8") (] "]")))) (|| "||") (binary_expression "(uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7])" (call_expression "(uint)(puVar2[8] - puVar3[8])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar2[8] - puVar3[8])" (( "(") (binary_expression "puVar2[8] - puVar3[8]" (subscript_expression "puVar2[8]" (identifier "puVar2") ([ "[") (number_literal "8") (] "]")) (- "-") (subscript_expression "puVar3[8]" (identifier "puVar3") ([ "[") (number_literal "8") (] "]"))) () ")"))) (< "<") (call_expression "(uint)((uint)puVar2[7] < (uint)puVar3[7])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)puVar2[7] < (uint)puVar3[7])" (( "(") (binary_expression "(uint)puVar2[7] < (uint)puVar3[7]" (cast_expression "(uint)puVar2[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]"))) (< "<") (cast_expression "(uint)puVar3[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar3[7]" (identifier "puVar3") ([ "[") (number_literal "7") (] "]")))) () ")"))))) () ")"))) () ")")) (compound_statement "{\n        puVar8 = puVar3;\n        iVar9 = iVar1;\n      }" ({ "{") (expression_statement "puVar8 = puVar3;" (assignment_expression "puVar8 = puVar3" (identifier "puVar8") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "iVar9 = iVar1;" (assignment_expression "iVar9 = iVar1" (identifier "iVar9") (= "=") (identifier "iVar1")) (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(param_1 + iVar7 * 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar7 * 0x24)" (( "(") (binary_expression "param_1 + iVar7 * 0x24" (identifier "param_1") (+ "+") (binary_expression "iVar7 * 0x24" (identifier "iVar7") (* "*") (number_literal "0x24"))) () ")")))) (; ";")) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar2[1] = puVar8[1];" (assignment_expression "puVar2[1] = puVar8[1]" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2[2] = puVar8[2];" (assignment_expression "puVar2[2] = puVar8[2]" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar2[3] = puVar8[3];" (assignment_expression "puVar2[3] = puVar8[3]" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar2[4] = puVar8[4];" (assignment_expression "puVar2[4] = puVar8[4]" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar2[5] = puVar8[5];" (assignment_expression "puVar2[5] = puVar8[5]" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar2[6] = puVar8[6];" (assignment_expression "puVar2[6] = puVar8[6]" (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar2[7] = puVar8[7];" (assignment_expression "puVar2[7] = puVar8[7]" (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar2[8] = puVar8[8];" (assignment_expression "puVar2[8] = puVar8[8]" (subscript_expression "puVar2[8]" (identifier "puVar2") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "iVar7 = iVar9;" (assignment_expression "iVar7 = iVar9" (identifier "iVar7") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 < iVar5)" (( "(") (binary_expression "iVar9 < iVar5" (identifier "iVar9") (< "<") (identifier "iVar5")) () ")")) (; ";")) (if_statement "if ((param_3 & 1) == 0) goto LAB_000eb6b0;" (if "if") (parenthesized_expression "((param_3 & 1) == 0)" (( "(") (binary_expression "(param_3 & 1) == 0" (parenthesized_expression "(param_3 & 1)" (( "(") (binary_expression "param_3 & 1" (identifier "param_3") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000eb6b0;" (goto "goto") (statement_identifier "LAB_000eb6b0") (; ";"))) (} "}")) (else_clause "else {\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }" (else "else") (compound_statement "{\n    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);\n    iVar9 = param_2;\n    if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }\nLAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }\n  }" ({ "{") (expression_statement "puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);" (assignment_expression "puVar8 = (undefined4 *)(param_1 + param_2 * 0x24)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(param_1 + param_2 * 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + param_2 * 0x24)" (( "(") (binary_expression "param_1 + param_2 * 0x24" (identifier "param_1") (+ "+") (binary_expression "param_2 * 0x24" (identifier "param_2") (* "*") (number_literal "0x24"))) () ")")))) (; ";")) (expression_statement "iVar9 = param_2;" (assignment_expression "iVar9 = param_2" (identifier "iVar9") (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((param_3 & 1) != 0) {\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }" (if "if") (parenthesized_expression "((param_3 & 1) != 0)" (( "(") (binary_expression "(param_3 & 1) != 0" (parenthesized_expression "(param_3 & 1)" (( "(") (binary_expression "param_3 & 1" (identifier "param_3") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_40 = param_4;\n      local_3c = param_5;\n      local_38 = param_6;\n      local_34 = param_7;\n      local_30 = param_8;\n      local_2c = param_9;\n      local_28 = param_10;\n      local_24 = param_11;\n      local_20 = param_12;\n      goto LAB_000eb5d4;\n    }" ({ "{") (expression_statement "local_40 = param_4;" (assignment_expression "local_40 = param_4" (identifier "local_40") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_3c = param_5;" (assignment_expression "local_3c = param_5" (identifier "local_3c") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" (identifier "local_38") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_34 = param_7;" (assignment_expression "local_34 = param_7" (identifier "local_34") (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_30 = param_8;" (assignment_expression "local_30 = param_8" (identifier "local_30") (= "=") (identifier "param_8")) (; ";")) (expression_statement "local_2c = param_9;" (assignment_expression "local_2c = param_9" (identifier "local_2c") (= "=") (identifier "param_9")) (; ";")) (expression_statement "local_28 = param_10;" (assignment_expression "local_28 = param_10" (identifier "local_28") (= "=") (identifier "param_10")) (; ";")) (expression_statement "local_24 = param_11;" (assignment_expression "local_24 = param_11" (identifier "local_24") (= "=") (identifier "param_11")) (; ";")) (expression_statement "local_20 = param_12;" (assignment_expression "local_20 = param_12" (identifier "local_20") (= "=") (identifier "param_12")) (; ";")) (goto_statement "goto LAB_000eb5d4;" (goto "goto") (statement_identifier "LAB_000eb5d4") (; ";")) (} "}"))) (labeled_statement "LAB_000eb6b0:\n    if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }" (statement_identifier "LAB_000eb6b0") (: ":") (if_statement "if ((int)(param_3 - 2) / 2 == iVar9) {\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }" (if "if") (parenthesized_expression "((int)(param_3 - 2) / 2 == iVar9)" (( "(") (binary_expression "(int)(param_3 - 2) / 2 == iVar9" (binary_expression "(int)(param_3 - 2) / 2" (cast_expression "(int)(param_3 - 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 - 2)" (( "(") (binary_expression "param_3 - 2" (identifier "param_3") (- "-") (number_literal "2")) () ")"))) (/ "/") (number_literal "2")) (== "==") (identifier "iVar9")) () ")")) (compound_statement "{\n      iVar9 = iVar9 * 2 + 1;\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar8 = *puVar2;\n      puVar8[1] = puVar2[1];\n      puVar8[2] = puVar2[2];\n      puVar8[3] = puVar2[3];\n      puVar8[4] = puVar2[4];\n      puVar8[5] = puVar2[5];\n      puVar8[6] = puVar2[6];\n      puVar8[7] = puVar2[7];\n      puVar8[8] = puVar2[8];\n      puVar8 = puVar2;\n    }" ({ "{") (expression_statement "iVar9 = iVar9 * 2 + 1;" (assignment_expression "iVar9 = iVar9 * 2 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 * 2 + 1" (binary_expression "iVar9 * 2" (identifier "iVar9") (* "*") (number_literal "2")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(param_1 + iVar9 * 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar9 * 0x24)" (( "(") (binary_expression "param_1 + iVar9 * 0x24" (identifier "param_1") (+ "+") (binary_expression "iVar9 * 0x24" (identifier "iVar9") (* "*") (number_literal "0x24"))) () ")")))) (; ";")) (expression_statement "*puVar8 = *puVar2;" (assignment_expression "*puVar8 = *puVar2" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "puVar8[1] = puVar2[1];" (assignment_expression "puVar8[1] = puVar2[1]" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar8[2] = puVar2[2];" (assignment_expression "puVar8[2] = puVar2[2]" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar8[3] = puVar2[3];" (assignment_expression "puVar8[3] = puVar2[3]" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar8[4] = puVar2[4];" (assignment_expression "puVar8[4] = puVar2[4]" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar8[5] = puVar2[5];" (assignment_expression "puVar8[5] = puVar2[5]" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar8[6] = puVar2[6];" (assignment_expression "puVar8[6] = puVar2[6]" (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar8[7] = puVar2[7];" (assignment_expression "puVar8[7] = puVar2[7]" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar8[8] = puVar2[8];" (assignment_expression "puVar8[8] = puVar2[8]" (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar2[8]" (identifier "puVar2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar8 = puVar2;" (assignment_expression "puVar8 = puVar2" (identifier "puVar8") (= "=") (identifier "puVar2")) (; ";")) (} "}")))) (} "}")))) (expression_statement "local_40 = param_4;" (assignment_expression "local_40 = param_4" (identifier "local_40") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_3c = param_5;" (assignment_expression "local_3c = param_5" (identifier "local_3c") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_38 = param_6;" (assignment_expression "local_38 = param_6" (identifier "local_38") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_34 = param_7;" (assignment_expression "local_34 = param_7" (identifier "local_34") (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_30 = param_8;" (assignment_expression "local_30 = param_8" (identifier "local_30") (= "=") (identifier "param_8")) (; ";")) (expression_statement "local_2c = param_9;" (assignment_expression "local_2c = param_9" (identifier "local_2c") (= "=") (identifier "param_9")) (; ";")) (expression_statement "local_28 = param_10;" (assignment_expression "local_28 = param_10" (identifier "local_28") (= "=") (identifier "param_10")) (; ";")) (expression_statement "local_24 = param_11;" (assignment_expression "local_24 = param_11" (identifier "local_24") (= "=") (identifier "param_11")) (; ";")) (expression_statement "local_20 = param_12;" (assignment_expression "local_20 = param_12" (identifier "local_20") (= "=") (identifier "param_12")) (; ";")) (if_statement "if (param_2 < iVar9) {\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }" (if "if") (parenthesized_expression "(param_2 < iVar9)" (( "(") (binary_expression "param_2 < iVar9" (identifier "param_2") (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n    do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);\n  }" ({ "{") (do_statement "do {\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    } while (param_2 < iVar5);" (do "do") (compound_statement "{\n      iVar5 = (iVar9 + -1) / 2;\n      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);\n      iVar7 = FUN_000e3c40(puVar8,&local_40);\n      if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);\n      *puVar2 = *puVar8;\n      puVar2[1] = puVar8[1];\n      puVar2[2] = puVar8[2];\n      puVar2[3] = puVar8[3];\n      puVar2[4] = puVar8[4];\n      puVar2[5] = puVar8[5];\n      puVar2[6] = puVar8[6];\n      puVar2[7] = puVar8[7];\n      puVar2[8] = puVar8[8];\n      iVar9 = iVar5;\n    }" ({ "{") (expression_statement "iVar5 = (iVar9 + -1) / 2;" (assignment_expression "iVar5 = (iVar9 + -1) / 2" (identifier "iVar5") (= "=") (binary_expression "(iVar9 + -1) / 2" (parenthesized_expression "(iVar9 + -1)" (( "(") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);" (assignment_expression "puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(param_1 + iVar5 * 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar5 * 0x24)" (( "(") (binary_expression "param_1 + iVar5 * 0x24" (identifier "param_1") (+ "+") (binary_expression "iVar5 * 0x24" (identifier "iVar5") (* "*") (number_literal "0x24"))) () ")")))) (; ";")) (expression_statement "iVar7 = FUN_000e3c40(puVar8,&local_40);" (assignment_expression "iVar7 = FUN_000e3c40(puVar8,&local_40)" (identifier "iVar7") (= "=") (call_expression "FUN_000e3c40(puVar8,&local_40)" (identifier "FUN_000e3c40") (argument_list "(puVar8,&local_40)" (( "(") (identifier "puVar8") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")")))) (; ";")) (if_statement "if ((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))) {\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }" (if "if") (parenthesized_expression "((-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          ))))" (( "(") (binary_expression "(-1 < iVar7) &&\n         ((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))" (parenthesized_expression "(-1 < iVar7)" (( "(") (binary_expression "-1 < iVar7" (number_literal "-1") (< "<") (identifier "iVar7")) () ")")) (&& "&&") (parenthesized_expression "((iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )))" (( "(") (parenthesized_expression "(iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          ))" (( "(") (binary_expression "iVar7 != 0 ||\n          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )" (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20\n          )" (( "(") (binary_expression "local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20" (binary_expression "local_20 <= (uint)puVar8[8]" (identifier "local_20") (<= "<=") (cast_expression "(uint)puVar8[8]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")))) (&& "&&") (binary_expression "(uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20" (call_expression "(uint)((uint)puVar8[7] < local_24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)puVar8[7] < local_24)" (( "(") (binary_expression "(uint)puVar8[7] < local_24" (cast_expression "(uint)puVar8[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]"))) (< "<") (identifier "local_24")) () ")"))) (<= "<=") (binary_expression "puVar8[8] - local_20" (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")) (- "-") (identifier "local_20")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);\n        break;\n      }" ({ "{") (expression_statement "puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);" (assignment_expression "puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(param_1 + iVar9 * 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar9 * 0x24)" (( "(") (binary_expression "param_1 + iVar9 * 0x24" (identifier "param_1") (+ "+") (binary_expression "iVar9 * 0x24" (identifier "iVar9") (* "*") (number_literal "0x24"))) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(param_1 + iVar9 * 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar9 * 0x24)" (( "(") (binary_expression "param_1 + iVar9 * 0x24" (identifier "param_1") (+ "+") (binary_expression "iVar9 * 0x24" (identifier "iVar9") (* "*") (number_literal "0x24"))) () ")")))) (; ";")) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar2[1] = puVar8[1];" (assignment_expression "puVar2[1] = puVar8[1]" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2[2] = puVar8[2];" (assignment_expression "puVar2[2] = puVar8[2]" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar2[3] = puVar8[3];" (assignment_expression "puVar2[3] = puVar8[3]" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar2[4] = puVar8[4];" (assignment_expression "puVar2[4] = puVar8[4]" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar2[5] = puVar8[5];" (assignment_expression "puVar2[5] = puVar8[5]" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar2[6] = puVar8[6];" (assignment_expression "puVar2[6] = puVar8[6]" (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar2[7] = puVar8[7];" (assignment_expression "puVar2[7] = puVar8[7]" (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar2[8] = puVar8[8];" (assignment_expression "puVar2[8] = puVar8[8]" (subscript_expression "puVar2[8]" (identifier "puVar2") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "iVar9 = iVar5;" (assignment_expression "iVar9 = iVar5" (identifier "iVar9") (= "=") (identifier "iVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 < iVar5)" (( "(") (binary_expression "param_2 < iVar5" (identifier "param_2") (< "<") (identifier "iVar5")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000eb5d4:\n  *puVar8 = local_40;" (statement_identifier "LAB_000eb5d4") (: ":") (expression_statement "*puVar8 = local_40;" (assignment_expression "*puVar8 = local_40" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "local_40")) (; ";"))) (expression_statement "puVar8[1] = local_3c;" (assignment_expression "puVar8[1] = local_3c" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar8[2] = local_38;" (assignment_expression "puVar8[2] = local_38" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "puVar8[3] = local_34;" (assignment_expression "puVar8[3] = local_34" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar8[4] = local_30;" (assignment_expression "puVar8[4] = local_30" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "puVar8[5] = local_2c;" (assignment_expression "puVar8[5] = local_2c" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar8[6] = local_28;" (assignment_expression "puVar8[6] = local_28" (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "puVar8[7] = local_24;" (assignment_expression "puVar8[7] = local_24" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar8[8] = local_20;" (assignment_expression "puVar8[8] = local_20" (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_20")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* DWARF original name: __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4, true, 64,
   false>*, std::vector<gold::Output_reloc<4, true, 64, false>, std::allocator<gold::Output_reloc<4,
   true, 64, false> > > >, int, gold::Output_reloc<4, true, 64, false>,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4, true, 64,
   false>::Sort_relocs_comparison> > */

void std::
     __adjust_heap<__gnu_cxx::__normal_iterator<gold::var_9<4,_true,_64,var_10>*,_std::vector<gold::var_9<4,_true,_64,var_10>,_std::allocator<gold::var_9<4,_true,_64,var_10>_>_>_>,_int,_gold::var_9<4,_true,_64,var_10>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,_true,_64,var_10>::Sort_relocs_comparison>_>
               (int var_7,int var_3,uint var_2,type_1 __value,
               type_1 param_5,type_1 param_6,
               type_1 param_7,type_1 param_8,
               type_1 param_9,type_1 param_10,
               var_1<64,var_10> *param_11,var_1<64,var_10> *param_12)

{
  int var_8;
  type_1 *paVar2;
  type_1 *r2;
  int var_6;
  int var_4;
  int var_12;
  int var_5;
  type_1 *this;
  int var_13;
  type_1 local_40;
  type_1 local_3c;
  type_1 local_38;
  type_1 local_34;
  type_1 local_30;
  type_1 local_2c;
  type_1 local_28;
  var_1<64,var_10> *var_15;
  var_1<64,var_10> *var_14;
  
  var_4 = (int)(var_2 - 1) / 2;
  var_5 = var_3;
  if (var_3 < var_4) {
    do {
      var_6 = (var_5 + 1) * 2;
      var_8 = var_6 + -1;
      paVar2 = (type_1 *)(var_7 + (var_5 + 1) * 0x48);
      r2 = (type_1 *)(var_7 + var_8 * 0x24);
      var_12 = gold::var_9<9,_true,_64,var_10>::var_11
                        ((var_9<9,_true,_64,var_10> *)paVar2,
                         (var_9<9,_true,_64,var_10> *)r2);
      this = r2;
      var_13 = var_8;
      if (((-1 < var_12) && (this = paVar2, var_13 = var_6, var_12 == 0)) &&
         (paVar2[8].relobj < r2[8].relobj ||
          (uint)((int)paVar2[8].relobj - (int)r2[8].relobj) <
          (uint)(paVar2[7].relobj < r2[7].relobj))) {
        this = r2;
        var_13 = var_8;
      }
      paVar2 = (type_1 *)(var_7 + var_5 * 0x24);
      *paVar2 = *this;
      paVar2[1] = this[1];
      paVar2[2] = this[2];
      paVar2[3] = this[3];
      paVar2[4] = this[4];
      paVar2[5] = this[5];
      paVar2[6] = this[6];
      paVar2[7] = this[7];
      paVar2[8] = this[8];
      var_5 = var_13;
    } while (var_13 < var_4);
    if ((var_2 & 1) == 0) goto LAB_000eb6b0;
  }
  else {
    this = (type_1 *)(var_7 + var_3 * 0x24);
    var_13 = var_3;
    if ((var_2 & 1) != 0) {
      local_40 = __value;
      local_3c = param_5;
      local_38 = param_6;
      local_34 = param_7;
      local_30 = param_8;
      local_2c = param_9;
      local_28 = param_10;
      var_15 = param_11;
      var_14 = param_12;
      goto LAB_000eb5d4;
    }
LAB_000eb6b0:
    if ((int)(var_2 - 2) / 2 == var_13) {
      var_13 = var_13 * 2 + 1;
      paVar2 = (type_1 *)(var_7 + var_13 * 0x24);
      *this = *paVar2;
      this[1] = paVar2[1];
      this[2] = paVar2[2];
      this[3] = paVar2[3];
      this[4] = paVar2[4];
      this[5] = paVar2[5];
      this[6] = paVar2[6];
      this[7] = paVar2[7];
      this[8] = paVar2[8];
      this = paVar2;
    }
  }
  local_40 = __value;
  local_3c = param_5;
  local_38 = param_6;
  local_34 = param_7;
  local_30 = param_8;
  local_2c = param_9;
  local_28 = param_10;
  var_15 = param_11;
  var_14 = param_12;
  if (var_3 < var_13) {
    do {
      var_4 = (var_13 + -1) / 2;
      this = (type_1 *)(var_7 + var_4 * 0x24);
      var_5 = gold::var_9<9,_true,_64,var_10>::var_11
                        ((var_9<9,_true,_64,var_10> *)this,
                         (var_9<9,_true,_64,var_10> *)&local_40);
      if ((-1 < var_5) &&
         ((var_5 != 0 ||
          (var_14 <= this[8].relobj &&
           (uint)(this[7].relobj < var_15) <= (uint)((int)this[8].relobj - (int)var_14))))) {
        this = (type_1 *)(var_7 + var_13 * 0x24);
        break;
      }
      paVar2 = (type_1 *)(var_7 + var_13 * 0x24);
      *paVar2 = *this;
      paVar2[1] = this[1];
      paVar2[2] = this[2];
      paVar2[3] = this[3];
      paVar2[4] = this[4];
      paVar2[5] = this[5];
      paVar2[6] = this[6];
      paVar2[7] = this[7];
      paVar2[8] = this[8];
      var_13 = var_4;
    } while (var_3 < var_4);
  }
LAB_000eb5d4:
  *this = local_40;
  this[1] = local_3c;
  this[2] = local_38;
  this[3] = local_34;
  this[4] = local_30;
  this[5] = local_2c;
  this[6] = local_28;
  this[7].relobj = var_15;
  this[8].relobj = var_14;
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (identifier) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement))))

void MASKED(int param_1,int param_2,uint param_3,undefined4 param_4,undefined4 param_5,
                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,
                 undefined4 param_10,uint param_11,uint param_12)

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  undefined4 *puVar8;
  int iVar9;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  uint local_24;
  uint local_20;
  
  iVar5 = (int)(param_3 - 1) / 2;
  iVar7 = param_2;
  if (param_2 < iVar5) {
    do {
      iVar4 = (iVar7 + 1) * 2;
      iVar1 = iVar4 + -1;
      puVar2 = (undefined4 *)(param_1 + (iVar7 + 1) * 0x48);
      puVar3 = (undefined4 *)(param_1 + iVar1 * 0x24);
      iVar6 = FUN_000e3c40(puVar2,puVar3);
      puVar8 = puVar3;
      iVar9 = iVar1;
      if (((-1 < iVar6) && (puVar8 = puVar2, iVar9 = iVar4, iVar6 == 0)) &&
         ((uint)puVar2[8] < (uint)puVar3[8] ||
          (uint)(puVar2[8] - puVar3[8]) < (uint)((uint)puVar2[7] < (uint)puVar3[7]))) {
        puVar8 = puVar3;
        iVar9 = iVar1;
      }
      puVar2 = (undefined4 *)(param_1 + iVar7 * 0x24);
      *puVar2 = *puVar8;
      puVar2[1] = puVar8[1];
      puVar2[2] = puVar8[2];
      puVar2[3] = puVar8[3];
      puVar2[4] = puVar8[4];
      puVar2[5] = puVar8[5];
      puVar2[6] = puVar8[6];
      puVar2[7] = puVar8[7];
      puVar2[8] = puVar8[8];
      iVar7 = iVar9;
    } while (iVar9 < iVar5);
    if ((param_3 & 1) == 0) goto LAB_000eb6b0;
  }
  else {
    puVar8 = (undefined4 *)(param_1 + param_2 * 0x24);
    iVar9 = param_2;
    if ((param_3 & 1) != 0) {
      local_40 = param_4;
      local_3c = param_5;
      local_38 = param_6;
      local_34 = param_7;
      local_30 = param_8;
      local_2c = param_9;
      local_28 = param_10;
      local_24 = param_11;
      local_20 = param_12;
      goto LAB_000eb5d4;
    }
LAB_000eb6b0:
    if ((int)(param_3 - 2) / 2 == iVar9) {
      iVar9 = iVar9 * 2 + 1;
      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);
      *puVar8 = *puVar2;
      puVar8[1] = puVar2[1];
      puVar8[2] = puVar2[2];
      puVar8[3] = puVar2[3];
      puVar8[4] = puVar2[4];
      puVar8[5] = puVar2[5];
      puVar8[6] = puVar2[6];
      puVar8[7] = puVar2[7];
      puVar8[8] = puVar2[8];
      puVar8 = puVar2;
    }
  }
  local_40 = param_4;
  local_3c = param_5;
  local_38 = param_6;
  local_34 = param_7;
  local_30 = param_8;
  local_2c = param_9;
  local_28 = param_10;
  local_24 = param_11;
  local_20 = param_12;
  if (param_2 < iVar9) {
    do {
      iVar5 = (iVar9 + -1) / 2;
      puVar8 = (undefined4 *)(param_1 + iVar5 * 0x24);
      iVar7 = FUN_000e3c40(puVar8,&local_40);
      if ((-1 < iVar7) &&
         ((iVar7 != 0 ||
          (local_20 <= (uint)puVar8[8] && (uint)((uint)puVar8[7] < local_24) <= puVar8[8] - local_20
          )))) {
        puVar8 = (undefined4 *)(param_1 + iVar9 * 0x24);
        break;
      }
      puVar2 = (undefined4 *)(param_1 + iVar9 * 0x24);
      *puVar2 = *puVar8;
      puVar2[1] = puVar8[1];
      puVar2[2] = puVar8[2];
      puVar2[3] = puVar8[3];
      puVar2[4] = puVar8[4];
      puVar2[5] = puVar8[5];
      puVar2[6] = puVar8[6];
      puVar2[7] = puVar8[7];
      puVar2[8] = puVar8[8];
      iVar9 = iVar5;
    } while (param_2 < iVar5);
  }
LAB_000eb5d4:
  *puVar8 = local_40;
  puVar8[1] = local_3c;
  puVar8[2] = local_38;
  puVar8[3] = local_34;
  puVar8[4] = local_30;
  puVar8[5] = local_2c;
  puVar8[6] = local_28;
  puVar8[7] = local_24;
  puVar8[8] = local_20;
  return;
}

