
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original name: __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4, true, 64,
   true>*, std::vector<gold::Output_reloc<4, true, 64, true>, std::allocator<gold::Output_reloc<4,
   true, 64, true> > > >, int, gold::Output_reloc<4, true, 64, true>,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4, true, 64,
   true>::Sort_relocs_comparison> > */

void std::
     __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4,_true,_64,_true>*,_std::vector<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>_>,_int,_gold::Output_reloc<4,_true,_64,_true>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,_true,_64,_true>::Sort_relocs_comparison>_>
               (int __first,int __holeIndex,uint __len)

{
  Address AVar1;
  int iVar2;
  anon_union_4_4_c82d8563_for_u1_ *paVar3;
  int iVar4;
  anon_union_4_4_c82d8563_for_u1_ *paVar5;
  Output_reloc<9,_true,_64,_true> *pOVar6;
  anon_union_4_4_c82d8563_for_u1_ *paVar7;
  Output_reloc<9,_true,_64,_true> *pOVar8;
  anon_union_4_4_c82d8563_for_u1_ *paVar9;
  anon_union_4_4_c82d8563_for_u1_ aVar10;
  anon_union_4_4_c82d8563_for_u1_ aVar11;
  undefined4 uVar12;
  anon_union_4_4_c82d8563_for_u1_ aVar13;
  anon_union_4_2_238bdeaa_for_u2_ aVar14;
  Output_reloc<9,_true,_64,_true> *this;
  Output_reloc<9,_true,_64,_true> *pOVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  Output_reloc<9,_true,_64,_true> *pOVar20;
  anon_union_4_4_c82d8563_for_u1_ local_58 [9];
  Sized_relobj<64,_true> *local_34;
  uint local_30;
  
  iVar16 = (int)(__len - 1) / 2;
  local_30 = __len & 1;
  iVar4 = __holeIndex;
  if (__holeIndex < iVar16) {
    do {
      iVar18 = (iVar4 + 1) * 2;
      iVar17 = iVar18 + -1;
      this = (Output_reloc<9,_true,_64,_true> *)(__first + (iVar4 + 1) * 0x50);
      pOVar20 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar17 * 0x28);
      iVar2 = gold::Output_reloc<9,_true,_64,_true>::compare(this,pOVar20);
      pOVar15 = pOVar20;
      iVar19 = iVar17;
      if ((iVar2 < 0) || (pOVar15 = this, iVar19 = iVar18, iVar2 != 0)) {
LAB_002675ec:
        this = pOVar15;
        iVar18 = iVar19;
      }
      else {
        pOVar15 = pOVar20;
        iVar19 = iVar17;
        if ((this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||
           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&
            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))) goto LAB_002675ec;
      }
      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x28);
      pOVar15 = this;
      do {
        pOVar20 = pOVar15;
        paVar5 = paVar3;
        pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;
        aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;
        aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;
        aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);
        *paVar5 = pOVar20->u1_;
        paVar5[1] = aVar13;
        paVar5[2] = aVar11;
        paVar5[3] = aVar10;
        paVar3 = paVar5 + 4;
      } while (pOVar15 != this + 1);
      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;
      paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;
      paVar5[5] = aVar10;
      iVar4 = iVar18;
    } while (iVar18 < iVar16);
    pOVar15 = this;
    if (local_30 == 0) goto LAB_00267870;
  }
  else {
    this = (Output_reloc<9,_true,_64,_true> *)(__first + __holeIndex * 0x28);
    iVar18 = __holeIndex;
    if ((__len & 1) != 0) {
      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010;
      paVar5 = local_58;
      do {
        paVar9 = paVar5;
        paVar7 = paVar3;
        paVar3 = paVar7 + 4;
        aVar13 = paVar7[1];
        aVar11 = paVar7[2];
        aVar10 = paVar7[3];
        *paVar9 = *paVar7;
        paVar9[1] = aVar13;
        paVar9[2] = aVar11;
        paVar9[3] = aVar10;
        paVar5 = paVar9 + 4;
      } while (paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030);
      aVar10 = paVar7[5];
      paVar9[4] = *paVar3;
      paVar9[5] = aVar10;
      goto LAB_00267704;
    }
LAB_00267870:
    pOVar15 = this;
    if ((int)(__len - 2) / 2 == iVar18) {
      iVar18 = iVar18 * 2 + 1;
      pOVar15 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);
      pOVar20 = pOVar15;
      do {
        pOVar8 = this;
        pOVar6 = pOVar20;
        pOVar20 = (Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_;
        aVar14 = pOVar6->u2_;
        uVar12 = *(undefined4 *)&pOVar6->address_;
        AVar1 = pOVar6->address_;
        pOVar8->u1_ = pOVar6->u1_;
        pOVar8->u2_ = aVar14;
        *(undefined4 *)&pOVar8->address_ = uVar12;
        *(int *)((int)&pOVar8->address_ + 4) = (int)AVar1;
        this = (Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_;
      } while (pOVar20 != pOVar15 + 1);
      uVar12 = *(undefined4 *)&pOVar6->field_0x14;
      pOVar8->local_sym_index_ = *(uint *)pOVar20;
      *(undefined4 *)&pOVar8->field_0x14 = uVar12;
    }
  }
  paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010;
  paVar5 = local_58;
  do {
    paVar9 = paVar5;
    paVar7 = paVar3;
    paVar3 = paVar7 + 4;
    aVar13 = paVar7[1];
    aVar11 = paVar7[2];
    aVar10 = paVar7[3];
    *paVar9 = *paVar7;
    paVar9[1] = aVar13;
    paVar9[2] = aVar11;
    paVar9[3] = aVar10;
    paVar5 = paVar9 + 4;
  } while (paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030);
  aVar10 = paVar7[5];
  paVar9[4] = *paVar3;
  paVar9[5] = aVar10;
  this = pOVar15;
  while (__holeIndex < iVar18) {
    iVar16 = (iVar18 + -1) / 2;
    this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar16 * 0x28);
    iVar4 = gold::Output_reloc<9,_true,_64,_true>::compare
                      (this,(Output_reloc<9,_true,_64,_true> *)local_58);
    if ((-1 < iVar4) &&
       ((iVar4 != 0 ||
        ((local_58[8].relobj <= this[1].u1_.relobj &&
         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)))))))) {
      this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);
      break;
    }
    paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar18 * 0x28);
    pOVar15 = this;
    do {
      pOVar20 = pOVar15;
      paVar5 = paVar3;
      pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;
      aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;
      aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;
      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);
      *paVar5 = pOVar20->u1_;
      paVar5[1] = aVar13;
      paVar5[2] = aVar11;
      paVar5[3] = aVar10;
      paVar3 = paVar5 + 4;
    } while (pOVar15 != this + 1);
    aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;
    paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;
    paVar5[5] = aVar10;
    iVar18 = iVar16;
  }
LAB_00267704:
  paVar3 = local_58;
  do {
    pOVar15 = this;
    paVar5 = paVar3;
    paVar3 = paVar5 + 4;
    aVar13 = paVar5[1];
    aVar11 = paVar5[2];
    aVar10 = paVar5[3];
    pOVar15->u1_ = *paVar5;
    pOVar15->u2_ = (anon_union_4_2_238bdeaa_for_u2_)aVar13;
    *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->address_ = aVar11;
    *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar15->address_ + 4) = aVar10;
    this = (Output_reloc<9,_true,_64,_true> *)&pOVar15->local_sym_index_;
  } while (paVar3 != local_58 + 8);
  aVar10 = paVar5[5];
  pOVar15->local_sym_index_ = (uint)*paVar3;
  *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->field_0x14 = aVar10;
  return;
}



/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* void std::__adjust_heap<__normal_iterator<gold::Output_reloc<4, true, 64, true>*,
   std::vector<gold::Output_reloc<4, true, 64, true>, std::allocator<gold::Output_reloc<4, true, 64,
   true> > > >, int, gold::Output_reloc<4, true, 64, true>,
   __ops::_Iter_comp_iter<gold::Output_data_reloc_base<4, true, 64, true>::Sort_relocs_comparison>
   >(__normal_iterator<gold::Output_reloc<4, true, 64, true>*, std::vector<gold::Output_reloc<4,
   true, 64, true>, std::allocator<gold::Output_reloc<4, true, 64, true> > > >, int, int,
   gold::Output_reloc<4, true, 64, true>, __ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,
   true, 64, true>::Sort_relocs_comparison>) */

void std::
     __adjust_heap<__normal_iterator<gold::Output_reloc<4,true,64,true>*,std::vector<gold::Output_reloc<4,true,64,true>,std::allocator<gold::Output_reloc<4,true,64,true>>>>,int,gold::Output_reloc<4,true,64,true>,__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,true,64,true>::Sort_relocs_comparison>>
               (int param_1,int param_2,uint param_3)

{
  int iVar1;
  undefined4 *puVar2;
  int iVar3;
  undefined4 *puVar4;
  Output_reloc<9,true,64,true> *pOVar5;
  Output_reloc<9,true,64,true> *pOVar6;
  Output_reloc<9,true,64,true> *pOVar7;
  Output_reloc<9,true,64,true> *pOVar8;
  Output_reloc *pOVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  Output_reloc<9,true,64,true> *this;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  Output_reloc *pOVar17;
  Output_reloc local_58 [4];
  undefined4 local_54 [7];
  uint local_38;
  uint local_34;
  uint local_30;
  
  iVar13 = (int)(param_3 - 1) / 2;
  local_30 = param_3 & 1;
  iVar3 = param_2;
  if (param_2 < iVar13) {
    do {
      iVar15 = (iVar3 + 1) * 2;
      iVar14 = iVar15 + -1;
      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);
      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);
      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);
      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;
      iVar16 = iVar14;
      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {
LAB_002675ec:
        this = pOVar7;
        iVar15 = iVar16;
      }
      else {
        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;
        iVar16 = iVar14;
        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||
           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&
            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;
      }
      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);
      pOVar7 = this;
      do {
        pOVar6 = pOVar7;
        puVar4 = puVar2;
        pOVar7 = pOVar6 + 0x10;
        uVar12 = *(undefined4 *)(pOVar6 + 4);
        uVar11 = *(undefined4 *)(pOVar6 + 8);
        uVar10 = *(undefined4 *)(pOVar6 + 0xc);
        *puVar4 = *(undefined4 *)pOVar6;
        puVar4[1] = uVar12;
        puVar4[2] = uVar11;
        puVar4[3] = uVar10;
        puVar2 = puVar4 + 4;
      } while (pOVar7 != this + 0x20);
      uVar10 = *(undefined4 *)(pOVar6 + 0x14);
      puVar4[4] = *(undefined4 *)pOVar7;
      puVar4[5] = uVar10;
      iVar3 = iVar15;
    } while (iVar15 < iVar13);
    pOVar7 = this;
    if (local_30 == 0) goto LAB_00267870;
  }
  else {
    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);
    iVar15 = param_2;
    if ((param_3 & 1) != 0) {
      puVar2 = (undefined4 *)&stack0x00000010;
      pOVar17 = local_58;
      do {
        pOVar9 = pOVar17;
        puVar4 = puVar2;
        puVar2 = puVar4 + 4;
        uVar12 = puVar4[1];
        uVar11 = puVar4[2];
        uVar10 = puVar4[3];
        *(undefined4 *)pOVar9 = *puVar4;
        *(undefined4 *)(pOVar9 + 4) = uVar12;
        *(undefined4 *)(pOVar9 + 8) = uVar11;
        *(undefined4 *)(pOVar9 + 0xc) = uVar10;
        pOVar17 = pOVar9 + 0x10;
      } while (puVar2 != (undefined4 *)&stack0x00000030);
      uVar10 = puVar4[5];
      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;
      *(undefined4 *)(pOVar9 + 0x14) = uVar10;
      goto LAB_00267704;
    }
LAB_00267870:
    pOVar7 = this;
    if ((int)(param_3 - 2) / 2 == iVar15) {
      iVar15 = iVar15 * 2 + 1;
      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);
      pOVar6 = pOVar7;
      do {
        pOVar8 = this;
        pOVar5 = pOVar6;
        pOVar6 = pOVar5 + 0x10;
        uVar12 = *(undefined4 *)(pOVar5 + 4);
        uVar11 = *(undefined4 *)(pOVar5 + 8);
        uVar10 = *(undefined4 *)(pOVar5 + 0xc);
        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;
        *(undefined4 *)(pOVar8 + 4) = uVar12;
        *(undefined4 *)(pOVar8 + 8) = uVar11;
        *(undefined4 *)(pOVar8 + 0xc) = uVar10;
        this = pOVar8 + 0x10;
      } while (pOVar6 != pOVar7 + 0x20);
      uVar10 = *(undefined4 *)(pOVar5 + 0x14);
      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;
      *(undefined4 *)(pOVar8 + 0x14) = uVar10;
    }
  }
  puVar2 = (undefined4 *)&stack0x00000010;
  pOVar17 = local_58;
  do {
    pOVar9 = pOVar17;
    puVar4 = puVar2;
    puVar2 = puVar4 + 4;
    uVar12 = puVar4[1];
    uVar11 = puVar4[2];
    uVar10 = puVar4[3];
    *(undefined4 *)pOVar9 = *puVar4;
    *(undefined4 *)(pOVar9 + 4) = uVar12;
    *(undefined4 *)(pOVar9 + 8) = uVar11;
    *(undefined4 *)(pOVar9 + 0xc) = uVar10;
    pOVar17 = pOVar9 + 0x10;
  } while (puVar2 != (undefined4 *)&stack0x00000030);
  uVar10 = puVar4[5];
  *(undefined4 *)(pOVar9 + 0x10) = *puVar2;
  *(undefined4 *)(pOVar9 + 0x14) = uVar10;
  this = pOVar7;
  while (param_2 < iVar15) {
    iVar13 = (iVar15 + -1) / 2;
    this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);
    iVar3 = gold::Output_reloc<9,true,64,true>::compare(this,local_58);
    if ((-1 < iVar3) &&
       ((iVar3 != 0 ||
        ((local_38 <= *(uint *)(this + 0x20) &&
         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {
      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);
      break;
    }
    puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);
    pOVar7 = this;
    do {
      pOVar6 = pOVar7;
      puVar4 = puVar2;
      pOVar7 = pOVar6 + 0x10;
      uVar12 = *(undefined4 *)(pOVar6 + 4);
      uVar11 = *(undefined4 *)(pOVar6 + 8);
      uVar10 = *(undefined4 *)(pOVar6 + 0xc);
      *puVar4 = *(undefined4 *)pOVar6;
      puVar4[1] = uVar12;
      puVar4[2] = uVar11;
      puVar4[3] = uVar10;
      puVar2 = puVar4 + 4;
    } while (pOVar7 != this + 0x20);
    uVar10 = *(undefined4 *)(pOVar6 + 0x14);
    puVar4[4] = *(undefined4 *)pOVar7;
    puVar4[5] = uVar10;
    iVar15 = iVar13;
  }
LAB_00267704:
  pOVar17 = local_58;
  do {
    pOVar7 = this;
    pOVar9 = pOVar17;
    pOVar17 = pOVar9 + 0x10;
    uVar12 = *(undefined4 *)(pOVar9 + 4);
    uVar11 = *(undefined4 *)(pOVar9 + 8);
    uVar10 = *(undefined4 *)(pOVar9 + 0xc);
    *(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;
    *(undefined4 *)(pOVar7 + 4) = uVar12;
    *(undefined4 *)(pOVar7 + 8) = uVar11;
    *(undefined4 *)(pOVar7 + 0xc) = uVar10;
    this = pOVar7 + 0x10;
  } while (pOVar17 != (Output_reloc *)(local_54 + 7));
  uVar10 = *(undefined4 *)(pOVar9 + 0x14);
  *(undefined4 *)(pOVar7 + 0x10) = *(undefined4 *)pOVar17;
  *(undefined4 *)(pOVar7 + 0x14) = uVar10;
  return;
}


lui gp,0x26
addiu gp,gp,0x1d10
addu gp,gp,t9
addiu sp,sp,-0x70
addiu v0,a2,-0x1
sw s3,0x54(sp)
srl s3,v0,0x1f
sw gp,0x10(sp)
addu s3,s3,v0
sw s6,0x60(sp)
andi v0,a2,0x1
sw s2,0x50(sp)
sra s3,s3,0x1
sw v0,0x40(sp)
sw ra,0x6c(sp)
or s2,a1,zero
slt v0,a1,s3
sw s8,0x68(sp)
sw s7,0x64(sp)
or s6,a0,zero
sw s5,0x5c(sp)
sw s4,0x58(sp)
sw s1,0x4c(sp)
sw s0,0x48(sp)
beq v0,zero,0x00267850
_sw a2,0x78(sp)
lw s1,-0x725c(gp)
or s5,a1,zero
addiu s0,s5,0x1
or t9,s1,zero
sll s7,s0,0x1
sll s0,s0,0x3
addiu s4,s7,-0x1
addu s0,s0,s7
sll s8,s4,0x2
sll s0,s0,0x3
addu s8,s8,s4
addu s0,s6,s0
sll s8,s8,0x3
or a0,s0,zero
addu s8,s6,s8
bal 0x0025e644
_or a1,s8,zero
bltz v0,0x00267844
_lw gp,0x10(sp)
beq v0,zero,0x00267814
_nop
sll v0,s5,0x2
addiu t0,s0,0x20
addu v0,v0,s5
or v1,s0,zero
sll v0,v0,0x3
addu v0,s6,v0
lw a3,0x0(v1)
addiu v1,v1,0x10
addiu v0,v0,0x10
lw a2,-0xc(v1)
lw a1,-0x8(v1)
lw a0,-0x4(v1)
sw a3,-0x10(v0)
sw a2,-0xc(v0)
sw a1,-0x8(v0)
bne v1,t0,0x00267604
_sw a0,-0x4(v0)
lw a2,0x0(v1)
slt a0,s7,s3
lw a1,0x4(v1)
or s5,s7,zero
sw a2,0x0(v0)
bne a0,zero,0x002675a0
_sw a1,0x4(v0)
lw v0,0x40(sp)
beq v0,zero,0x00267870
_lw v0,0x78(sp)
addiu s4,sp,0x18
addiu v0,sp,0x80
addiu t0,sp,0xa0
or v1,s4,zero
lw a3,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw a2,-0xc(v0)
lw a1,-0x8(v0)
lw a0,-0x4(v0)
sw a3,-0x10(v1)
sw a2,-0xc(v1)
sw a1,-0x8(v1)
bne v0,t0,0x00267668
_sw a0,-0x4(v1)
addiu s3,s7,-0x1
lw a2,0x0(v0)
lw a1,0x4(v0)
slt v0,s2,s7
srl a0,s3,0x1f
sw a2,0x0(v1)
addu s3,a0,s3
sw a1,0x4(v1)
beq v0,zero,0x00267700
_sra s3,s3,0x1
lw s1,-0x725c(gp)
sll s0,s3,0x2
or a1,s4,zero
addu s0,s0,s3
or t9,s1,zero
sll s0,s0,0x3
addu s0,s6,s0
bal 0x0025e644
_or a0,s0,zero
bltz v0,0x0026779c
_nop
beq v0,zero,0x00267774
_lw v1,0x38(sp)
sll s0,s7,0x2
addu s0,s0,s7
sll s0,s0,0x3
addu s0,s6,s0
addiu a3,sp,0x38
or a1,s4,zero
lw a2,0x0(a1)
addiu a1,a1,0x10
addiu s0,s0,0x10
lw a0,-0xc(a1)
lw v1,-0x8(a1)
lw v0,-0x4(a1)
sw a2,-0x10(s0)
sw a0,-0xc(s0)
sw v1,-0x8(s0)
bne a1,a3,0x00267708
_sw v0,-0x4(s0)
lw v1,0x0(a1)
lw v0,0x4(a1)
lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
sw v1,0x0(s0)
sw v0,0x4(s0)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
lw v0,0x20(s0)
sltu a0,v0,v1
bne a0,zero,0x0026779c
_nop
bne v1,v0,0x002676f0
_lw v0,0x3c(sp)
lw v1,0x24(s0)
sltu v0,v1,v0
beq v0,zero,0x002676f0
_nop
sll v0,s7,0x2
addiu t0,s0,0x20
addu v0,v0,s7
or v1,s0,zero
sll v0,v0,0x3
addu v0,s6,v0
lw a3,0x0(v1)
addiu v1,v1,0x10
addiu v0,v0,0x10
lw a2,-0xc(v1)
lw a1,-0x8(v1)
lw a0,-0x4(v1)
sw a3,-0x10(v0)
sw a2,-0xc(v0)
sw a1,-0x8(v0)
bne v1,t0,0x002677b4
_sw a0,-0x4(v0)
addiu a0,s3,-0x1
lw a3,0x0(v1)
lw a2,0x4(v1)
slt a1,s2,s3
srl v1,a0,0x1f
or s7,s3,zero
sw a3,0x0(v0)
addu s3,v1,a0
sw a2,0x4(v0)
bne a1,zero,0x002676c0
_sra s3,s3,0x1
b 0x00267704
_addiu a3,sp,0x38
lw a0,0x20(s8)
lw v0,0x20(s0)
sltu a1,v0,a0
bne a1,zero,0x00267844
_nop
bne a0,v0,0x002675f0
_sll v0,s5,0x2
lw v0,0x24(s8)
lw a0,0x24(s0)
sltu v0,a0,v0
beq v0,zero,0x002675f0
_sll v0,s5,0x2
or s0,s8,zero
b 0x002675ec
_or s7,s4,zero
sll s0,a1,0x2
lw v0,0x40(sp)
addu s0,s0,a1
sll s0,s0,0x3
bne v0,zero,0x002678ec
_addu s0,a0,s0
or s7,s2,zero
lw v0,0x78(sp)
addiu s4,v0,-0x2
srl v0,s4,0x1f
addu v0,v0,s4
sra v0,v0,0x1
bne v0,s7,0x0026765c
_addiu s4,sp,0x18
sll v0,s7,0x1
or v1,s0,zero
addiu s7,v0,0x1
sll s0,s7,0x2
addu s0,s0,s7
sll s0,s0,0x3
addu s0,s6,s0
addiu t0,s0,0x20
or v0,s0,zero
lw a3,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw a2,-0xc(v0)
lw a1,-0x8(v0)
lw a0,-0x4(v0)
sw a3,-0x10(v1)
sw a2,-0xc(v1)
sw a1,-0x8(v1)
bne v0,t0,0x002678ac
_sw a0,-0x4(v1)
lw a0,0x0(v0)
lw v0,0x4(v0)
sw a0,0x0(v1)
b 0x00267658
_sw v0,0x4(v1)
addiu s4,sp,0x18
addiu v0,sp,0x80
addiu t0,sp,0xa0
or v1,s4,zero
lw a3,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw a2,-0xc(v0)
lw a1,-0x8(v0)
lw a0,-0x4(v0)
sw a3,-0x10(v1)
sw a2,-0xc(v1)
sw a1,-0x8(v1)
bne v0,t0,0x002678fc
_sw a0,-0x4(v1)
lw a0,0x0(v0)
lw v0,0x4(v0)
sw a0,0x0(v1)
b 0x00267700
_sw v0,0x4(v1)
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* void std::__adjust_heap<__normal_iterator<gold::Output_reloc<4, true, 64, true>*,\n   std::vector<gold::Output_reloc<4, true, 64, true>, std::allocator<gold::Output_reloc<4, true, 64,\n   true> > > >, int, gold::Output_reloc<4, true, 64, true>,\n   __ops::_Iter_comp_iter<gold::Output_data_reloc_base<4, true, 64, true>::Sort_relocs_comparison>\n   >(__normal_iterator<gold::Output_reloc<4, true, 64, true>*, std::vector<gold::Output_reloc<4,\n   true, 64, true>, std::allocator<gold::Output_reloc<4, true, 64, true> > > >, int, int,\n   gold::Output_reloc<4, true, 64, true>, __ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,\n   true, 64, true>::Sort_relocs_comparison>) */\n\nvoid std::\n     __adjust_heap<__normal_iterator<gold::Output_reloc<4,true,64,true>*,std::vector<gold::Output_reloc<4,true,64,true>,std::allocator<gold::Output_reloc<4,true,64,true>>>>,int,gold::Output_reloc<4,true,64,true>,__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,true,64,true>::Sort_relocs_comparison>>\n               (int param_1,int param_2,uint param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  Output_reloc<9,true,64,true> *pOVar5;\n  Output_reloc<9,true,64,true> *pOVar6;\n  Output_reloc<9,true,64,true> *pOVar7;\n  Output_reloc<9,true,64,true> *pOVar8;\n  Output_reloc *pOVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  Output_reloc<9,true,64,true> *this;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  Output_reloc *pOVar17;\n  Output_reloc local_58 [4];\n  undefined4 local_54 [7];\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  \n  iVar13 = (int)(param_3 - 1) / 2;\n  local_30 = param_3 & 1;\n  iVar3 = param_2;\n  if (param_2 < iVar13) {\n    do {\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    } while (iVar15 < iVar13);\n    pOVar7 = this;\n    if (local_30 == 0) goto LAB_00267870;\n  }\n  else {\n    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);\n    iVar15 = param_2;\n    if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar7 = this;\n    if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }\n  }\n  puVar2 = (undefined4 *)&stack0x00000010;\n  pOVar17 = local_58;\n  do {\n    pOVar9 = pOVar17;\n    puVar4 = puVar2;\n    puVar2 = puVar4 + 4;\n    uVar12 = puVar4[1];\n    uVar11 = puVar4[2];\n    uVar10 = puVar4[3];\n    *(undefined4 *)pOVar9 = *puVar4;\n    *(undefined4 *)(pOVar9 + 4) = uVar12;\n    *(undefined4 *)(pOVar9 + 8) = uVar11;\n    *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n    pOVar17 = pOVar9 + 0x10;\n  } while (puVar2 != (undefined4 *)&stack0x00000030);\n  uVar10 = puVar4[5];\n  *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n  *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n  this = pOVar7;\n  while (param_2 < iVar15) {\n    iVar13 = (iVar15 + -1) / 2;\n    this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);\n    iVar3 = gold::Output_reloc<9,true,64,true>::compare(this,local_58);\n    if ((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }\n    puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);\n    pOVar7 = this;\n    do {\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    } while (pOVar7 != this + 0x20);\n    uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n    puVar4[4] = *(undefined4 *)pOVar7;\n    puVar4[5] = uVar10;\n    iVar15 = iVar13;\n  }\nLAB_00267704:\n  pOVar17 = local_58;\n  do {\n    pOVar7 = this;\n    pOVar9 = pOVar17;\n    pOVar17 = pOVar9 + 0x10;\n    uVar12 = *(undefined4 *)(pOVar9 + 4);\n    uVar11 = *(undefined4 *)(pOVar9 + 8);\n    uVar10 = *(undefined4 *)(pOVar9 + 0xc);\n    *(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;\n    *(undefined4 *)(pOVar7 + 4) = uVar12;\n    *(undefined4 *)(pOVar7 + 8) = uVar11;\n    *(undefined4 *)(pOVar7 + 0xc) = uVar10;\n    this = pOVar7 + 0x10;\n  } while (pOVar17 != (Output_reloc *)(local_54 + 7));\n  uVar10 = *(undefined4 *)(pOVar9 + 0x14);\n  *(undefined4 *)(pOVar7 + 0x10) = *(undefined4 *)pOVar17;\n  *(undefined4 *)(pOVar7 + 0x14) = uVar10;\n  return;\n}\n\n" comment comment (declaration "void std::\n     __adjust_heap<__normal_iterator<gold::Output_reloc<4,true,64,true>*,std::vector<gold::Output_reloc<4,true,64,true>,std::allocator<gold::Output_reloc<4,true,64,true>>>>,int,gold::Output_reloc<4,true,64,true>,__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,true,64,true>::Sort_relocs_comparison>>\n               (int param_1,int param_2,uint param_3)\n\n{\n  int iVar1;" primitive_type (ERROR "std::\n     __adjust_heap<__normal_iterator<gold::" identifier : : identifier < identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier (ERROR ",64" , number_literal) , identifier (ERROR ">*" > *) , (ERROR "std::vector<gold::" identifier : : identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier (ERROR ",64" , number_literal) , identifier (ERROR ">" >) , (ERROR "std::allocator<gold::" identifier : : identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier (ERROR ",64" , number_literal) , identifier (ERROR ">>>>" >> >>) , identifier , (ERROR "gold::" identifier : :) identifier (ERROR "<4" < number_literal) , identifier (ERROR ",64" , number_literal) , identifier (ERROR ">" >) , (ERROR "__ops::_Iter_comp_iter<gold::" identifier : : identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier (ERROR ",64" , number_literal) , (ERROR "true>::Sort_relocs_comparison>>\n               (int param_1,int param_2,uint param_3)\n\n{\n  int" identifier > : : (function_declarator "Sort_relocs_comparison>>\n               (int param_1,int param_2,uint param_3)" identifier (ERROR ">>" >>) (parameter_list "(int param_1,int param_2,uint param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) { primitive_type) identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (expression_statement "Output_reloc<9,true,64,true> *pOVar5;" (update_expression "Output_reloc<9,true,64,true> *pOVar5" (binary_expression "Output_reloc<9,true,64,true> *pOVar5" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*pOVar5" * identifier)) --) ;) (expression_statement "Output_reloc<9,true,64,true> *pOVar6;" (update_expression "Output_reloc<9,true,64,true> *pOVar6" (binary_expression "Output_reloc<9,true,64,true> *pOVar6" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*pOVar6" * identifier)) --) ;) (expression_statement "Output_reloc<9,true,64,true> *pOVar7;" (update_expression "Output_reloc<9,true,64,true> *pOVar7" (binary_expression "Output_reloc<9,true,64,true> *pOVar7" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*pOVar7" * identifier)) --) ;) (expression_statement "Output_reloc<9,true,64,true> *pOVar8;" (update_expression "Output_reloc<9,true,64,true> *pOVar8" (binary_expression "Output_reloc<9,true,64,true> *pOVar8" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*pOVar8" * identifier)) --) ;) (declaration "Output_reloc *pOVar9;" type_identifier (pointer_declarator "*pOVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (expression_statement "Output_reloc<9,true,64,true> *this;" (update_expression "Output_reloc<9,true,64,true> *this" (binary_expression "Output_reloc<9,true,64,true> *this" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*this" * identifier)) --) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "Output_reloc *pOVar17;" type_identifier (pointer_declarator "*pOVar17" * identifier) ;) (declaration "Output_reloc local_58 [4];" type_identifier (array_declarator "local_58 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_54 [7];" type_identifier (array_declarator "local_54 [7]" identifier [ number_literal ]) ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "iVar13 = (int)(param_3 - 1) / 2;" (assignment_expression "iVar13 = (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 "local_30 = param_3 & 1;" (assignment_expression "local_30 = param_3 & 1" identifier = (binary_expression "param_3 & 1" identifier & number_literal)) ;) (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" identifier = identifier) ;) (if_statement "if (param_2 < iVar13) {\n    do {\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    } while (iVar15 < iVar13);\n    pOVar7 = this;\n    if (local_30 == 0) goto LAB_00267870;\n  }\n  else {\n    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);\n    iVar15 = param_2;\n    if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar7 = this;\n    if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }\n  }" if (parenthesized_expression "(param_2 < iVar13)" ( (binary_expression "param_2 < iVar13" identifier < identifier) )) (compound_statement "{\n    do {\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    } while (iVar15 < iVar13);\n    pOVar7 = this;\n    if (local_30 == 0) goto LAB_00267870;\n  }" { (do_statement "do {\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    } while (iVar15 < iVar13);" do (compound_statement "{\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    }" { (expression_statement "iVar15 = (iVar3 + 1) * 2;" (assignment_expression "iVar15 = (iVar3 + 1) * 2" identifier = (binary_expression "(iVar3 + 1) * 2" (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "iVar14 = iVar15 + -1;" (assignment_expression "iVar14 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(param_1 + (iVar3 + 1) * 0x50)" ( (binary_expression "param_1 + (iVar3 + 1) * 0x50" identifier + (binary_expression "(iVar3 + 1) * 0x50" (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);" (assignment_expression "pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28)" identifier = (cast_expression "(Output_reloc *)(param_1 + iVar14 * 0x28)" ( (type_descriptor "Output_reloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar14 * 0x28)" ( (binary_expression "param_1 + iVar14 * 0x28" identifier + (binary_expression "iVar14 * 0x28" identifier * number_literal)) )))) ;) (ERROR "iVar1 = gold::" (assignment_expression "iVar1 = gold" identifier = identifier) : :) (expression_statement "Output_reloc<9,true,64,true>::compare(this,pOVar17);" (comma_expression "Output_reloc<9,true,64,true>::compare(this,pOVar17)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true>::compare(this,pOVar17)" true , (comma_expression "64,true>::compare(this,pOVar17)" number_literal , (binary_expression "true>::compare(this,pOVar17)" true > (ERROR "::" : :) (call_expression "compare(this,pOVar17)" identifier (argument_list "(this,pOVar17)" ( identifier , identifier ))))))) ;) (expression_statement "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;" (assignment_expression "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17" identifier = (parenthesized_expression "(Output_reloc<9,true,64,true> *)pOVar17" ( (comma_expression "Output_reloc<9,true,64,true> *)pOVar17" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *)pOVar17" true , (comma_expression "64,true> *)pOVar17" number_literal , (binary_expression "true> *)pOVar17" true > (pointer_expression "*)pOVar17" * (ERROR ")" )) identifier))))) ))) ;) (expression_statement "iVar16 = iVar14;" (assignment_expression "iVar16 = iVar14" identifier = identifier) ;) (if_statement "if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }" if (parenthesized_expression "((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0))" ( (binary_expression "(iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)" (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) || (parenthesized_expression "(pOVar7 = this, iVar16 = iVar15, iVar1 != 0)" ( (comma_expression "pOVar7 = this, iVar16 = iVar15, iVar1 != 0" (assignment_expression "pOVar7 = this" identifier = identifier) , (comma_expression "iVar16 = iVar15, iVar1 != 0" (assignment_expression "iVar16 = iVar15" identifier = identifier) , (binary_expression "iVar1 != 0" identifier != number_literal))) ))) )) (compound_statement "{\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }" { (labeled_statement "LAB_002675ec:\n        this = pOVar7;" statement_identifier : (expression_statement "this = pOVar7;" (assignment_expression "this = pOVar7" identifier = identifier) ;)) (expression_statement "iVar15 = iVar16;" (assignment_expression "iVar15 = iVar16" identifier = identifier) ;) }) (else_clause "else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }" else (compound_statement "{\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }" { (expression_statement "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;" (assignment_expression "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17" identifier = (parenthesized_expression "(Output_reloc<9,true,64,true> *)pOVar17" ( (comma_expression "Output_reloc<9,true,64,true> *)pOVar17" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *)pOVar17" true , (comma_expression "64,true> *)pOVar17" number_literal , (binary_expression "true> *)pOVar17" true > (pointer_expression "*)pOVar17" * (ERROR ")" )) identifier))))) ))) ;) (expression_statement "iVar16 = iVar14;" (assignment_expression "iVar16 = iVar14" identifier = identifier) ;) (if_statement "if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;" if (parenthesized_expression "((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24)))))" ( (binary_expression "(*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))" (parenthesized_expression "(*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20))" ( (binary_expression "*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)" (pointer_expression "*(uint *)(this + 0x20)" * (cast_expression "(uint *)(this + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) < (pointer_expression "*(uint *)(pOVar17 + 0x20)" * (cast_expression "(uint *)(pOVar17 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar17 + 0x20)" ( (binary_expression "pOVar17 + 0x20" identifier + number_literal) ))))) )) || (parenthesized_expression "((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))" ( (parenthesized_expression "(*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24)))" ( (binary_expression "*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))" (binary_expression "*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20)" (pointer_expression "*(uint *)(pOVar17 + 0x20)" * (cast_expression "(uint *)(pOVar17 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar17 + 0x20)" ( (binary_expression "pOVar17 + 0x20" identifier + number_literal) )))) == (pointer_expression "*(uint *)(this + 0x20)" * (cast_expression "(uint *)(this + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))" ( (binary_expression "*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24)" (pointer_expression "*(uint *)(this + 0x24)" * (cast_expression "(uint *)(this + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) < (pointer_expression "*(uint *)(pOVar17 + 0x24)" * (cast_expression "(uint *)(pOVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar17 + 0x24)" ( (binary_expression "pOVar17 + 0x24" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_002675ec;" goto statement_identifier ;)) }))) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar3 * 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3 * 0x28)" ( (binary_expression "param_1 + iVar3 * 0x28" identifier + (binary_expression "iVar3 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" identifier = identifier) ;) (do_statement "do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);" do (compound_statement "{\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      }" { (expression_statement "pOVar6 = pOVar7;" (assignment_expression "pOVar6 = pOVar7" identifier = identifier) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "pOVar7 = pOVar6 + 0x10;" (assignment_expression "pOVar7 = pOVar6 + 0x10" identifier = (binary_expression "pOVar6 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)(pOVar6 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar6 + 4)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 4)" * (cast_expression "(undefined4 *)(pOVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 4)" ( (binary_expression "pOVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(pOVar6 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar6 + 8)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 8)" * (cast_expression "(undefined4 *)(pOVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 8)" ( (binary_expression "pOVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 0xc)" * (cast_expression "(undefined4 *)(pOVar6 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 0xc)" ( (binary_expression "pOVar6 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = *(undefined4 *)pOVar6;" (assignment_expression "*puVar4 = *(undefined4 *)pOVar6" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*(undefined4 *)pOVar6" * (cast_expression "(undefined4 *)pOVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar4[1] = uVar12;" (assignment_expression "puVar4[1] = uVar12" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar11;" (assignment_expression "puVar4[2] = uVar11" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar10;" (assignment_expression "puVar4[3] = uVar10" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pOVar7 != this + 0x20)" ( (binary_expression "pOVar7 != this + 0x20" identifier != (binary_expression "this + 0x20" identifier + number_literal)) )) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 0x14)" * (cast_expression "(undefined4 *)(pOVar6 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 0x14)" ( (binary_expression "pOVar6 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar4[4] = *(undefined4 *)pOVar7;" (assignment_expression "puVar4[4] = *(undefined4 *)pOVar7" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pOVar7" * (cast_expression "(undefined4 *)pOVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar4[5] = uVar10;" (assignment_expression "puVar4[5] = uVar10" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = iVar15;" (assignment_expression "iVar3 = iVar15" identifier = identifier) ;) }) while (parenthesized_expression "(iVar15 < iVar13)" ( (binary_expression "iVar15 < iVar13" identifier < identifier) )) ;) (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" identifier = identifier) ;) (if_statement "if (local_30 == 0) goto LAB_00267870;" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00267870;" goto statement_identifier ;)) }) (else_clause "else {\n    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);\n    iVar15 = param_2;\n    if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar7 = this;\n    if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }\n  }" else (compound_statement "{\n    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);\n    iVar15 = param_2;\n    if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar7 = this;\n    if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }\n  }" { (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(param_1 + param_2 * 0x28)" ( (binary_expression "param_1 + param_2 * 0x28" identifier + (binary_expression "param_2 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "iVar15 = param_2;" (assignment_expression "iVar15 = param_2" identifier = identifier) ;) (if_statement "if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\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      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }" { (expression_statement "puVar2 = (undefined4 *)&stack0x00000010;" (assignment_expression "puVar2 = (undefined4 *)&stack0x00000010" identifier = (cast_expression "(undefined4 *)&stack0x00000010" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000010" & identifier))) ;) (expression_statement "pOVar17 = local_58;" (assignment_expression "pOVar17 = local_58" identifier = identifier) ;) (do_statement "do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);" do (compound_statement "{\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      }" { (expression_statement "pOVar9 = pOVar17;" (assignment_expression "pOVar9 = pOVar17" identifier = identifier) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "uVar12 = puVar4[1];" (assignment_expression "uVar12 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = puVar4[2];" (assignment_expression "uVar11 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar4[3];" (assignment_expression "uVar10 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)pOVar9 = *puVar4;" (assignment_expression "*(undefined4 *)pOVar9 = *puVar4" (pointer_expression "*(undefined4 *)pOVar9" * (cast_expression "(undefined4 *)pOVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(undefined4 *)(pOVar9 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar9 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar9 + 4)" * (cast_expression "(undefined4 *)(pOVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 4)" ( (binary_expression "pOVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar9 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar9 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar9 + 8)" * (cast_expression "(undefined4 *)(pOVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 8)" ( (binary_expression "pOVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0xc)" * (cast_expression "(undefined4 *)(pOVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0xc)" ( (binary_expression "pOVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pOVar17 = pOVar9 + 0x10;" (assignment_expression "pOVar17 = pOVar9 + 0x10" identifier = (binary_expression "pOVar9 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar2 != (undefined4 *)&stack0x00000030)" ( (binary_expression "puVar2 != (undefined4 *)&stack0x00000030" identifier != (cast_expression "(undefined4 *)&stack0x00000030" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000030" & identifier))) )) ;) (expression_statement "uVar10 = puVar4[5];" (assignment_expression "uVar10 = puVar4[5]" identifier = (subscript_expression "puVar4[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0x10) = *puVar2;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x10) = *puVar2" (pointer_expression "*(undefined4 *)(pOVar9 + 0x10)" * (cast_expression "(undefined4 *)(pOVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0x10)" ( (binary_expression "pOVar9 + 0x10" identifier + number_literal) )))) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0x14)" * (cast_expression "(undefined4 *)(pOVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0x14)" ( (binary_expression "pOVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00267704;" goto statement_identifier ;) })) (labeled_statement "LAB_00267870:\n    pOVar7 = this;" statement_identifier : (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" identifier = identifier) ;)) (if_statement "if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }" if (parenthesized_expression "((int)(param_3 - 2) / 2 == iVar15)" ( (binary_expression "(int)(param_3 - 2) / 2 == iVar15" (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      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }" { (expression_statement "iVar15 = iVar15 * 2 + 1;" (assignment_expression "iVar15 = iVar15 * 2 + 1" identifier = (binary_expression "iVar15 * 2 + 1" (binary_expression "iVar15 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);" (assignment_expression "pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(param_1 + iVar15 * 0x28)" ( (binary_expression "param_1 + iVar15 * 0x28" identifier + (binary_expression "iVar15 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "pOVar6 = pOVar7;" (assignment_expression "pOVar6 = pOVar7" identifier = identifier) ;) (do_statement "do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);" do (compound_statement "{\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      }" { (expression_statement "pOVar8 = this;" (assignment_expression "pOVar8 = this" identifier = identifier) ;) (expression_statement "pOVar5 = pOVar6;" (assignment_expression "pOVar5 = pOVar6" identifier = identifier) ;) (expression_statement "pOVar6 = pOVar5 + 0x10;" (assignment_expression "pOVar6 = pOVar5 + 0x10" identifier = (binary_expression "pOVar5 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)(pOVar5 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar5 + 4)" identifier = (pointer_expression "*(undefined4 *)(pOVar5 + 4)" * (cast_expression "(undefined4 *)(pOVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar5 + 4)" ( (binary_expression "pOVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(pOVar5 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar5 + 8)" identifier = (pointer_expression "*(undefined4 *)(pOVar5 + 8)" * (cast_expression "(undefined4 *)(pOVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar5 + 8)" ( (binary_expression "pOVar5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar5 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar5 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pOVar5 + 0xc)" * (cast_expression "(undefined4 *)(pOVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar5 + 0xc)" ( (binary_expression "pOVar5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;" (assignment_expression "*(undefined4 *)pOVar8 = *(undefined4 *)pOVar5" (pointer_expression "*(undefined4 *)pOVar8" * (cast_expression "(undefined4 *)pOVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)pOVar5" * (cast_expression "(undefined4 *)pOVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(pOVar8 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar8 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar8 + 4)" * (cast_expression "(undefined4 *)(pOVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 4)" ( (binary_expression "pOVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar8 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar8 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar8 + 8)" * (cast_expression "(undefined4 *)(pOVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 8)" ( (binary_expression "pOVar8 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar8 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar8 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar8 + 0xc)" * (cast_expression "(undefined4 *)(pOVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0xc)" ( (binary_expression "pOVar8 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "this = pOVar8 + 0x10;" (assignment_expression "this = pOVar8 + 0x10" identifier = (binary_expression "pOVar8 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(pOVar6 != pOVar7 + 0x20)" ( (binary_expression "pOVar6 != pOVar7 + 0x20" identifier != (binary_expression "pOVar7 + 0x20" identifier + number_literal)) )) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar5 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar5 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(pOVar5 + 0x14)" * (cast_expression "(undefined4 *)(pOVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar5 + 0x14)" ( (binary_expression "pOVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;" (assignment_expression "*(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6" (pointer_expression "*(undefined4 *)(pOVar8 + 0x10)" * (cast_expression "(undefined4 *)(pOVar8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x10)" ( (binary_expression "pOVar8 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)pOVar6" * (cast_expression "(undefined4 *)pOVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(pOVar8 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar8 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar8 + 0x14)" * (cast_expression "(undefined4 *)(pOVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x14)" ( (binary_expression "pOVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) })) }))) (expression_statement "puVar2 = (undefined4 *)&stack0x00000010;" (assignment_expression "puVar2 = (undefined4 *)&stack0x00000010" identifier = (cast_expression "(undefined4 *)&stack0x00000010" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000010" & identifier))) ;) (expression_statement "pOVar17 = local_58;" (assignment_expression "pOVar17 = local_58" identifier = identifier) ;) (do_statement "do {\n    pOVar9 = pOVar17;\n    puVar4 = puVar2;\n    puVar2 = puVar4 + 4;\n    uVar12 = puVar4[1];\n    uVar11 = puVar4[2];\n    uVar10 = puVar4[3];\n    *(undefined4 *)pOVar9 = *puVar4;\n    *(undefined4 *)(pOVar9 + 4) = uVar12;\n    *(undefined4 *)(pOVar9 + 8) = uVar11;\n    *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n    pOVar17 = pOVar9 + 0x10;\n  } while (puVar2 != (undefined4 *)&stack0x00000030);" do (compound_statement "{\n    pOVar9 = pOVar17;\n    puVar4 = puVar2;\n    puVar2 = puVar4 + 4;\n    uVar12 = puVar4[1];\n    uVar11 = puVar4[2];\n    uVar10 = puVar4[3];\n    *(undefined4 *)pOVar9 = *puVar4;\n    *(undefined4 *)(pOVar9 + 4) = uVar12;\n    *(undefined4 *)(pOVar9 + 8) = uVar11;\n    *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n    pOVar17 = pOVar9 + 0x10;\n  }" { (expression_statement "pOVar9 = pOVar17;" (assignment_expression "pOVar9 = pOVar17" identifier = identifier) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "uVar12 = puVar4[1];" (assignment_expression "uVar12 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = puVar4[2];" (assignment_expression "uVar11 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar4[3];" (assignment_expression "uVar10 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)pOVar9 = *puVar4;" (assignment_expression "*(undefined4 *)pOVar9 = *puVar4" (pointer_expression "*(undefined4 *)pOVar9" * (cast_expression "(undefined4 *)pOVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(undefined4 *)(pOVar9 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar9 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar9 + 4)" * (cast_expression "(undefined4 *)(pOVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 4)" ( (binary_expression "pOVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar9 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar9 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar9 + 8)" * (cast_expression "(undefined4 *)(pOVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 8)" ( (binary_expression "pOVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0xc)" * (cast_expression "(undefined4 *)(pOVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0xc)" ( (binary_expression "pOVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pOVar17 = pOVar9 + 0x10;" (assignment_expression "pOVar17 = pOVar9 + 0x10" identifier = (binary_expression "pOVar9 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar2 != (undefined4 *)&stack0x00000030)" ( (binary_expression "puVar2 != (undefined4 *)&stack0x00000030" identifier != (cast_expression "(undefined4 *)&stack0x00000030" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000030" & identifier))) )) ;) (expression_statement "uVar10 = puVar4[5];" (assignment_expression "uVar10 = puVar4[5]" identifier = (subscript_expression "puVar4[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0x10) = *puVar2;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x10) = *puVar2" (pointer_expression "*(undefined4 *)(pOVar9 + 0x10)" * (cast_expression "(undefined4 *)(pOVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0x10)" ( (binary_expression "pOVar9 + 0x10" identifier + number_literal) )))) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0x14)" * (cast_expression "(undefined4 *)(pOVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0x14)" ( (binary_expression "pOVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "this = pOVar7;" (assignment_expression "this = pOVar7" identifier = identifier) ;) (while_statement "while (param_2 < iVar15) {\n    iVar13 = (iVar15 + -1) / 2;\n    this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);\n    iVar3 = gold::Output_reloc<9,true,64,true>::compare(this,local_58);\n    if ((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }\n    puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);\n    pOVar7 = this;\n    do {\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    } while (pOVar7 != this + 0x20);\n    uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n    puVar4[4] = *(undefined4 *)pOVar7;\n    puVar4[5] = uVar10;\n    iVar15 = iVar13;\n  }" while (parenthesized_expression "(param_2 < iVar15)" ( (binary_expression "param_2 < iVar15" identifier < identifier) )) (compound_statement "{\n    iVar13 = (iVar15 + -1) / 2;\n    this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);\n    iVar3 = gold::Output_reloc<9,true,64,true>::compare(this,local_58);\n    if ((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }\n    puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);\n    pOVar7 = this;\n    do {\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    } while (pOVar7 != this + 0x20);\n    uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n    puVar4[4] = *(undefined4 *)pOVar7;\n    puVar4[5] = uVar10;\n    iVar15 = iVar13;\n  }" { (expression_statement "iVar13 = (iVar15 + -1) / 2;" (assignment_expression "iVar13 = (iVar15 + -1) / 2" identifier = (binary_expression "(iVar15 + -1) / 2" (parenthesized_expression "(iVar15 + -1)" ( (binary_expression "iVar15 + -1" identifier + number_literal) )) / number_literal)) ;) (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(param_1 + iVar13 * 0x28)" ( (binary_expression "param_1 + iVar13 * 0x28" identifier + (binary_expression "iVar13 * 0x28" identifier * number_literal)) )))) ;) (ERROR "iVar3 = gold::" (assignment_expression "iVar3 = gold" identifier = identifier) : :) (expression_statement "Output_reloc<9,true,64,true>::compare(this,local_58);" (comma_expression "Output_reloc<9,true,64,true>::compare(this,local_58)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true>::compare(this,local_58)" true , (comma_expression "64,true>::compare(this,local_58)" number_literal , (binary_expression "true>::compare(this,local_58)" true > (ERROR "::" : :) (call_expression "compare(this,local_58)" identifier (argument_list "(this,local_58)" ( identifier , identifier ))))))) ;) (if_statement "if ((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }" if (parenthesized_expression "((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))))))))" ( (binary_expression "(-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))" (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) && (parenthesized_expression "((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))" ( (parenthesized_expression "(iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))))))" ( (binary_expression "iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))" (binary_expression "iVar3 != 0" identifier != number_literal) || (parenthesized_expression "((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))" ( (parenthesized_expression "(local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))))" ( (binary_expression "local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))" (binary_expression "local_38 <= *(uint *)(this + 0x20)" identifier <= (pointer_expression "*(uint *)(this + 0x20)" * (cast_expression "(uint *)(this + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))" ( (parenthesized_expression "(local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))" ( (binary_expression "local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))" (binary_expression "local_38 != *(uint *)(this + 0x20)" identifier != (pointer_expression "*(uint *)(this + 0x20)" * (cast_expression "(uint *)(this + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) || (parenthesized_expression "(local_34 <= *(uint *)(this + 0x24))" ( (binary_expression "local_34 <= *(uint *)(this + 0x24)" identifier <= (pointer_expression "*(uint *)(this + 0x24)" * (cast_expression "(uint *)(this + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }" { (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(param_1 + iVar15 * 0x28)" ( (binary_expression "param_1 + iVar15 * 0x28" identifier + (binary_expression "iVar15 * 0x28" identifier * number_literal)) )))) ;) (break_statement "break;" break ;) })) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar15 * 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar15 * 0x28)" ( (binary_expression "param_1 + iVar15 * 0x28" identifier + (binary_expression "iVar15 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" identifier = identifier) ;) (do_statement "do {\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    } while (pOVar7 != this + 0x20);" do (compound_statement "{\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    }" { (expression_statement "pOVar6 = pOVar7;" (assignment_expression "pOVar6 = pOVar7" identifier = identifier) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "pOVar7 = pOVar6 + 0x10;" (assignment_expression "pOVar7 = pOVar6 + 0x10" identifier = (binary_expression "pOVar6 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)(pOVar6 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar6 + 4)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 4)" * (cast_expression "(undefined4 *)(pOVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 4)" ( (binary_expression "pOVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(pOVar6 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar6 + 8)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 8)" * (cast_expression "(undefined4 *)(pOVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 8)" ( (binary_expression "pOVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 0xc)" * (cast_expression "(undefined4 *)(pOVar6 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 0xc)" ( (binary_expression "pOVar6 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = *(undefined4 *)pOVar6;" (assignment_expression "*puVar4 = *(undefined4 *)pOVar6" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*(undefined4 *)pOVar6" * (cast_expression "(undefined4 *)pOVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar4[1] = uVar12;" (assignment_expression "puVar4[1] = uVar12" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar11;" (assignment_expression "puVar4[2] = uVar11" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar10;" (assignment_expression "puVar4[3] = uVar10" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pOVar7 != this + 0x20)" ( (binary_expression "pOVar7 != this + 0x20" identifier != (binary_expression "this + 0x20" identifier + number_literal)) )) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 0x14)" * (cast_expression "(undefined4 *)(pOVar6 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 0x14)" ( (binary_expression "pOVar6 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar4[4] = *(undefined4 *)pOVar7;" (assignment_expression "puVar4[4] = *(undefined4 *)pOVar7" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pOVar7" * (cast_expression "(undefined4 *)pOVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar4[5] = uVar10;" (assignment_expression "puVar4[5] = uVar10" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar15 = iVar13;" (assignment_expression "iVar15 = iVar13" identifier = identifier) ;) })) (labeled_statement "LAB_00267704:\n  pOVar17 = local_58;" statement_identifier : (expression_statement "pOVar17 = local_58;" (assignment_expression "pOVar17 = local_58" identifier = identifier) ;)) (do_statement "do {\n    pOVar7 = this;\n    pOVar9 = pOVar17;\n    pOVar17 = pOVar9 + 0x10;\n    uVar12 = *(undefined4 *)(pOVar9 + 4);\n    uVar11 = *(undefined4 *)(pOVar9 + 8);\n    uVar10 = *(undefined4 *)(pOVar9 + 0xc);\n    *(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;\n    *(undefined4 *)(pOVar7 + 4) = uVar12;\n    *(undefined4 *)(pOVar7 + 8) = uVar11;\n    *(undefined4 *)(pOVar7 + 0xc) = uVar10;\n    this = pOVar7 + 0x10;\n  } while (pOVar17 != (Output_reloc *)(local_54 + 7));" do (compound_statement "{\n    pOVar7 = this;\n    pOVar9 = pOVar17;\n    pOVar17 = pOVar9 + 0x10;\n    uVar12 = *(undefined4 *)(pOVar9 + 4);\n    uVar11 = *(undefined4 *)(pOVar9 + 8);\n    uVar10 = *(undefined4 *)(pOVar9 + 0xc);\n    *(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;\n    *(undefined4 *)(pOVar7 + 4) = uVar12;\n    *(undefined4 *)(pOVar7 + 8) = uVar11;\n    *(undefined4 *)(pOVar7 + 0xc) = uVar10;\n    this = pOVar7 + 0x10;\n  }" { (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" identifier = identifier) ;) (expression_statement "pOVar9 = pOVar17;" (assignment_expression "pOVar9 = pOVar17" identifier = identifier) ;) (expression_statement "pOVar17 = pOVar9 + 0x10;" (assignment_expression "pOVar17 = pOVar9 + 0x10" identifier = (binary_expression "pOVar9 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)(pOVar9 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar9 + 4)" identifier = (pointer_expression "*(undefined4 *)(pOVar9 + 4)" * (cast_expression "(undefined4 *)(pOVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 4)" ( (binary_expression "pOVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(pOVar9 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar9 + 8)" identifier = (pointer_expression "*(undefined4 *)(pOVar9 + 8)" * (cast_expression "(undefined4 *)(pOVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 8)" ( (binary_expression "pOVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar9 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar9 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pOVar9 + 0xc)" * (cast_expression "(undefined4 *)(pOVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0xc)" ( (binary_expression "pOVar9 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;" (assignment_expression "*(undefined4 *)pOVar7 = *(undefined4 *)pOVar9" (pointer_expression "*(undefined4 *)pOVar7" * (cast_expression "(undefined4 *)pOVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)pOVar9" * (cast_expression "(undefined4 *)pOVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(pOVar7 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar7 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar7 + 4)" * (cast_expression "(undefined4 *)(pOVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar7 + 4)" ( (binary_expression "pOVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar7 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar7 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar7 + 8)" * (cast_expression "(undefined4 *)(pOVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar7 + 8)" ( (binary_expression "pOVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar7 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar7 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar7 + 0xc)" * (cast_expression "(undefined4 *)(pOVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar7 + 0xc)" ( (binary_expression "pOVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "this = pOVar7 + 0x10;" (assignment_expression "this = pOVar7 + 0x10" identifier = (binary_expression "pOVar7 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(pOVar17 != (Output_reloc *)(local_54 + 7))" ( (binary_expression "pOVar17 != (Output_reloc *)(local_54 + 7)" identifier != (cast_expression "(Output_reloc *)(local_54 + 7)" ( (type_descriptor "Output_reloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 7)" ( (binary_expression "local_54 + 7" identifier + number_literal) )))) )) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar9 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar9 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(pOVar9 + 0x14)" * (cast_expression "(undefined4 *)(pOVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0x14)" ( (binary_expression "pOVar9 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pOVar7 + 0x10) = *(undefined4 *)pOVar17;" (assignment_expression "*(undefined4 *)(pOVar7 + 0x10) = *(undefined4 *)pOVar17" (pointer_expression "*(undefined4 *)(pOVar7 + 0x10)" * (cast_expression "(undefined4 *)(pOVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar7 + 0x10)" ( (binary_expression "pOVar7 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)pOVar17" * (cast_expression "(undefined4 *)pOVar17" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(pOVar7 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar7 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar7 + 0x14)" * (cast_expression "(undefined4 *)(pOVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar7 + 0x14)" ( (binary_expression "pOVar7 + 0x14" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original name: __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4, true, 64,\n   true>*, std::vector<gold::Output_reloc<4, true, 64, true>, std::allocator<gold::Output_reloc<4,\n   true, 64, true> > > >, int, gold::Output_reloc<4, true, 64, true>,\n   __gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4, true, 64,\n   true>::Sort_relocs_comparison> > */\n\nvoid std::\n     __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4,_true,_64,_true>*,_std::vector<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>_>,_int,_gold::Output_reloc<4,_true,_64,_true>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,_true,_64,_true>::Sort_relocs_comparison>_>\n               (int __first,int __holeIndex,uint __len)\n\n{\n  Address AVar1;\n  int iVar2;\n  anon_union_4_4_c82d8563_for_u1_ *paVar3;\n  int iVar4;\n  anon_union_4_4_c82d8563_for_u1_ *paVar5;\n  Output_reloc<9,_true,_64,_true> *pOVar6;\n  anon_union_4_4_c82d8563_for_u1_ *paVar7;\n  Output_reloc<9,_true,_64,_true> *pOVar8;\n  anon_union_4_4_c82d8563_for_u1_ *paVar9;\n  anon_union_4_4_c82d8563_for_u1_ aVar10;\n  anon_union_4_4_c82d8563_for_u1_ aVar11;\n  undefined4 uVar12;\n  anon_union_4_4_c82d8563_for_u1_ aVar13;\n  anon_union_4_2_238bdeaa_for_u2_ aVar14;\n  Output_reloc<9,_true,_64,_true> *this;\n  Output_reloc<9,_true,_64,_true> *pOVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Output_reloc<9,_true,_64,_true> *pOVar20;\n  anon_union_4_4_c82d8563_for_u1_ local_58 [9];\n  Sized_relobj<64,_true> *local_34;\n  uint local_30;\n  \n  iVar16 = (int)(__len - 1) / 2;\n  local_30 = __len & 1;\n  iVar4 = __holeIndex;\n  if (__holeIndex < iVar16) {\n    do {\n      iVar18 = (iVar4 + 1) * 2;\n      iVar17 = iVar18 + -1;\n      this = (Output_reloc<9,_true,_64,_true> *)(__first + (iVar4 + 1) * 0x50);\n      pOVar20 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar17 * 0x28);\n      iVar2 = gold::Output_reloc<9,_true,_64,_true>::compare(this,pOVar20);\n      pOVar15 = pOVar20;\n      iVar19 = iVar17;\n      if ((iVar2 < 0) || (pOVar15 = this, iVar19 = iVar18, iVar2 != 0)) {\nLAB_002675ec:\n        this = pOVar15;\n        iVar18 = iVar19;\n      }\n      else {\n        pOVar15 = pOVar20;\n        iVar19 = iVar17;\n        if ((this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||\n           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))) goto LAB_002675ec;\n      }\n      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x28);\n      pOVar15 = this;\n      do {\n        pOVar20 = pOVar15;\n        paVar5 = paVar3;\n        pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n        aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n        aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n        aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n        *paVar5 = pOVar20->u1_;\n        paVar5[1] = aVar13;\n        paVar5[2] = aVar11;\n        paVar5[3] = aVar10;\n        paVar3 = paVar5 + 4;\n      } while (pOVar15 != this + 1);\n      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;\n      paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;\n      paVar5[5] = aVar10;\n      iVar4 = iVar18;\n    } while (iVar18 < iVar16);\n    pOVar15 = this;\n    if (local_30 == 0) goto LAB_00267870;\n  }\n  else {\n    this = (Output_reloc<9,_true,_64,_true> *)(__first + __holeIndex * 0x28);\n    iVar18 = __holeIndex;\n    if ((__len & 1) != 0) {\n      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010;\n      paVar5 = local_58;\n      do {\n        paVar9 = paVar5;\n        paVar7 = paVar3;\n        paVar3 = paVar7 + 4;\n        aVar13 = paVar7[1];\n        aVar11 = paVar7[2];\n        aVar10 = paVar7[3];\n        *paVar9 = *paVar7;\n        paVar9[1] = aVar13;\n        paVar9[2] = aVar11;\n        paVar9[3] = aVar10;\n        paVar5 = paVar9 + 4;\n      } while (paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030);\n      aVar10 = paVar7[5];\n      paVar9[4] = *paVar3;\n      paVar9[5] = aVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar15 = this;\n    if ((int)(__len - 2) / 2 == iVar18) {\n      iVar18 = iVar18 * 2 + 1;\n      pOVar15 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);\n      pOVar20 = pOVar15;\n      do {\n        pOVar8 = this;\n        pOVar6 = pOVar20;\n        pOVar20 = (Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_;\n        aVar14 = pOVar6->u2_;\n        uVar12 = *(undefined4 *)&pOVar6->address_;\n        AVar1 = pOVar6->address_;\n        pOVar8->u1_ = pOVar6->u1_;\n        pOVar8->u2_ = aVar14;\n        *(undefined4 *)&pOVar8->address_ = uVar12;\n        *(int *)((int)&pOVar8->address_ + 4) = (int)AVar1;\n        this = (Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_;\n      } while (pOVar20 != pOVar15 + 1);\n      uVar12 = *(undefined4 *)&pOVar6->field_0x14;\n      pOVar8->local_sym_index_ = *(uint *)pOVar20;\n      *(undefined4 *)&pOVar8->field_0x14 = uVar12;\n    }\n  }\n  paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010;\n  paVar5 = local_58;\n  do {\n    paVar9 = paVar5;\n    paVar7 = paVar3;\n    paVar3 = paVar7 + 4;\n    aVar13 = paVar7[1];\n    aVar11 = paVar7[2];\n    aVar10 = paVar7[3];\n    *paVar9 = *paVar7;\n    paVar9[1] = aVar13;\n    paVar9[2] = aVar11;\n    paVar9[3] = aVar10;\n    paVar5 = paVar9 + 4;\n  } while (paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030);\n  aVar10 = paVar7[5];\n  paVar9[4] = *paVar3;\n  paVar9[5] = aVar10;\n  this = pOVar15;\n  while (__holeIndex < iVar18) {\n    iVar16 = (iVar18 + -1) / 2;\n    this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar16 * 0x28);\n    iVar4 = gold::Output_reloc<9,_true,_64,_true>::compare\n                      (this,(Output_reloc<9,_true,_64,_true> *)local_58);\n    if ((-1 < iVar4) &&\n       ((iVar4 != 0 ||\n        ((local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)))))))) {\n      this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);\n      break;\n    }\n    paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar18 * 0x28);\n    pOVar15 = this;\n    do {\n      pOVar20 = pOVar15;\n      paVar5 = paVar3;\n      pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n      aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n      aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n      *paVar5 = pOVar20->u1_;\n      paVar5[1] = aVar13;\n      paVar5[2] = aVar11;\n      paVar5[3] = aVar10;\n      paVar3 = paVar5 + 4;\n    } while (pOVar15 != this + 1);\n    aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;\n    paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;\n    paVar5[5] = aVar10;\n    iVar18 = iVar16;\n  }\nLAB_00267704:\n  paVar3 = local_58;\n  do {\n    pOVar15 = this;\n    paVar5 = paVar3;\n    paVar3 = paVar5 + 4;\n    aVar13 = paVar5[1];\n    aVar11 = paVar5[2];\n    aVar10 = paVar5[3];\n    pOVar15->u1_ = *paVar5;\n    pOVar15->u2_ = (anon_union_4_2_238bdeaa_for_u2_)aVar13;\n    *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->address_ = aVar11;\n    *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar15->address_ + 4) = aVar10;\n    this = (Output_reloc<9,_true,_64,_true> *)&pOVar15->local_sym_index_;\n  } while (paVar3 != local_58 + 8);\n  aVar10 = paVar5[5];\n  pOVar15->local_sym_index_ = (uint)*paVar3;\n  *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->field_0x14 = aVar10;\n  return;\n}\n\n" comment comment comment comment (declaration "void std::\n     __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4,_true,_64,_true>*,_std::vector<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>_>,_int,_gold::Output_reloc<4,_true,_64,_true>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,_true,_64,_true>::Sort_relocs_comparison>_>\n               (int __first,int __holeIndex,uint __len)\n\n{\n  Address AVar1;" 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 "_true>::Sort_relocs_comparison>_>\n               (int __first,int __holeIndex,uint __len)\n\n{\n  Address" identifier > : : identifier > (function_declarator "_>\n               (int __first,int __holeIndex,uint __len)" identifier (ERROR ">" >) (parameter_list "(int __first,int __holeIndex,uint __len)" ( (parameter_declaration "int __first" primitive_type identifier) , (parameter_declaration "int __holeIndex" primitive_type identifier) , (parameter_declaration "uint __len" type_identifier identifier) ))) { identifier) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *paVar3;" type_identifier (pointer_declarator "*paVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *paVar5;" type_identifier (pointer_declarator "*paVar5" * identifier) ;) (expression_statement "Output_reloc<9,_true,_64,_true> *pOVar6;" (update_expression "Output_reloc<9,_true,_64,_true> *pOVar6" (binary_expression "Output_reloc<9,_true,_64,_true> *pOVar6" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (pointer_expression "*pOVar6" * identifier)) --) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *paVar7;" type_identifier (pointer_declarator "*paVar7" * identifier) ;) (expression_statement "Output_reloc<9,_true,_64,_true> *pOVar8;" (update_expression "Output_reloc<9,_true,_64,_true> *pOVar8" (binary_expression "Output_reloc<9,_true,_64,_true> *pOVar8" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (pointer_expression "*pOVar8" * identifier)) --) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *paVar9;" type_identifier (pointer_declarator "*paVar9" * identifier) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ aVar10;" type_identifier identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ aVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ aVar13;" type_identifier identifier ;) (declaration "anon_union_4_2_238bdeaa_for_u2_ aVar14;" type_identifier identifier ;) (expression_statement "Output_reloc<9,_true,_64,_true> *this;" (update_expression "Output_reloc<9,_true,_64,_true> *this" (binary_expression "Output_reloc<9,_true,_64,_true> *this" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (pointer_expression "*this" * identifier)) --) ;) (expression_statement "Output_reloc<9,_true,_64,_true> *pOVar15;" (update_expression "Output_reloc<9,_true,_64,_true> *pOVar15" (binary_expression "Output_reloc<9,_true,_64,_true> *pOVar15" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (pointer_expression "*pOVar15" * identifier)) --) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (expression_statement "Output_reloc<9,_true,_64,_true> *pOVar20;" (update_expression "Output_reloc<9,_true,_64,_true> *pOVar20" (binary_expression "Output_reloc<9,_true,_64,_true> *pOVar20" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (pointer_expression "*pOVar20" * identifier)) --) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ local_58 [9];" type_identifier (array_declarator "local_58 [9]" identifier [ number_literal ]) ;) (expression_statement "Sized_relobj<64,_true> *local_34;" (update_expression "Sized_relobj<64,_true> *local_34" (binary_expression "Sized_relobj<64,_true> *local_34" (binary_expression "Sized_relobj<64" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*local_34" * identifier)) --) ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "iVar16 = (int)(__len - 1) / 2;" (assignment_expression "iVar16 = (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 "local_30 = __len & 1;" (assignment_expression "local_30 = __len & 1" identifier = (binary_expression "__len & 1" identifier & number_literal)) ;) (expression_statement "iVar4 = __holeIndex;" (assignment_expression "iVar4 = __holeIndex" identifier = identifier) ;) (if_statement "if (__holeIndex < iVar16) {\n    do {\n      iVar18 = (iVar4 + 1) * 2;\n      iVar17 = iVar18 + -1;\n      this = (Output_reloc<9,_true,_64,_true> *)(__first + (iVar4 + 1) * 0x50);\n      pOVar20 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar17 * 0x28);\n      iVar2 = gold::Output_reloc<9,_true,_64,_true>::compare(this,pOVar20);\n      pOVar15 = pOVar20;\n      iVar19 = iVar17;\n      if ((iVar2 < 0) || (pOVar15 = this, iVar19 = iVar18, iVar2 != 0)) {\nLAB_002675ec:\n        this = pOVar15;\n        iVar18 = iVar19;\n      }\n      else {\n        pOVar15 = pOVar20;\n        iVar19 = iVar17;\n        if ((this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||\n           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))) goto LAB_002675ec;\n      }\n      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x28);\n      pOVar15 = this;\n      do {\n        pOVar20 = pOVar15;\n        paVar5 = paVar3;\n        pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n        aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n        aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n        aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n        *paVar5 = pOVar20->u1_;\n        paVar5[1] = aVar13;\n        paVar5[2] = aVar11;\n        paVar5[3] = aVar10;\n        paVar3 = paVar5 + 4;\n      } while (pOVar15 != this + 1);\n      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;\n      paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;\n      paVar5[5] = aVar10;\n      iVar4 = iVar18;\n    } while (iVar18 < iVar16);\n    pOVar15 = this;\n    if (local_30 == 0) goto LAB_00267870;\n  }\n  else {\n    this = (Output_reloc<9,_true,_64,_true> *)(__first + __holeIndex * 0x28);\n    iVar18 = __holeIndex;\n    if ((__len & 1) != 0) {\n      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010;\n      paVar5 = local_58;\n      do {\n        paVar9 = paVar5;\n        paVar7 = paVar3;\n        paVar3 = paVar7 + 4;\n        aVar13 = paVar7[1];\n        aVar11 = paVar7[2];\n        aVar10 = paVar7[3];\n        *paVar9 = *paVar7;\n        paVar9[1] = aVar13;\n        paVar9[2] = aVar11;\n        paVar9[3] = aVar10;\n        paVar5 = paVar9 + 4;\n      } while (paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030);\n      aVar10 = paVar7[5];\n      paVar9[4] = *paVar3;\n      paVar9[5] = aVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar15 = this;\n    if ((int)(__len - 2) / 2 == iVar18) {\n      iVar18 = iVar18 * 2 + 1;\n      pOVar15 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);\n      pOVar20 = pOVar15;\n      do {\n        pOVar8 = this;\n        pOVar6 = pOVar20;\n        pOVar20 = (Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_;\n        aVar14 = pOVar6->u2_;\n        uVar12 = *(undefined4 *)&pOVar6->address_;\n        AVar1 = pOVar6->address_;\n        pOVar8->u1_ = pOVar6->u1_;\n        pOVar8->u2_ = aVar14;\n        *(undefined4 *)&pOVar8->address_ = uVar12;\n        *(int *)((int)&pOVar8->address_ + 4) = (int)AVar1;\n        this = (Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_;\n      } while (pOVar20 != pOVar15 + 1);\n      uVar12 = *(undefined4 *)&pOVar6->field_0x14;\n      pOVar8->local_sym_index_ = *(uint *)pOVar20;\n      *(undefined4 *)&pOVar8->field_0x14 = uVar12;\n    }\n  }" if (parenthesized_expression "(__holeIndex < iVar16)" ( (binary_expression "__holeIndex < iVar16" identifier < identifier) )) (compound_statement "{\n    do {\n      iVar18 = (iVar4 + 1) * 2;\n      iVar17 = iVar18 + -1;\n      this = (Output_reloc<9,_true,_64,_true> *)(__first + (iVar4 + 1) * 0x50);\n      pOVar20 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar17 * 0x28);\n      iVar2 = gold::Output_reloc<9,_true,_64,_true>::compare(this,pOVar20);\n      pOVar15 = pOVar20;\n      iVar19 = iVar17;\n      if ((iVar2 < 0) || (pOVar15 = this, iVar19 = iVar18, iVar2 != 0)) {\nLAB_002675ec:\n        this = pOVar15;\n        iVar18 = iVar19;\n      }\n      else {\n        pOVar15 = pOVar20;\n        iVar19 = iVar17;\n        if ((this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||\n           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))) goto LAB_002675ec;\n      }\n      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x28);\n      pOVar15 = this;\n      do {\n        pOVar20 = pOVar15;\n        paVar5 = paVar3;\n        pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n        aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n        aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n        aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n        *paVar5 = pOVar20->u1_;\n        paVar5[1] = aVar13;\n        paVar5[2] = aVar11;\n        paVar5[3] = aVar10;\n        paVar3 = paVar5 + 4;\n      } while (pOVar15 != this + 1);\n      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;\n      paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;\n      paVar5[5] = aVar10;\n      iVar4 = iVar18;\n    } while (iVar18 < iVar16);\n    pOVar15 = this;\n    if (local_30 == 0) goto LAB_00267870;\n  }" { (do_statement "do {\n      iVar18 = (iVar4 + 1) * 2;\n      iVar17 = iVar18 + -1;\n      this = (Output_reloc<9,_true,_64,_true> *)(__first + (iVar4 + 1) * 0x50);\n      pOVar20 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar17 * 0x28);\n      iVar2 = gold::Output_reloc<9,_true,_64,_true>::compare(this,pOVar20);\n      pOVar15 = pOVar20;\n      iVar19 = iVar17;\n      if ((iVar2 < 0) || (pOVar15 = this, iVar19 = iVar18, iVar2 != 0)) {\nLAB_002675ec:\n        this = pOVar15;\n        iVar18 = iVar19;\n      }\n      else {\n        pOVar15 = pOVar20;\n        iVar19 = iVar17;\n        if ((this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||\n           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))) goto LAB_002675ec;\n      }\n      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x28);\n      pOVar15 = this;\n      do {\n        pOVar20 = pOVar15;\n        paVar5 = paVar3;\n        pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n        aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n        aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n        aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n        *paVar5 = pOVar20->u1_;\n        paVar5[1] = aVar13;\n        paVar5[2] = aVar11;\n        paVar5[3] = aVar10;\n        paVar3 = paVar5 + 4;\n      } while (pOVar15 != this + 1);\n      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;\n      paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;\n      paVar5[5] = aVar10;\n      iVar4 = iVar18;\n    } while (iVar18 < iVar16);" do (compound_statement "{\n      iVar18 = (iVar4 + 1) * 2;\n      iVar17 = iVar18 + -1;\n      this = (Output_reloc<9,_true,_64,_true> *)(__first + (iVar4 + 1) * 0x50);\n      pOVar20 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar17 * 0x28);\n      iVar2 = gold::Output_reloc<9,_true,_64,_true>::compare(this,pOVar20);\n      pOVar15 = pOVar20;\n      iVar19 = iVar17;\n      if ((iVar2 < 0) || (pOVar15 = this, iVar19 = iVar18, iVar2 != 0)) {\nLAB_002675ec:\n        this = pOVar15;\n        iVar18 = iVar19;\n      }\n      else {\n        pOVar15 = pOVar20;\n        iVar19 = iVar17;\n        if ((this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||\n           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))) goto LAB_002675ec;\n      }\n      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x28);\n      pOVar15 = this;\n      do {\n        pOVar20 = pOVar15;\n        paVar5 = paVar3;\n        pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n        aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n        aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n        aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n        *paVar5 = pOVar20->u1_;\n        paVar5[1] = aVar13;\n        paVar5[2] = aVar11;\n        paVar5[3] = aVar10;\n        paVar3 = paVar5 + 4;\n      } while (pOVar15 != this + 1);\n      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;\n      paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;\n      paVar5[5] = aVar10;\n      iVar4 = iVar18;\n    }" { (expression_statement "iVar18 = (iVar4 + 1) * 2;" (assignment_expression "iVar18 = (iVar4 + 1) * 2" identifier = (binary_expression "(iVar4 + 1) * 2" (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "iVar17 = iVar18 + -1;" (assignment_expression "iVar17 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) (expression_statement "this = (Output_reloc<9,_true,_64,_true> *)(__first + (iVar4 + 1) * 0x50);" (assignment_expression "this = (Output_reloc<9,_true,_64,_true> *)(__first + (iVar4 + 1) * 0x50)" identifier = (call_expression "(Output_reloc<9,_true,_64,_true> *)(__first + (iVar4 + 1) * 0x50)" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) (argument_list "(__first + (iVar4 + 1) * 0x50)" ( (binary_expression "__first + (iVar4 + 1) * 0x50" identifier + (binary_expression "(iVar4 + 1) * 0x50" (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "pOVar20 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar17 * 0x28);" (assignment_expression "pOVar20 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar17 * 0x28)" identifier = (call_expression "(Output_reloc<9,_true,_64,_true> *)(__first + iVar17 * 0x28)" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) (argument_list "(__first + iVar17 * 0x28)" ( (binary_expression "__first + iVar17 * 0x28" identifier + (binary_expression "iVar17 * 0x28" identifier * number_literal)) )))) ;) (ERROR "iVar2 = gold::" (assignment_expression "iVar2 = gold" identifier = identifier) : :) (expression_statement "Output_reloc<9,_true,_64,_true>::compare(this,pOVar20);" (comma_expression "Output_reloc<9,_true,_64,_true>::compare(this,pOVar20)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true>::compare(this,pOVar20)" identifier , (comma_expression "_64,_true>::compare(this,pOVar20)" identifier , (binary_expression "_true>::compare(this,pOVar20)" identifier > (ERROR "::" : :) (call_expression "compare(this,pOVar20)" identifier (argument_list "(this,pOVar20)" ( identifier , identifier ))))))) ;) (expression_statement "pOVar15 = pOVar20;" (assignment_expression "pOVar15 = pOVar20" identifier = identifier) ;) (expression_statement "iVar19 = iVar17;" (assignment_expression "iVar19 = iVar17" identifier = identifier) ;) (if_statement "if ((iVar2 < 0) || (pOVar15 = this, iVar19 = iVar18, iVar2 != 0)) {\nLAB_002675ec:\n        this = pOVar15;\n        iVar18 = iVar19;\n      }\n      else {\n        pOVar15 = pOVar20;\n        iVar19 = iVar17;\n        if ((this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||\n           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))) goto LAB_002675ec;\n      }" if (parenthesized_expression "((iVar2 < 0) || (pOVar15 = this, iVar19 = iVar18, iVar2 != 0))" ( (binary_expression "(iVar2 < 0) || (pOVar15 = this, iVar19 = iVar18, iVar2 != 0)" (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) || (parenthesized_expression "(pOVar15 = this, iVar19 = iVar18, iVar2 != 0)" ( (comma_expression "pOVar15 = this, iVar19 = iVar18, iVar2 != 0" (assignment_expression "pOVar15 = this" identifier = identifier) , (comma_expression "iVar19 = iVar18, iVar2 != 0" (assignment_expression "iVar19 = iVar18" identifier = identifier) , (binary_expression "iVar2 != 0" identifier != number_literal))) ))) )) (compound_statement "{\nLAB_002675ec:\n        this = pOVar15;\n        iVar18 = iVar19;\n      }" { (labeled_statement "LAB_002675ec:\n        this = pOVar15;" statement_identifier : (expression_statement "this = pOVar15;" (assignment_expression "this = pOVar15" identifier = identifier) ;)) (expression_statement "iVar18 = iVar19;" (assignment_expression "iVar18 = iVar19" identifier = identifier) ;) }) (else_clause "else {\n        pOVar15 = pOVar20;\n        iVar19 = iVar17;\n        if ((this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||\n           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))) goto LAB_002675ec;\n      }" else (compound_statement "{\n        pOVar15 = pOVar20;\n        iVar19 = iVar17;\n        if ((this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||\n           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))) goto LAB_002675ec;\n      }" { (expression_statement "pOVar15 = pOVar20;" (assignment_expression "pOVar15 = pOVar20" identifier = identifier) ;) (expression_statement "iVar19 = iVar17;" (assignment_expression "iVar19 = iVar17" identifier = identifier) ;) (if_statement "if ((this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||\n           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))) goto LAB_002675ec;" if (parenthesized_expression "((this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||\n           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj))))" ( (binary_expression "(this[1].u1_.relobj < pOVar20[1].u1_.relobj) ||\n           ((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))" (parenthesized_expression "(this[1].u1_.relobj < pOVar20[1].u1_.relobj)" ( (binary_expression "this[1].u1_.relobj < pOVar20[1].u1_.relobj" (field_expression "this[1].u1_.relobj" (field_expression "this[1].u1_" (subscript_expression "this[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) < (field_expression "pOVar20[1].u1_.relobj" (field_expression "pOVar20[1].u1_" (subscript_expression "pOVar20[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)) )) || (parenthesized_expression "((pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)))" ( (parenthesized_expression "(pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj))" ( (binary_expression "pOVar20[1].u1_.relobj == this[1].u1_.relobj &&\n            (this[1].u2_.relobj < pOVar20[1].u2_.relobj)" (binary_expression "pOVar20[1].u1_.relobj == this[1].u1_.relobj" (field_expression "pOVar20[1].u1_.relobj" (field_expression "pOVar20[1].u1_" (subscript_expression "pOVar20[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) == (field_expression "this[1].u1_.relobj" (field_expression "this[1].u1_" (subscript_expression "this[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)) && (parenthesized_expression "(this[1].u2_.relobj < pOVar20[1].u2_.relobj)" ( (binary_expression "this[1].u2_.relobj < pOVar20[1].u2_.relobj" (field_expression "this[1].u2_.relobj" (field_expression "this[1].u2_" (subscript_expression "this[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) < (field_expression "pOVar20[1].u2_.relobj" (field_expression "pOVar20[1].u2_" (subscript_expression "pOVar20[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)) ))) )) ))) )) (goto_statement "goto LAB_002675ec;" goto statement_identifier ;)) }))) (expression_statement "paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x28);" (assignment_expression "paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x28)" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar4 * 0x28)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + iVar4 * 0x28)" ( (binary_expression "__first + iVar4 * 0x28" identifier + (binary_expression "iVar4 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "pOVar15 = this;" (assignment_expression "pOVar15 = this" identifier = identifier) ;) (do_statement "do {\n        pOVar20 = pOVar15;\n        paVar5 = paVar3;\n        pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n        aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n        aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n        aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n        *paVar5 = pOVar20->u1_;\n        paVar5[1] = aVar13;\n        paVar5[2] = aVar11;\n        paVar5[3] = aVar10;\n        paVar3 = paVar5 + 4;\n      } while (pOVar15 != this + 1);" do (compound_statement "{\n        pOVar20 = pOVar15;\n        paVar5 = paVar3;\n        pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n        aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n        aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n        aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n        *paVar5 = pOVar20->u1_;\n        paVar5[1] = aVar13;\n        paVar5[2] = aVar11;\n        paVar5[3] = aVar10;\n        paVar3 = paVar5 + 4;\n      }" { (expression_statement "pOVar20 = pOVar15;" (assignment_expression "pOVar20 = pOVar15" identifier = identifier) ;) (expression_statement "paVar5 = paVar3;" (assignment_expression "paVar5 = paVar3" identifier = identifier) ;) (expression_statement "pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;" (assignment_expression "pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_" identifier = (binary_expression "(Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) & (field_expression "pOVar20->local_sym_index_" identifier -> field_identifier))) ;) (expression_statement "aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;" (assignment_expression "aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_" identifier = (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar20->u2_" & (field_expression "pOVar20->u2_" identifier -> field_identifier))))) ;) (expression_statement "aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;" (assignment_expression "aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_" identifier = (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar20->address_" & (field_expression "pOVar20->address_" identifier -> field_identifier))))) ;) (expression_statement "aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);" (assignment_expression "aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4)" identifier = (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4)" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar20->address_ + 4)" ( (binary_expression "(int)&pOVar20->address_ + 4" (cast_expression "(int)&pOVar20->address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar20->address_" & (field_expression "pOVar20->address_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*paVar5 = pOVar20->u1_;" (assignment_expression "*paVar5 = pOVar20->u1_" (pointer_expression "*paVar5" * identifier) = (field_expression "pOVar20->u1_" identifier -> field_identifier)) ;) (expression_statement "paVar5[1] = aVar13;" (assignment_expression "paVar5[1] = aVar13" (subscript_expression "paVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar5[2] = aVar11;" (assignment_expression "paVar5[2] = aVar11" (subscript_expression "paVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar5[3] = aVar10;" (assignment_expression "paVar5[3] = aVar10" (subscript_expression "paVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar3 = paVar5 + 4;" (assignment_expression "paVar3 = paVar5 + 4" identifier = (binary_expression "paVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pOVar15 != this + 1)" ( (binary_expression "pOVar15 != this + 1" identifier != (binary_expression "this + 1" identifier + number_literal)) )) ;) (expression_statement "aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;" (assignment_expression "aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14" identifier = (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar20->field_0x14" & (field_expression "pOVar20->field_0x14" identifier -> field_identifier))))) ;) (expression_statement "paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;" (assignment_expression "paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15" (subscript_expression "paVar5[4]" identifier [ number_literal ]) = (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)pOVar15" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)pOVar15" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "paVar5[5] = aVar10;" (assignment_expression "paVar5[5] = aVar10" (subscript_expression "paVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = iVar18;" (assignment_expression "iVar4 = iVar18" identifier = identifier) ;) }) while (parenthesized_expression "(iVar18 < iVar16)" ( (binary_expression "iVar18 < iVar16" identifier < identifier) )) ;) (expression_statement "pOVar15 = this;" (assignment_expression "pOVar15 = this" identifier = identifier) ;) (if_statement "if (local_30 == 0) goto LAB_00267870;" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00267870;" goto statement_identifier ;)) }) (else_clause "else {\n    this = (Output_reloc<9,_true,_64,_true> *)(__first + __holeIndex * 0x28);\n    iVar18 = __holeIndex;\n    if ((__len & 1) != 0) {\n      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010;\n      paVar5 = local_58;\n      do {\n        paVar9 = paVar5;\n        paVar7 = paVar3;\n        paVar3 = paVar7 + 4;\n        aVar13 = paVar7[1];\n        aVar11 = paVar7[2];\n        aVar10 = paVar7[3];\n        *paVar9 = *paVar7;\n        paVar9[1] = aVar13;\n        paVar9[2] = aVar11;\n        paVar9[3] = aVar10;\n        paVar5 = paVar9 + 4;\n      } while (paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030);\n      aVar10 = paVar7[5];\n      paVar9[4] = *paVar3;\n      paVar9[5] = aVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar15 = this;\n    if ((int)(__len - 2) / 2 == iVar18) {\n      iVar18 = iVar18 * 2 + 1;\n      pOVar15 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);\n      pOVar20 = pOVar15;\n      do {\n        pOVar8 = this;\n        pOVar6 = pOVar20;\n        pOVar20 = (Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_;\n        aVar14 = pOVar6->u2_;\n        uVar12 = *(undefined4 *)&pOVar6->address_;\n        AVar1 = pOVar6->address_;\n        pOVar8->u1_ = pOVar6->u1_;\n        pOVar8->u2_ = aVar14;\n        *(undefined4 *)&pOVar8->address_ = uVar12;\n        *(int *)((int)&pOVar8->address_ + 4) = (int)AVar1;\n        this = (Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_;\n      } while (pOVar20 != pOVar15 + 1);\n      uVar12 = *(undefined4 *)&pOVar6->field_0x14;\n      pOVar8->local_sym_index_ = *(uint *)pOVar20;\n      *(undefined4 *)&pOVar8->field_0x14 = uVar12;\n    }\n  }" else (compound_statement "{\n    this = (Output_reloc<9,_true,_64,_true> *)(__first + __holeIndex * 0x28);\n    iVar18 = __holeIndex;\n    if ((__len & 1) != 0) {\n      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010;\n      paVar5 = local_58;\n      do {\n        paVar9 = paVar5;\n        paVar7 = paVar3;\n        paVar3 = paVar7 + 4;\n        aVar13 = paVar7[1];\n        aVar11 = paVar7[2];\n        aVar10 = paVar7[3];\n        *paVar9 = *paVar7;\n        paVar9[1] = aVar13;\n        paVar9[2] = aVar11;\n        paVar9[3] = aVar10;\n        paVar5 = paVar9 + 4;\n      } while (paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030);\n      aVar10 = paVar7[5];\n      paVar9[4] = *paVar3;\n      paVar9[5] = aVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar15 = this;\n    if ((int)(__len - 2) / 2 == iVar18) {\n      iVar18 = iVar18 * 2 + 1;\n      pOVar15 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);\n      pOVar20 = pOVar15;\n      do {\n        pOVar8 = this;\n        pOVar6 = pOVar20;\n        pOVar20 = (Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_;\n        aVar14 = pOVar6->u2_;\n        uVar12 = *(undefined4 *)&pOVar6->address_;\n        AVar1 = pOVar6->address_;\n        pOVar8->u1_ = pOVar6->u1_;\n        pOVar8->u2_ = aVar14;\n        *(undefined4 *)&pOVar8->address_ = uVar12;\n        *(int *)((int)&pOVar8->address_ + 4) = (int)AVar1;\n        this = (Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_;\n      } while (pOVar20 != pOVar15 + 1);\n      uVar12 = *(undefined4 *)&pOVar6->field_0x14;\n      pOVar8->local_sym_index_ = *(uint *)pOVar20;\n      *(undefined4 *)&pOVar8->field_0x14 = uVar12;\n    }\n  }" { (expression_statement "this = (Output_reloc<9,_true,_64,_true> *)(__first + __holeIndex * 0x28);" (assignment_expression "this = (Output_reloc<9,_true,_64,_true> *)(__first + __holeIndex * 0x28)" identifier = (call_expression "(Output_reloc<9,_true,_64,_true> *)(__first + __holeIndex * 0x28)" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) (argument_list "(__first + __holeIndex * 0x28)" ( (binary_expression "__first + __holeIndex * 0x28" identifier + (binary_expression "__holeIndex * 0x28" identifier * number_literal)) )))) ;) (expression_statement "iVar18 = __holeIndex;" (assignment_expression "iVar18 = __holeIndex" identifier = identifier) ;) (if_statement "if ((__len & 1) != 0) {\n      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010;\n      paVar5 = local_58;\n      do {\n        paVar9 = paVar5;\n        paVar7 = paVar3;\n        paVar3 = paVar7 + 4;\n        aVar13 = paVar7[1];\n        aVar11 = paVar7[2];\n        aVar10 = paVar7[3];\n        *paVar9 = *paVar7;\n        paVar9[1] = aVar13;\n        paVar9[2] = aVar11;\n        paVar9[3] = aVar10;\n        paVar5 = paVar9 + 4;\n      } while (paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030);\n      aVar10 = paVar7[5];\n      paVar9[4] = *paVar3;\n      paVar9[5] = aVar10;\n      goto LAB_00267704;\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      paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010;\n      paVar5 = local_58;\n      do {\n        paVar9 = paVar5;\n        paVar7 = paVar3;\n        paVar3 = paVar7 + 4;\n        aVar13 = paVar7[1];\n        aVar11 = paVar7[2];\n        aVar10 = paVar7[3];\n        *paVar9 = *paVar7;\n        paVar9[1] = aVar13;\n        paVar9[2] = aVar11;\n        paVar9[3] = aVar10;\n        paVar5 = paVar9 + 4;\n      } while (paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030);\n      aVar10 = paVar7[5];\n      paVar9[4] = *paVar3;\n      paVar9[5] = aVar10;\n      goto LAB_00267704;\n    }" { (expression_statement "paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010;" (assignment_expression "paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000010" & identifier))) ;) (expression_statement "paVar5 = local_58;" (assignment_expression "paVar5 = local_58" identifier = identifier) ;) (do_statement "do {\n        paVar9 = paVar5;\n        paVar7 = paVar3;\n        paVar3 = paVar7 + 4;\n        aVar13 = paVar7[1];\n        aVar11 = paVar7[2];\n        aVar10 = paVar7[3];\n        *paVar9 = *paVar7;\n        paVar9[1] = aVar13;\n        paVar9[2] = aVar11;\n        paVar9[3] = aVar10;\n        paVar5 = paVar9 + 4;\n      } while (paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030);" do (compound_statement "{\n        paVar9 = paVar5;\n        paVar7 = paVar3;\n        paVar3 = paVar7 + 4;\n        aVar13 = paVar7[1];\n        aVar11 = paVar7[2];\n        aVar10 = paVar7[3];\n        *paVar9 = *paVar7;\n        paVar9[1] = aVar13;\n        paVar9[2] = aVar11;\n        paVar9[3] = aVar10;\n        paVar5 = paVar9 + 4;\n      }" { (expression_statement "paVar9 = paVar5;" (assignment_expression "paVar9 = paVar5" identifier = identifier) ;) (expression_statement "paVar7 = paVar3;" (assignment_expression "paVar7 = paVar3" identifier = identifier) ;) (expression_statement "paVar3 = paVar7 + 4;" (assignment_expression "paVar3 = paVar7 + 4" identifier = (binary_expression "paVar7 + 4" identifier + number_literal)) ;) (expression_statement "aVar13 = paVar7[1];" (assignment_expression "aVar13 = paVar7[1]" identifier = (subscript_expression "paVar7[1]" identifier [ number_literal ])) ;) (expression_statement "aVar11 = paVar7[2];" (assignment_expression "aVar11 = paVar7[2]" identifier = (subscript_expression "paVar7[2]" identifier [ number_literal ])) ;) (expression_statement "aVar10 = paVar7[3];" (assignment_expression "aVar10 = paVar7[3]" identifier = (subscript_expression "paVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*paVar9 = *paVar7;" (assignment_expression "*paVar9 = *paVar7" (pointer_expression "*paVar9" * identifier) = (pointer_expression "*paVar7" * identifier)) ;) (expression_statement "paVar9[1] = aVar13;" (assignment_expression "paVar9[1] = aVar13" (subscript_expression "paVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar9[2] = aVar11;" (assignment_expression "paVar9[2] = aVar11" (subscript_expression "paVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar9[3] = aVar10;" (assignment_expression "paVar9[3] = aVar10" (subscript_expression "paVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar5 = paVar9 + 4;" (assignment_expression "paVar5 = paVar9 + 4" identifier = (binary_expression "paVar9 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030)" ( (binary_expression "paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030" identifier != (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000030" & identifier))) )) ;) (expression_statement "aVar10 = paVar7[5];" (assignment_expression "aVar10 = paVar7[5]" identifier = (subscript_expression "paVar7[5]" identifier [ number_literal ])) ;) (expression_statement "paVar9[4] = *paVar3;" (assignment_expression "paVar9[4] = *paVar3" (subscript_expression "paVar9[4]" identifier [ number_literal ]) = (pointer_expression "*paVar3" * identifier)) ;) (expression_statement "paVar9[5] = aVar10;" (assignment_expression "paVar9[5] = aVar10" (subscript_expression "paVar9[5]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00267704;" goto statement_identifier ;) })) (labeled_statement "LAB_00267870:\n    pOVar15 = this;" statement_identifier : (expression_statement "pOVar15 = this;" (assignment_expression "pOVar15 = this" identifier = identifier) ;)) (if_statement "if ((int)(__len - 2) / 2 == iVar18) {\n      iVar18 = iVar18 * 2 + 1;\n      pOVar15 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);\n      pOVar20 = pOVar15;\n      do {\n        pOVar8 = this;\n        pOVar6 = pOVar20;\n        pOVar20 = (Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_;\n        aVar14 = pOVar6->u2_;\n        uVar12 = *(undefined4 *)&pOVar6->address_;\n        AVar1 = pOVar6->address_;\n        pOVar8->u1_ = pOVar6->u1_;\n        pOVar8->u2_ = aVar14;\n        *(undefined4 *)&pOVar8->address_ = uVar12;\n        *(int *)((int)&pOVar8->address_ + 4) = (int)AVar1;\n        this = (Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_;\n      } while (pOVar20 != pOVar15 + 1);\n      uVar12 = *(undefined4 *)&pOVar6->field_0x14;\n      pOVar8->local_sym_index_ = *(uint *)pOVar20;\n      *(undefined4 *)&pOVar8->field_0x14 = uVar12;\n    }" if (parenthesized_expression "((int)(__len - 2) / 2 == iVar18)" ( (binary_expression "(int)(__len - 2) / 2 == iVar18" (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      iVar18 = iVar18 * 2 + 1;\n      pOVar15 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);\n      pOVar20 = pOVar15;\n      do {\n        pOVar8 = this;\n        pOVar6 = pOVar20;\n        pOVar20 = (Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_;\n        aVar14 = pOVar6->u2_;\n        uVar12 = *(undefined4 *)&pOVar6->address_;\n        AVar1 = pOVar6->address_;\n        pOVar8->u1_ = pOVar6->u1_;\n        pOVar8->u2_ = aVar14;\n        *(undefined4 *)&pOVar8->address_ = uVar12;\n        *(int *)((int)&pOVar8->address_ + 4) = (int)AVar1;\n        this = (Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_;\n      } while (pOVar20 != pOVar15 + 1);\n      uVar12 = *(undefined4 *)&pOVar6->field_0x14;\n      pOVar8->local_sym_index_ = *(uint *)pOVar20;\n      *(undefined4 *)&pOVar8->field_0x14 = uVar12;\n    }" { (expression_statement "iVar18 = iVar18 * 2 + 1;" (assignment_expression "iVar18 = iVar18 * 2 + 1" identifier = (binary_expression "iVar18 * 2 + 1" (binary_expression "iVar18 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "pOVar15 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);" (assignment_expression "pOVar15 = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28)" identifier = (call_expression "(Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28)" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) (argument_list "(__first + iVar18 * 0x28)" ( (binary_expression "__first + iVar18 * 0x28" identifier + (binary_expression "iVar18 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "pOVar20 = pOVar15;" (assignment_expression "pOVar20 = pOVar15" identifier = identifier) ;) (do_statement "do {\n        pOVar8 = this;\n        pOVar6 = pOVar20;\n        pOVar20 = (Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_;\n        aVar14 = pOVar6->u2_;\n        uVar12 = *(undefined4 *)&pOVar6->address_;\n        AVar1 = pOVar6->address_;\n        pOVar8->u1_ = pOVar6->u1_;\n        pOVar8->u2_ = aVar14;\n        *(undefined4 *)&pOVar8->address_ = uVar12;\n        *(int *)((int)&pOVar8->address_ + 4) = (int)AVar1;\n        this = (Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_;\n      } while (pOVar20 != pOVar15 + 1);" do (compound_statement "{\n        pOVar8 = this;\n        pOVar6 = pOVar20;\n        pOVar20 = (Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_;\n        aVar14 = pOVar6->u2_;\n        uVar12 = *(undefined4 *)&pOVar6->address_;\n        AVar1 = pOVar6->address_;\n        pOVar8->u1_ = pOVar6->u1_;\n        pOVar8->u2_ = aVar14;\n        *(undefined4 *)&pOVar8->address_ = uVar12;\n        *(int *)((int)&pOVar8->address_ + 4) = (int)AVar1;\n        this = (Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_;\n      }" { (expression_statement "pOVar8 = this;" (assignment_expression "pOVar8 = this" identifier = identifier) ;) (expression_statement "pOVar6 = pOVar20;" (assignment_expression "pOVar6 = pOVar20" identifier = identifier) ;) (expression_statement "pOVar20 = (Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_;" (assignment_expression "pOVar20 = (Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_" identifier = (binary_expression "(Output_reloc<9,_true,_64,_true> *)&pOVar6->local_sym_index_" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) & (field_expression "pOVar6->local_sym_index_" identifier -> field_identifier))) ;) (expression_statement "aVar14 = pOVar6->u2_;" (assignment_expression "aVar14 = pOVar6->u2_" identifier = (field_expression "pOVar6->u2_" identifier -> field_identifier)) ;) (expression_statement "uVar12 = *(undefined4 *)&pOVar6->address_;" (assignment_expression "uVar12 = *(undefined4 *)&pOVar6->address_" identifier = (pointer_expression "*(undefined4 *)&pOVar6->address_" * (cast_expression "(undefined4 *)&pOVar6->address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar6->address_" & (field_expression "pOVar6->address_" identifier -> field_identifier))))) ;) (expression_statement "AVar1 = pOVar6->address_;" (assignment_expression "AVar1 = pOVar6->address_" identifier = (field_expression "pOVar6->address_" identifier -> field_identifier)) ;) (expression_statement "pOVar8->u1_ = pOVar6->u1_;" (assignment_expression "pOVar8->u1_ = pOVar6->u1_" (field_expression "pOVar8->u1_" identifier -> field_identifier) = (field_expression "pOVar6->u1_" identifier -> field_identifier)) ;) (expression_statement "pOVar8->u2_ = aVar14;" (assignment_expression "pOVar8->u2_ = aVar14" (field_expression "pOVar8->u2_" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&pOVar8->address_ = uVar12;" (assignment_expression "*(undefined4 *)&pOVar8->address_ = uVar12" (pointer_expression "*(undefined4 *)&pOVar8->address_" * (cast_expression "(undefined4 *)&pOVar8->address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar8->address_" & (field_expression "pOVar8->address_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&pOVar8->address_ + 4) = (int)AVar1;" (assignment_expression "*(int *)((int)&pOVar8->address_ + 4) = (int)AVar1" (pointer_expression "*(int *)((int)&pOVar8->address_ + 4)" * (cast_expression "(int *)((int)&pOVar8->address_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar8->address_ + 4)" ( (binary_expression "(int)&pOVar8->address_ + 4" (cast_expression "(int)&pOVar8->address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar8->address_" & (field_expression "pOVar8->address_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)AVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "this = (Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_;" (assignment_expression "this = (Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_" identifier = (binary_expression "(Output_reloc<9,_true,_64,_true> *)&pOVar8->local_sym_index_" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) & (field_expression "pOVar8->local_sym_index_" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(pOVar20 != pOVar15 + 1)" ( (binary_expression "pOVar20 != pOVar15 + 1" identifier != (binary_expression "pOVar15 + 1" identifier + number_literal)) )) ;) (expression_statement "uVar12 = *(undefined4 *)&pOVar6->field_0x14;" (assignment_expression "uVar12 = *(undefined4 *)&pOVar6->field_0x14" identifier = (pointer_expression "*(undefined4 *)&pOVar6->field_0x14" * (cast_expression "(undefined4 *)&pOVar6->field_0x14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar6->field_0x14" & (field_expression "pOVar6->field_0x14" identifier -> field_identifier))))) ;) (expression_statement "pOVar8->local_sym_index_ = *(uint *)pOVar20;" (assignment_expression "pOVar8->local_sym_index_ = *(uint *)pOVar20" (field_expression "pOVar8->local_sym_index_" identifier -> field_identifier) = (pointer_expression "*(uint *)pOVar20" * (cast_expression "(uint *)pOVar20" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)&pOVar8->field_0x14 = uVar12;" (assignment_expression "*(undefined4 *)&pOVar8->field_0x14 = uVar12" (pointer_expression "*(undefined4 *)&pOVar8->field_0x14" * (cast_expression "(undefined4 *)&pOVar8->field_0x14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar8->field_0x14" & (field_expression "pOVar8->field_0x14" identifier -> field_identifier)))) = identifier) ;) })) }))) (expression_statement "paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010;" (assignment_expression "paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000010" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000010" & identifier))) ;) (expression_statement "paVar5 = local_58;" (assignment_expression "paVar5 = local_58" identifier = identifier) ;) (do_statement "do {\n    paVar9 = paVar5;\n    paVar7 = paVar3;\n    paVar3 = paVar7 + 4;\n    aVar13 = paVar7[1];\n    aVar11 = paVar7[2];\n    aVar10 = paVar7[3];\n    *paVar9 = *paVar7;\n    paVar9[1] = aVar13;\n    paVar9[2] = aVar11;\n    paVar9[3] = aVar10;\n    paVar5 = paVar9 + 4;\n  } while (paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030);" do (compound_statement "{\n    paVar9 = paVar5;\n    paVar7 = paVar3;\n    paVar3 = paVar7 + 4;\n    aVar13 = paVar7[1];\n    aVar11 = paVar7[2];\n    aVar10 = paVar7[3];\n    *paVar9 = *paVar7;\n    paVar9[1] = aVar13;\n    paVar9[2] = aVar11;\n    paVar9[3] = aVar10;\n    paVar5 = paVar9 + 4;\n  }" { (expression_statement "paVar9 = paVar5;" (assignment_expression "paVar9 = paVar5" identifier = identifier) ;) (expression_statement "paVar7 = paVar3;" (assignment_expression "paVar7 = paVar3" identifier = identifier) ;) (expression_statement "paVar3 = paVar7 + 4;" (assignment_expression "paVar3 = paVar7 + 4" identifier = (binary_expression "paVar7 + 4" identifier + number_literal)) ;) (expression_statement "aVar13 = paVar7[1];" (assignment_expression "aVar13 = paVar7[1]" identifier = (subscript_expression "paVar7[1]" identifier [ number_literal ])) ;) (expression_statement "aVar11 = paVar7[2];" (assignment_expression "aVar11 = paVar7[2]" identifier = (subscript_expression "paVar7[2]" identifier [ number_literal ])) ;) (expression_statement "aVar10 = paVar7[3];" (assignment_expression "aVar10 = paVar7[3]" identifier = (subscript_expression "paVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*paVar9 = *paVar7;" (assignment_expression "*paVar9 = *paVar7" (pointer_expression "*paVar9" * identifier) = (pointer_expression "*paVar7" * identifier)) ;) (expression_statement "paVar9[1] = aVar13;" (assignment_expression "paVar9[1] = aVar13" (subscript_expression "paVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar9[2] = aVar11;" (assignment_expression "paVar9[2] = aVar11" (subscript_expression "paVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar9[3] = aVar10;" (assignment_expression "paVar9[3] = aVar10" (subscript_expression "paVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar5 = paVar9 + 4;" (assignment_expression "paVar5 = paVar9 + 4" identifier = (binary_expression "paVar9 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030)" ( (binary_expression "paVar3 != (anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030" identifier != (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&stack0x00000030" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000030" & identifier))) )) ;) (expression_statement "aVar10 = paVar7[5];" (assignment_expression "aVar10 = paVar7[5]" identifier = (subscript_expression "paVar7[5]" identifier [ number_literal ])) ;) (expression_statement "paVar9[4] = *paVar3;" (assignment_expression "paVar9[4] = *paVar3" (subscript_expression "paVar9[4]" identifier [ number_literal ]) = (pointer_expression "*paVar3" * identifier)) ;) (expression_statement "paVar9[5] = aVar10;" (assignment_expression "paVar9[5] = aVar10" (subscript_expression "paVar9[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "this = pOVar15;" (assignment_expression "this = pOVar15" identifier = identifier) ;) (while_statement "while (__holeIndex < iVar18) {\n    iVar16 = (iVar18 + -1) / 2;\n    this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar16 * 0x28);\n    iVar4 = gold::Output_reloc<9,_true,_64,_true>::compare\n                      (this,(Output_reloc<9,_true,_64,_true> *)local_58);\n    if ((-1 < iVar4) &&\n       ((iVar4 != 0 ||\n        ((local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)))))))) {\n      this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);\n      break;\n    }\n    paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar18 * 0x28);\n    pOVar15 = this;\n    do {\n      pOVar20 = pOVar15;\n      paVar5 = paVar3;\n      pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n      aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n      aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n      *paVar5 = pOVar20->u1_;\n      paVar5[1] = aVar13;\n      paVar5[2] = aVar11;\n      paVar5[3] = aVar10;\n      paVar3 = paVar5 + 4;\n    } while (pOVar15 != this + 1);\n    aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;\n    paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;\n    paVar5[5] = aVar10;\n    iVar18 = iVar16;\n  }" while (parenthesized_expression "(__holeIndex < iVar18)" ( (binary_expression "__holeIndex < iVar18" identifier < identifier) )) (compound_statement "{\n    iVar16 = (iVar18 + -1) / 2;\n    this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar16 * 0x28);\n    iVar4 = gold::Output_reloc<9,_true,_64,_true>::compare\n                      (this,(Output_reloc<9,_true,_64,_true> *)local_58);\n    if ((-1 < iVar4) &&\n       ((iVar4 != 0 ||\n        ((local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)))))))) {\n      this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);\n      break;\n    }\n    paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar18 * 0x28);\n    pOVar15 = this;\n    do {\n      pOVar20 = pOVar15;\n      paVar5 = paVar3;\n      pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n      aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n      aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n      *paVar5 = pOVar20->u1_;\n      paVar5[1] = aVar13;\n      paVar5[2] = aVar11;\n      paVar5[3] = aVar10;\n      paVar3 = paVar5 + 4;\n    } while (pOVar15 != this + 1);\n    aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;\n    paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;\n    paVar5[5] = aVar10;\n    iVar18 = iVar16;\n  }" { (expression_statement "iVar16 = (iVar18 + -1) / 2;" (assignment_expression "iVar16 = (iVar18 + -1) / 2" identifier = (binary_expression "(iVar18 + -1) / 2" (parenthesized_expression "(iVar18 + -1)" ( (binary_expression "iVar18 + -1" identifier + number_literal) )) / number_literal)) ;) (expression_statement "this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar16 * 0x28);" (assignment_expression "this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar16 * 0x28)" identifier = (call_expression "(Output_reloc<9,_true,_64,_true> *)(__first + iVar16 * 0x28)" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) (argument_list "(__first + iVar16 * 0x28)" ( (binary_expression "__first + iVar16 * 0x28" identifier + (binary_expression "iVar16 * 0x28" identifier * number_literal)) )))) ;) (ERROR "iVar4 = gold::" (assignment_expression "iVar4 = gold" identifier = identifier) : :) (expression_statement "Output_reloc<9,_true,_64,_true>::compare\n                      (this,(Output_reloc<9,_true,_64,_true> *)local_58);" (comma_expression "Output_reloc<9,_true,_64,_true>::compare\n                      (this,(Output_reloc<9,_true,_64,_true> *)local_58)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true>::compare\n                      (this,(Output_reloc<9,_true,_64,_true> *)local_58)" identifier , (comma_expression "_64,_true>::compare\n                      (this,(Output_reloc<9,_true,_64,_true> *)local_58)" identifier , (binary_expression "_true>::compare\n                      (this,(Output_reloc<9,_true,_64,_true> *)local_58)" identifier > (ERROR "::" : :) (call_expression "compare\n                      (this,(Output_reloc<9,_true,_64,_true> *)local_58)" identifier (argument_list "(this,(Output_reloc<9,_true,_64,_true> *)local_58)" ( identifier , (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)local_58)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *)local_58" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *)local_58" identifier , (comma_expression "_64,_true> *)local_58" identifier , (binary_expression "_true> *)local_58" identifier > (pointer_expression "*)local_58" * (ERROR ")" )) identifier))))) )) ))))))) ;) (if_statement "if ((-1 < iVar4) &&\n       ((iVar4 != 0 ||\n        ((local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)))))))) {\n      this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);\n      break;\n    }" if (parenthesized_expression "((-1 < iVar4) &&\n       ((iVar4 != 0 ||\n        ((local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj))))))))" ( (binary_expression "(-1 < iVar4) &&\n       ((iVar4 != 0 ||\n        ((local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)))))))" (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) && (parenthesized_expression "((iVar4 != 0 ||\n        ((local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)))))))" ( (parenthesized_expression "(iVar4 != 0 ||\n        ((local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj))))))" ( (binary_expression "iVar4 != 0 ||\n        ((local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)))))" (binary_expression "iVar4 != 0" identifier != number_literal) || (parenthesized_expression "((local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)))))" ( (parenthesized_expression "(local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj))))" ( (binary_expression "local_58[8].relobj <= this[1].u1_.relobj &&\n         ((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)))" (binary_expression "local_58[8].relobj <= this[1].u1_.relobj" (field_expression "local_58[8].relobj" (subscript_expression "local_58[8]" identifier [ number_literal ]) . field_identifier) <= (field_expression "this[1].u1_.relobj" (field_expression "this[1].u1_" (subscript_expression "this[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)) && (parenthesized_expression "((local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)))" ( (parenthesized_expression "(local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj))" ( (binary_expression "local_58[8].relobj != this[1].u1_.relobj || (local_34 <= this[1].u2_.relobj)" (binary_expression "local_58[8].relobj != this[1].u1_.relobj" (field_expression "local_58[8].relobj" (subscript_expression "local_58[8]" identifier [ number_literal ]) . field_identifier) != (field_expression "this[1].u1_.relobj" (field_expression "this[1].u1_" (subscript_expression "this[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)) || (parenthesized_expression "(local_34 <= this[1].u2_.relobj)" ( (binary_expression "local_34 <= this[1].u2_.relobj" identifier <= (field_expression "this[1].u2_.relobj" (field_expression "this[1].u2_" (subscript_expression "this[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n      this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);\n      break;\n    }" { (expression_statement "this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28);" (assignment_expression "this = (Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28)" identifier = (call_expression "(Output_reloc<9,_true,_64,_true> *)(__first + iVar18 * 0x28)" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) (argument_list "(__first + iVar18 * 0x28)" ( (binary_expression "__first + iVar18 * 0x28" identifier + (binary_expression "iVar18 * 0x28" identifier * number_literal)) )))) ;) (break_statement "break;" break ;) })) (expression_statement "paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar18 * 0x28);" (assignment_expression "paVar3 = (anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar18 * 0x28)" identifier = (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)(__first + iVar18 * 0x28)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + iVar18 * 0x28)" ( (binary_expression "__first + iVar18 * 0x28" identifier + (binary_expression "iVar18 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "pOVar15 = this;" (assignment_expression "pOVar15 = this" identifier = identifier) ;) (do_statement "do {\n      pOVar20 = pOVar15;\n      paVar5 = paVar3;\n      pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n      aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n      aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n      *paVar5 = pOVar20->u1_;\n      paVar5[1] = aVar13;\n      paVar5[2] = aVar11;\n      paVar5[3] = aVar10;\n      paVar3 = paVar5 + 4;\n    } while (pOVar15 != this + 1);" do (compound_statement "{\n      pOVar20 = pOVar15;\n      paVar5 = paVar3;\n      pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;\n      aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;\n      aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;\n      aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);\n      *paVar5 = pOVar20->u1_;\n      paVar5[1] = aVar13;\n      paVar5[2] = aVar11;\n      paVar5[3] = aVar10;\n      paVar3 = paVar5 + 4;\n    }" { (expression_statement "pOVar20 = pOVar15;" (assignment_expression "pOVar20 = pOVar15" identifier = identifier) ;) (expression_statement "paVar5 = paVar3;" (assignment_expression "paVar5 = paVar3" identifier = identifier) ;) (expression_statement "pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_;" (assignment_expression "pOVar15 = (Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_" identifier = (binary_expression "(Output_reloc<9,_true,_64,_true> *)&pOVar20->local_sym_index_" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) & (field_expression "pOVar20->local_sym_index_" identifier -> field_identifier))) ;) (expression_statement "aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_;" (assignment_expression "aVar13 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_" identifier = (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->u2_" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar20->u2_" & (field_expression "pOVar20->u2_" identifier -> field_identifier))))) ;) (expression_statement "aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_;" (assignment_expression "aVar11 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_" identifier = (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->address_" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar20->address_" & (field_expression "pOVar20->address_" identifier -> field_identifier))))) ;) (expression_statement "aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4);" (assignment_expression "aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4)" identifier = (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4)" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar20->address_ + 4)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar20->address_ + 4)" ( (binary_expression "(int)&pOVar20->address_ + 4" (cast_expression "(int)&pOVar20->address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar20->address_" & (field_expression "pOVar20->address_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*paVar5 = pOVar20->u1_;" (assignment_expression "*paVar5 = pOVar20->u1_" (pointer_expression "*paVar5" * identifier) = (field_expression "pOVar20->u1_" identifier -> field_identifier)) ;) (expression_statement "paVar5[1] = aVar13;" (assignment_expression "paVar5[1] = aVar13" (subscript_expression "paVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar5[2] = aVar11;" (assignment_expression "paVar5[2] = aVar11" (subscript_expression "paVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar5[3] = aVar10;" (assignment_expression "paVar5[3] = aVar10" (subscript_expression "paVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "paVar3 = paVar5 + 4;" (assignment_expression "paVar3 = paVar5 + 4" identifier = (binary_expression "paVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pOVar15 != this + 1)" ( (binary_expression "pOVar15 != this + 1" identifier != (binary_expression "this + 1" identifier + number_literal)) )) ;) (expression_statement "aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14;" (assignment_expression "aVar10 = *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14" identifier = (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&pOVar20->field_0x14" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar20->field_0x14" & (field_expression "pOVar20->field_0x14" identifier -> field_identifier))))) ;) (expression_statement "paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15;" (assignment_expression "paVar5[4] = *(anon_union_4_4_c82d8563_for_u1_ *)pOVar15" (subscript_expression "paVar5[4]" identifier [ number_literal ]) = (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)pOVar15" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)pOVar15" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "paVar5[5] = aVar10;" (assignment_expression "paVar5[5] = aVar10" (subscript_expression "paVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar18 = iVar16;" (assignment_expression "iVar18 = iVar16" identifier = identifier) ;) })) (labeled_statement "LAB_00267704:\n  paVar3 = local_58;" statement_identifier : (expression_statement "paVar3 = local_58;" (assignment_expression "paVar3 = local_58" identifier = identifier) ;)) (do_statement "do {\n    pOVar15 = this;\n    paVar5 = paVar3;\n    paVar3 = paVar5 + 4;\n    aVar13 = paVar5[1];\n    aVar11 = paVar5[2];\n    aVar10 = paVar5[3];\n    pOVar15->u1_ = *paVar5;\n    pOVar15->u2_ = (anon_union_4_2_238bdeaa_for_u2_)aVar13;\n    *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->address_ = aVar11;\n    *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar15->address_ + 4) = aVar10;\n    this = (Output_reloc<9,_true,_64,_true> *)&pOVar15->local_sym_index_;\n  } while (paVar3 != local_58 + 8);" do (compound_statement "{\n    pOVar15 = this;\n    paVar5 = paVar3;\n    paVar3 = paVar5 + 4;\n    aVar13 = paVar5[1];\n    aVar11 = paVar5[2];\n    aVar10 = paVar5[3];\n    pOVar15->u1_ = *paVar5;\n    pOVar15->u2_ = (anon_union_4_2_238bdeaa_for_u2_)aVar13;\n    *(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->address_ = aVar11;\n    *(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar15->address_ + 4) = aVar10;\n    this = (Output_reloc<9,_true,_64,_true> *)&pOVar15->local_sym_index_;\n  }" { (expression_statement "pOVar15 = this;" (assignment_expression "pOVar15 = this" identifier = identifier) ;) (expression_statement "paVar5 = paVar3;" (assignment_expression "paVar5 = paVar3" identifier = identifier) ;) (expression_statement "paVar3 = paVar5 + 4;" (assignment_expression "paVar3 = paVar5 + 4" identifier = (binary_expression "paVar5 + 4" identifier + number_literal)) ;) (expression_statement "aVar13 = paVar5[1];" (assignment_expression "aVar13 = paVar5[1]" identifier = (subscript_expression "paVar5[1]" identifier [ number_literal ])) ;) (expression_statement "aVar11 = paVar5[2];" (assignment_expression "aVar11 = paVar5[2]" identifier = (subscript_expression "paVar5[2]" identifier [ number_literal ])) ;) (expression_statement "aVar10 = paVar5[3];" (assignment_expression "aVar10 = paVar5[3]" identifier = (subscript_expression "paVar5[3]" identifier [ number_literal ])) ;) (expression_statement "pOVar15->u1_ = *paVar5;" (assignment_expression "pOVar15->u1_ = *paVar5" (field_expression "pOVar15->u1_" identifier -> field_identifier) = (pointer_expression "*paVar5" * identifier)) ;) (expression_statement "pOVar15->u2_ = (anon_union_4_2_238bdeaa_for_u2_)aVar13;" (assignment_expression "pOVar15->u2_ = (anon_union_4_2_238bdeaa_for_u2_)aVar13" (field_expression "pOVar15->u2_" identifier -> field_identifier) = (cast_expression "(anon_union_4_2_238bdeaa_for_u2_)aVar13" ( (type_descriptor "anon_union_4_2_238bdeaa_for_u2_" type_identifier) ) identifier)) ;) (expression_statement "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->address_ = aVar11;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->address_ = aVar11" (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->address_" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->address_" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar15->address_" & (field_expression "pOVar15->address_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar15->address_ + 4) = aVar10;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar15->address_ + 4) = aVar10" (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar15->address_ + 4)" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)((int)&pOVar15->address_ + 4)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar15->address_ + 4)" ( (binary_expression "(int)&pOVar15->address_ + 4" (cast_expression "(int)&pOVar15->address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar15->address_" & (field_expression "pOVar15->address_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "this = (Output_reloc<9,_true,_64,_true> *)&pOVar15->local_sym_index_;" (assignment_expression "this = (Output_reloc<9,_true,_64,_true> *)&pOVar15->local_sym_index_" identifier = (binary_expression "(Output_reloc<9,_true,_64,_true> *)&pOVar15->local_sym_index_" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) & (field_expression "pOVar15->local_sym_index_" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(paVar3 != local_58 + 8)" ( (binary_expression "paVar3 != local_58 + 8" identifier != (binary_expression "local_58 + 8" identifier + number_literal)) )) ;) (expression_statement "aVar10 = paVar5[5];" (assignment_expression "aVar10 = paVar5[5]" identifier = (subscript_expression "paVar5[5]" identifier [ number_literal ])) ;) (expression_statement "pOVar15->local_sym_index_ = (uint)*paVar3;" (assignment_expression "pOVar15->local_sym_index_ = (uint)*paVar3" (field_expression "pOVar15->local_sym_index_" identifier -> field_identifier) = (binary_expression "(uint)*paVar3" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->field_0x14 = aVar10;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->field_0x14 = aVar10" (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->field_0x14" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&pOVar15->field_0x14" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar15->field_0x14" & (field_expression "pOVar15->field_0x14" identifier -> field_identifier)))) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void std::\n     __adjust_heap<__normal_iterator<gold::Output_reloc<4,true,64,true>*,std::vector<gold::Output_reloc<4,true,64,true>,std::allocator<gold::Output_reloc<4,true,64,true>>>>,int,gold::Output_reloc<4,true,64,true>,__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,true,64,true>::Sort_relocs_comparison>>\n               (int param_1,int param_2,uint param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  Output_reloc<9,true,64,true> *pOVar5;\n  Output_reloc<9,true,64,true> *pOVar6;\n  Output_reloc<9,true,64,true> *pOVar7;\n  Output_reloc<9,true,64,true> *pOVar8;\n  Output_reloc *pOVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  Output_reloc<9,true,64,true> *this;\n  int iVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  Output_reloc *pOVar17;\n  Output_reloc local_58 [4];\n  undefined4 local_54 [7];\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  \n  iVar13 = (int)(param_3 - 1) / 2;\n  local_30 = param_3 & 1;\n  iVar3 = param_2;\n  if (param_2 < iVar13) {\n    do {\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    } while (iVar15 < iVar13);\n    pOVar7 = this;\n    if (local_30 == 0) goto LAB_00267870;\n  }\n  else {\n    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);\n    iVar15 = param_2;\n    if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar7 = this;\n    if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }\n  }\n  puVar2 = (undefined4 *)&stack0x00000010;\n  pOVar17 = local_58;\n  do {\n    pOVar9 = pOVar17;\n    puVar4 = puVar2;\n    puVar2 = puVar4 + 4;\n    uVar12 = puVar4[1];\n    uVar11 = puVar4[2];\n    uVar10 = puVar4[3];\n    *(undefined4 *)pOVar9 = *puVar4;\n    *(undefined4 *)(pOVar9 + 4) = uVar12;\n    *(undefined4 *)(pOVar9 + 8) = uVar11;\n    *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n    pOVar17 = pOVar9 + 0x10;\n  } while (puVar2 != (undefined4 *)&stack0x00000030);\n  uVar10 = puVar4[5];\n  *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n  *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n  this = pOVar7;\n  while (param_2 < iVar15) {\n    iVar13 = (iVar15 + -1) / 2;\n    this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);\n    iVar3 = gold::Output_reloc<9,true,64,true>::compare(this,local_58);\n    if ((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }\n    puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);\n    pOVar7 = this;\n    do {\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    } while (pOVar7 != this + 0x20);\n    uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n    puVar4[4] = *(undefined4 *)pOVar7;\n    puVar4[5] = uVar10;\n    iVar15 = iVar13;\n  }\nLAB_00267704:\n  pOVar17 = local_58;\n  do {\n    pOVar7 = this;\n    pOVar9 = pOVar17;\n    pOVar17 = pOVar9 + 0x10;\n    uVar12 = *(undefined4 *)(pOVar9 + 4);\n    uVar11 = *(undefined4 *)(pOVar9 + 8);\n    uVar10 = *(undefined4 *)(pOVar9 + 0xc);\n    *(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;\n    *(undefined4 *)(pOVar7 + 4) = uVar12;\n    *(undefined4 *)(pOVar7 + 8) = uVar11;\n    *(undefined4 *)(pOVar7 + 0xc) = uVar10;\n    this = pOVar7 + 0x10;\n  } while (pOVar17 != (Output_reloc *)(local_54 + 7));\n  uVar10 = *(undefined4 *)(pOVar9 + 0x14);\n  *(undefined4 *)(pOVar7 + 0x10) = *(undefined4 *)pOVar17;\n  *(undefined4 *)(pOVar7 + 0x14) = uVar10;\n  return;\n}\n\n" (declaration "void std::\n     __adjust_heap<__normal_iterator<gold::Output_reloc<4,true,64,true>*,std::vector<gold::Output_reloc<4,true,64,true>,std::allocator<gold::Output_reloc<4,true,64,true>>>>,int,gold::Output_reloc<4,true,64,true>,__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,true,64,true>::Sort_relocs_comparison>>\n               (int param_1,int param_2,uint param_3)\n\n{\n  int iVar1;" primitive_type (ERROR "std::\n     __adjust_heap<__normal_iterator<gold::" identifier : : identifier < identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier (ERROR ",64" , number_literal) , identifier (ERROR ">*" > *) , (ERROR "std::vector<gold::" identifier : : identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier (ERROR ",64" , number_literal) , identifier (ERROR ">" >) , (ERROR "std::allocator<gold::" identifier : : identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier (ERROR ",64" , number_literal) , identifier (ERROR ">>>>" >> >>) , identifier , (ERROR "gold::" identifier : :) identifier (ERROR "<4" < number_literal) , identifier (ERROR ",64" , number_literal) , identifier (ERROR ">" >) , (ERROR "__ops::_Iter_comp_iter<gold::" identifier : : identifier < identifier : :) identifier (ERROR "<4" < number_literal) , identifier (ERROR ",64" , number_literal) , (ERROR "true>::Sort_relocs_comparison>>\n               (int param_1,int param_2,uint param_3)\n\n{\n  int" identifier > : : (function_declarator "Sort_relocs_comparison>>\n               (int param_1,int param_2,uint param_3)" identifier (ERROR ">>" >>) (parameter_list "(int param_1,int param_2,uint param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) { primitive_type) identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (expression_statement "Output_reloc<9,true,64,true> *pOVar5;" (update_expression "Output_reloc<9,true,64,true> *pOVar5" (binary_expression "Output_reloc<9,true,64,true> *pOVar5" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*pOVar5" * identifier)) --) ;) (expression_statement "Output_reloc<9,true,64,true> *pOVar6;" (update_expression "Output_reloc<9,true,64,true> *pOVar6" (binary_expression "Output_reloc<9,true,64,true> *pOVar6" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*pOVar6" * identifier)) --) ;) (expression_statement "Output_reloc<9,true,64,true> *pOVar7;" (update_expression "Output_reloc<9,true,64,true> *pOVar7" (binary_expression "Output_reloc<9,true,64,true> *pOVar7" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*pOVar7" * identifier)) --) ;) (expression_statement "Output_reloc<9,true,64,true> *pOVar8;" (update_expression "Output_reloc<9,true,64,true> *pOVar8" (binary_expression "Output_reloc<9,true,64,true> *pOVar8" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*pOVar8" * identifier)) --) ;) (declaration "Output_reloc *pOVar9;" type_identifier (pointer_declarator "*pOVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (expression_statement "Output_reloc<9,true,64,true> *this;" (update_expression "Output_reloc<9,true,64,true> *this" (binary_expression "Output_reloc<9,true,64,true> *this" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*this" * identifier)) --) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "Output_reloc *pOVar17;" type_identifier (pointer_declarator "*pOVar17" * identifier) ;) (declaration "Output_reloc local_58 [4];" type_identifier (array_declarator "local_58 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_54 [7];" type_identifier (array_declarator "local_54 [7]" identifier [ number_literal ]) ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "iVar13 = (int)(param_3 - 1) / 2;" (assignment_expression "iVar13 = (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 "local_30 = param_3 & 1;" (assignment_expression "local_30 = param_3 & 1" identifier = (binary_expression "param_3 & 1" identifier & number_literal)) ;) (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" identifier = identifier) ;) (if_statement "if (param_2 < iVar13) {\n    do {\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    } while (iVar15 < iVar13);\n    pOVar7 = this;\n    if (local_30 == 0) goto LAB_00267870;\n  }\n  else {\n    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);\n    iVar15 = param_2;\n    if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar7 = this;\n    if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }\n  }" if (parenthesized_expression "(param_2 < iVar13)" ( (binary_expression "param_2 < iVar13" identifier < identifier) )) (compound_statement "{\n    do {\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    } while (iVar15 < iVar13);\n    pOVar7 = this;\n    if (local_30 == 0) goto LAB_00267870;\n  }" { (do_statement "do {\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    } while (iVar15 < iVar13);" do (compound_statement "{\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    }" { (expression_statement "iVar15 = (iVar3 + 1) * 2;" (assignment_expression "iVar15 = (iVar3 + 1) * 2" identifier = (binary_expression "(iVar3 + 1) * 2" (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "iVar14 = iVar15 + -1;" (assignment_expression "iVar14 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(param_1 + (iVar3 + 1) * 0x50)" ( (binary_expression "param_1 + (iVar3 + 1) * 0x50" identifier + (binary_expression "(iVar3 + 1) * 0x50" (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);" (assignment_expression "pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28)" identifier = (cast_expression "(Output_reloc *)(param_1 + iVar14 * 0x28)" ( (type_descriptor "Output_reloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar14 * 0x28)" ( (binary_expression "param_1 + iVar14 * 0x28" identifier + (binary_expression "iVar14 * 0x28" identifier * number_literal)) )))) ;) (ERROR "iVar1 = gold::" (assignment_expression "iVar1 = gold" identifier = identifier) : :) (expression_statement "Output_reloc<9,true,64,true>::compare(this,pOVar17);" (comma_expression "Output_reloc<9,true,64,true>::compare(this,pOVar17)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true>::compare(this,pOVar17)" true , (comma_expression "64,true>::compare(this,pOVar17)" number_literal , (binary_expression "true>::compare(this,pOVar17)" true > (ERROR "::" : :) (call_expression "compare(this,pOVar17)" identifier (argument_list "(this,pOVar17)" ( identifier , identifier ))))))) ;) (expression_statement "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;" (assignment_expression "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17" identifier = (parenthesized_expression "(Output_reloc<9,true,64,true> *)pOVar17" ( (comma_expression "Output_reloc<9,true,64,true> *)pOVar17" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *)pOVar17" true , (comma_expression "64,true> *)pOVar17" number_literal , (binary_expression "true> *)pOVar17" true > (pointer_expression "*)pOVar17" * (ERROR ")" )) identifier))))) ))) ;) (expression_statement "iVar16 = iVar14;" (assignment_expression "iVar16 = iVar14" identifier = identifier) ;) (if_statement "if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }" if (parenthesized_expression "((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0))" ( (binary_expression "(iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)" (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) || (parenthesized_expression "(pOVar7 = this, iVar16 = iVar15, iVar1 != 0)" ( (comma_expression "pOVar7 = this, iVar16 = iVar15, iVar1 != 0" (assignment_expression "pOVar7 = this" identifier = identifier) , (comma_expression "iVar16 = iVar15, iVar1 != 0" (assignment_expression "iVar16 = iVar15" identifier = identifier) , (binary_expression "iVar1 != 0" identifier != number_literal))) ))) )) (compound_statement "{\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }" { (labeled_statement "LAB_002675ec:\n        this = pOVar7;" statement_identifier : (expression_statement "this = pOVar7;" (assignment_expression "this = pOVar7" identifier = identifier) ;)) (expression_statement "iVar15 = iVar16;" (assignment_expression "iVar15 = iVar16" identifier = identifier) ;) }) (else_clause "else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }" else (compound_statement "{\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }" { (expression_statement "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;" (assignment_expression "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17" identifier = (parenthesized_expression "(Output_reloc<9,true,64,true> *)pOVar17" ( (comma_expression "Output_reloc<9,true,64,true> *)pOVar17" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *)pOVar17" true , (comma_expression "64,true> *)pOVar17" number_literal , (binary_expression "true> *)pOVar17" true > (pointer_expression "*)pOVar17" * (ERROR ")" )) identifier))))) ))) ;) (expression_statement "iVar16 = iVar14;" (assignment_expression "iVar16 = iVar14" identifier = identifier) ;) (if_statement "if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;" if (parenthesized_expression "((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24)))))" ( (binary_expression "(*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))" (parenthesized_expression "(*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20))" ( (binary_expression "*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)" (pointer_expression "*(uint *)(this + 0x20)" * (cast_expression "(uint *)(this + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) < (pointer_expression "*(uint *)(pOVar17 + 0x20)" * (cast_expression "(uint *)(pOVar17 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar17 + 0x20)" ( (binary_expression "pOVar17 + 0x20" identifier + number_literal) ))))) )) || (parenthesized_expression "((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))" ( (parenthesized_expression "(*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24)))" ( (binary_expression "*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))" (binary_expression "*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20)" (pointer_expression "*(uint *)(pOVar17 + 0x20)" * (cast_expression "(uint *)(pOVar17 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar17 + 0x20)" ( (binary_expression "pOVar17 + 0x20" identifier + number_literal) )))) == (pointer_expression "*(uint *)(this + 0x20)" * (cast_expression "(uint *)(this + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))" ( (binary_expression "*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24)" (pointer_expression "*(uint *)(this + 0x24)" * (cast_expression "(uint *)(this + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) < (pointer_expression "*(uint *)(pOVar17 + 0x24)" * (cast_expression "(uint *)(pOVar17 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar17 + 0x24)" ( (binary_expression "pOVar17 + 0x24" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_002675ec;" goto statement_identifier ;)) }))) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar3 * 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar3 * 0x28)" ( (binary_expression "param_1 + iVar3 * 0x28" identifier + (binary_expression "iVar3 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" identifier = identifier) ;) (do_statement "do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);" do (compound_statement "{\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      }" { (expression_statement "pOVar6 = pOVar7;" (assignment_expression "pOVar6 = pOVar7" identifier = identifier) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "pOVar7 = pOVar6 + 0x10;" (assignment_expression "pOVar7 = pOVar6 + 0x10" identifier = (binary_expression "pOVar6 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)(pOVar6 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar6 + 4)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 4)" * (cast_expression "(undefined4 *)(pOVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 4)" ( (binary_expression "pOVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(pOVar6 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar6 + 8)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 8)" * (cast_expression "(undefined4 *)(pOVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 8)" ( (binary_expression "pOVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 0xc)" * (cast_expression "(undefined4 *)(pOVar6 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 0xc)" ( (binary_expression "pOVar6 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = *(undefined4 *)pOVar6;" (assignment_expression "*puVar4 = *(undefined4 *)pOVar6" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*(undefined4 *)pOVar6" * (cast_expression "(undefined4 *)pOVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar4[1] = uVar12;" (assignment_expression "puVar4[1] = uVar12" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar11;" (assignment_expression "puVar4[2] = uVar11" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar10;" (assignment_expression "puVar4[3] = uVar10" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pOVar7 != this + 0x20)" ( (binary_expression "pOVar7 != this + 0x20" identifier != (binary_expression "this + 0x20" identifier + number_literal)) )) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 0x14)" * (cast_expression "(undefined4 *)(pOVar6 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 0x14)" ( (binary_expression "pOVar6 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar4[4] = *(undefined4 *)pOVar7;" (assignment_expression "puVar4[4] = *(undefined4 *)pOVar7" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pOVar7" * (cast_expression "(undefined4 *)pOVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar4[5] = uVar10;" (assignment_expression "puVar4[5] = uVar10" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = iVar15;" (assignment_expression "iVar3 = iVar15" identifier = identifier) ;) }) while (parenthesized_expression "(iVar15 < iVar13)" ( (binary_expression "iVar15 < iVar13" identifier < identifier) )) ;) (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" identifier = identifier) ;) (if_statement "if (local_30 == 0) goto LAB_00267870;" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00267870;" goto statement_identifier ;)) }) (else_clause "else {\n    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);\n    iVar15 = param_2;\n    if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar7 = this;\n    if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }\n  }" else (compound_statement "{\n    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);\n    iVar15 = param_2;\n    if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar7 = this;\n    if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }\n  }" { (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(param_1 + param_2 * 0x28)" ( (binary_expression "param_1 + param_2 * 0x28" identifier + (binary_expression "param_2 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "iVar15 = param_2;" (assignment_expression "iVar15 = param_2" identifier = identifier) ;) (if_statement "if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\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      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }" { (expression_statement "puVar2 = (undefined4 *)&stack0x00000010;" (assignment_expression "puVar2 = (undefined4 *)&stack0x00000010" identifier = (cast_expression "(undefined4 *)&stack0x00000010" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000010" & identifier))) ;) (expression_statement "pOVar17 = local_58;" (assignment_expression "pOVar17 = local_58" identifier = identifier) ;) (do_statement "do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);" do (compound_statement "{\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      }" { (expression_statement "pOVar9 = pOVar17;" (assignment_expression "pOVar9 = pOVar17" identifier = identifier) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "uVar12 = puVar4[1];" (assignment_expression "uVar12 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = puVar4[2];" (assignment_expression "uVar11 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar4[3];" (assignment_expression "uVar10 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)pOVar9 = *puVar4;" (assignment_expression "*(undefined4 *)pOVar9 = *puVar4" (pointer_expression "*(undefined4 *)pOVar9" * (cast_expression "(undefined4 *)pOVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(undefined4 *)(pOVar9 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar9 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar9 + 4)" * (cast_expression "(undefined4 *)(pOVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 4)" ( (binary_expression "pOVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar9 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar9 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar9 + 8)" * (cast_expression "(undefined4 *)(pOVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 8)" ( (binary_expression "pOVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0xc)" * (cast_expression "(undefined4 *)(pOVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0xc)" ( (binary_expression "pOVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pOVar17 = pOVar9 + 0x10;" (assignment_expression "pOVar17 = pOVar9 + 0x10" identifier = (binary_expression "pOVar9 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar2 != (undefined4 *)&stack0x00000030)" ( (binary_expression "puVar2 != (undefined4 *)&stack0x00000030" identifier != (cast_expression "(undefined4 *)&stack0x00000030" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000030" & identifier))) )) ;) (expression_statement "uVar10 = puVar4[5];" (assignment_expression "uVar10 = puVar4[5]" identifier = (subscript_expression "puVar4[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0x10) = *puVar2;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x10) = *puVar2" (pointer_expression "*(undefined4 *)(pOVar9 + 0x10)" * (cast_expression "(undefined4 *)(pOVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0x10)" ( (binary_expression "pOVar9 + 0x10" identifier + number_literal) )))) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0x14)" * (cast_expression "(undefined4 *)(pOVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0x14)" ( (binary_expression "pOVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00267704;" goto statement_identifier ;) })) (labeled_statement "LAB_00267870:\n    pOVar7 = this;" statement_identifier : (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" identifier = identifier) ;)) (if_statement "if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }" if (parenthesized_expression "((int)(param_3 - 2) / 2 == iVar15)" ( (binary_expression "(int)(param_3 - 2) / 2 == iVar15" (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      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }" { (expression_statement "iVar15 = iVar15 * 2 + 1;" (assignment_expression "iVar15 = iVar15 * 2 + 1" identifier = (binary_expression "iVar15 * 2 + 1" (binary_expression "iVar15 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);" (assignment_expression "pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(param_1 + iVar15 * 0x28)" ( (binary_expression "param_1 + iVar15 * 0x28" identifier + (binary_expression "iVar15 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "pOVar6 = pOVar7;" (assignment_expression "pOVar6 = pOVar7" identifier = identifier) ;) (do_statement "do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);" do (compound_statement "{\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      }" { (expression_statement "pOVar8 = this;" (assignment_expression "pOVar8 = this" identifier = identifier) ;) (expression_statement "pOVar5 = pOVar6;" (assignment_expression "pOVar5 = pOVar6" identifier = identifier) ;) (expression_statement "pOVar6 = pOVar5 + 0x10;" (assignment_expression "pOVar6 = pOVar5 + 0x10" identifier = (binary_expression "pOVar5 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)(pOVar5 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar5 + 4)" identifier = (pointer_expression "*(undefined4 *)(pOVar5 + 4)" * (cast_expression "(undefined4 *)(pOVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar5 + 4)" ( (binary_expression "pOVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(pOVar5 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar5 + 8)" identifier = (pointer_expression "*(undefined4 *)(pOVar5 + 8)" * (cast_expression "(undefined4 *)(pOVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar5 + 8)" ( (binary_expression "pOVar5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar5 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar5 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pOVar5 + 0xc)" * (cast_expression "(undefined4 *)(pOVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar5 + 0xc)" ( (binary_expression "pOVar5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;" (assignment_expression "*(undefined4 *)pOVar8 = *(undefined4 *)pOVar5" (pointer_expression "*(undefined4 *)pOVar8" * (cast_expression "(undefined4 *)pOVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)pOVar5" * (cast_expression "(undefined4 *)pOVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(pOVar8 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar8 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar8 + 4)" * (cast_expression "(undefined4 *)(pOVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 4)" ( (binary_expression "pOVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar8 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar8 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar8 + 8)" * (cast_expression "(undefined4 *)(pOVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 8)" ( (binary_expression "pOVar8 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar8 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar8 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar8 + 0xc)" * (cast_expression "(undefined4 *)(pOVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0xc)" ( (binary_expression "pOVar8 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "this = pOVar8 + 0x10;" (assignment_expression "this = pOVar8 + 0x10" identifier = (binary_expression "pOVar8 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(pOVar6 != pOVar7 + 0x20)" ( (binary_expression "pOVar6 != pOVar7 + 0x20" identifier != (binary_expression "pOVar7 + 0x20" identifier + number_literal)) )) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar5 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar5 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(pOVar5 + 0x14)" * (cast_expression "(undefined4 *)(pOVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar5 + 0x14)" ( (binary_expression "pOVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;" (assignment_expression "*(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6" (pointer_expression "*(undefined4 *)(pOVar8 + 0x10)" * (cast_expression "(undefined4 *)(pOVar8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x10)" ( (binary_expression "pOVar8 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)pOVar6" * (cast_expression "(undefined4 *)pOVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(pOVar8 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar8 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar8 + 0x14)" * (cast_expression "(undefined4 *)(pOVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x14)" ( (binary_expression "pOVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) })) }))) (expression_statement "puVar2 = (undefined4 *)&stack0x00000010;" (assignment_expression "puVar2 = (undefined4 *)&stack0x00000010" identifier = (cast_expression "(undefined4 *)&stack0x00000010" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000010" & identifier))) ;) (expression_statement "pOVar17 = local_58;" (assignment_expression "pOVar17 = local_58" identifier = identifier) ;) (do_statement "do {\n    pOVar9 = pOVar17;\n    puVar4 = puVar2;\n    puVar2 = puVar4 + 4;\n    uVar12 = puVar4[1];\n    uVar11 = puVar4[2];\n    uVar10 = puVar4[3];\n    *(undefined4 *)pOVar9 = *puVar4;\n    *(undefined4 *)(pOVar9 + 4) = uVar12;\n    *(undefined4 *)(pOVar9 + 8) = uVar11;\n    *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n    pOVar17 = pOVar9 + 0x10;\n  } while (puVar2 != (undefined4 *)&stack0x00000030);" do (compound_statement "{\n    pOVar9 = pOVar17;\n    puVar4 = puVar2;\n    puVar2 = puVar4 + 4;\n    uVar12 = puVar4[1];\n    uVar11 = puVar4[2];\n    uVar10 = puVar4[3];\n    *(undefined4 *)pOVar9 = *puVar4;\n    *(undefined4 *)(pOVar9 + 4) = uVar12;\n    *(undefined4 *)(pOVar9 + 8) = uVar11;\n    *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n    pOVar17 = pOVar9 + 0x10;\n  }" { (expression_statement "pOVar9 = pOVar17;" (assignment_expression "pOVar9 = pOVar17" identifier = identifier) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "uVar12 = puVar4[1];" (assignment_expression "uVar12 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = puVar4[2];" (assignment_expression "uVar11 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar4[3];" (assignment_expression "uVar10 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)pOVar9 = *puVar4;" (assignment_expression "*(undefined4 *)pOVar9 = *puVar4" (pointer_expression "*(undefined4 *)pOVar9" * (cast_expression "(undefined4 *)pOVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "*(undefined4 *)(pOVar9 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar9 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar9 + 4)" * (cast_expression "(undefined4 *)(pOVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 4)" ( (binary_expression "pOVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar9 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar9 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar9 + 8)" * (cast_expression "(undefined4 *)(pOVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 8)" ( (binary_expression "pOVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0xc)" * (cast_expression "(undefined4 *)(pOVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0xc)" ( (binary_expression "pOVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pOVar17 = pOVar9 + 0x10;" (assignment_expression "pOVar17 = pOVar9 + 0x10" identifier = (binary_expression "pOVar9 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar2 != (undefined4 *)&stack0x00000030)" ( (binary_expression "puVar2 != (undefined4 *)&stack0x00000030" identifier != (cast_expression "(undefined4 *)&stack0x00000030" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0x00000030" & identifier))) )) ;) (expression_statement "uVar10 = puVar4[5];" (assignment_expression "uVar10 = puVar4[5]" identifier = (subscript_expression "puVar4[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0x10) = *puVar2;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x10) = *puVar2" (pointer_expression "*(undefined4 *)(pOVar9 + 0x10)" * (cast_expression "(undefined4 *)(pOVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0x10)" ( (binary_expression "pOVar9 + 0x10" identifier + number_literal) )))) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*(undefined4 *)(pOVar9 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0x14)" * (cast_expression "(undefined4 *)(pOVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0x14)" ( (binary_expression "pOVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "this = pOVar7;" (assignment_expression "this = pOVar7" identifier = identifier) ;) (while_statement "while (param_2 < iVar15) {\n    iVar13 = (iVar15 + -1) / 2;\n    this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);\n    iVar3 = gold::Output_reloc<9,true,64,true>::compare(this,local_58);\n    if ((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }\n    puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);\n    pOVar7 = this;\n    do {\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    } while (pOVar7 != this + 0x20);\n    uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n    puVar4[4] = *(undefined4 *)pOVar7;\n    puVar4[5] = uVar10;\n    iVar15 = iVar13;\n  }" while (parenthesized_expression "(param_2 < iVar15)" ( (binary_expression "param_2 < iVar15" identifier < identifier) )) (compound_statement "{\n    iVar13 = (iVar15 + -1) / 2;\n    this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);\n    iVar3 = gold::Output_reloc<9,true,64,true>::compare(this,local_58);\n    if ((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }\n    puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);\n    pOVar7 = this;\n    do {\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    } while (pOVar7 != this + 0x20);\n    uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n    puVar4[4] = *(undefined4 *)pOVar7;\n    puVar4[5] = uVar10;\n    iVar15 = iVar13;\n  }" { (expression_statement "iVar13 = (iVar15 + -1) / 2;" (assignment_expression "iVar13 = (iVar15 + -1) / 2" identifier = (binary_expression "(iVar15 + -1) / 2" (parenthesized_expression "(iVar15 + -1)" ( (binary_expression "iVar15 + -1" identifier + number_literal) )) / number_literal)) ;) (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(param_1 + iVar13 * 0x28)" ( (binary_expression "param_1 + iVar13 * 0x28" identifier + (binary_expression "iVar13 * 0x28" identifier * number_literal)) )))) ;) (ERROR "iVar3 = gold::" (assignment_expression "iVar3 = gold" identifier = identifier) : :) (expression_statement "Output_reloc<9,true,64,true>::compare(this,local_58);" (comma_expression "Output_reloc<9,true,64,true>::compare(this,local_58)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true>::compare(this,local_58)" true , (comma_expression "64,true>::compare(this,local_58)" number_literal , (binary_expression "true>::compare(this,local_58)" true > (ERROR "::" : :) (call_expression "compare(this,local_58)" identifier (argument_list "(this,local_58)" ( identifier , identifier ))))))) ;) (if_statement "if ((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }" if (parenthesized_expression "((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))))))))" ( (binary_expression "(-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))" (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) && (parenthesized_expression "((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))" ( (parenthesized_expression "(iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))))))" ( (binary_expression "iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))" (binary_expression "iVar3 != 0" identifier != number_literal) || (parenthesized_expression "((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))" ( (parenthesized_expression "(local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))))" ( (binary_expression "local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))" (binary_expression "local_38 <= *(uint *)(this + 0x20)" identifier <= (pointer_expression "*(uint *)(this + 0x20)" * (cast_expression "(uint *)(this + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))" ( (parenthesized_expression "(local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))" ( (binary_expression "local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))" (binary_expression "local_38 != *(uint *)(this + 0x20)" identifier != (pointer_expression "*(uint *)(this + 0x20)" * (cast_expression "(uint *)(this + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) || (parenthesized_expression "(local_34 <= *(uint *)(this + 0x24))" ( (binary_expression "local_34 <= *(uint *)(this + 0x24)" identifier <= (pointer_expression "*(uint *)(this + 0x24)" * (cast_expression "(uint *)(this + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }" { (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(param_1 + iVar15 * 0x28)" ( (binary_expression "param_1 + iVar15 * 0x28" identifier + (binary_expression "iVar15 * 0x28" identifier * number_literal)) )))) ;) (break_statement "break;" break ;) })) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28)" identifier = (cast_expression "(undefined4 *)(param_1 + iVar15 * 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar15 * 0x28)" ( (binary_expression "param_1 + iVar15 * 0x28" identifier + (binary_expression "iVar15 * 0x28" identifier * number_literal)) )))) ;) (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" identifier = identifier) ;) (do_statement "do {\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    } while (pOVar7 != this + 0x20);" do (compound_statement "{\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    }" { (expression_statement "pOVar6 = pOVar7;" (assignment_expression "pOVar6 = pOVar7" identifier = identifier) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "pOVar7 = pOVar6 + 0x10;" (assignment_expression "pOVar7 = pOVar6 + 0x10" identifier = (binary_expression "pOVar6 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)(pOVar6 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar6 + 4)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 4)" * (cast_expression "(undefined4 *)(pOVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 4)" ( (binary_expression "pOVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(pOVar6 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar6 + 8)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 8)" * (cast_expression "(undefined4 *)(pOVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 8)" ( (binary_expression "pOVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 0xc)" * (cast_expression "(undefined4 *)(pOVar6 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 0xc)" ( (binary_expression "pOVar6 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*puVar4 = *(undefined4 *)pOVar6;" (assignment_expression "*puVar4 = *(undefined4 *)pOVar6" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*(undefined4 *)pOVar6" * (cast_expression "(undefined4 *)pOVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar4[1] = uVar12;" (assignment_expression "puVar4[1] = uVar12" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar11;" (assignment_expression "puVar4[2] = uVar11" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar10;" (assignment_expression "puVar4[3] = uVar10" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pOVar7 != this + 0x20)" ( (binary_expression "pOVar7 != this + 0x20" identifier != (binary_expression "this + 0x20" identifier + number_literal)) )) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(pOVar6 + 0x14)" * (cast_expression "(undefined4 *)(pOVar6 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar6 + 0x14)" ( (binary_expression "pOVar6 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar4[4] = *(undefined4 *)pOVar7;" (assignment_expression "puVar4[4] = *(undefined4 *)pOVar7" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pOVar7" * (cast_expression "(undefined4 *)pOVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar4[5] = uVar10;" (assignment_expression "puVar4[5] = uVar10" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar15 = iVar13;" (assignment_expression "iVar15 = iVar13" identifier = identifier) ;) })) (labeled_statement "LAB_00267704:\n  pOVar17 = local_58;" statement_identifier : (expression_statement "pOVar17 = local_58;" (assignment_expression "pOVar17 = local_58" identifier = identifier) ;)) (do_statement "do {\n    pOVar7 = this;\n    pOVar9 = pOVar17;\n    pOVar17 = pOVar9 + 0x10;\n    uVar12 = *(undefined4 *)(pOVar9 + 4);\n    uVar11 = *(undefined4 *)(pOVar9 + 8);\n    uVar10 = *(undefined4 *)(pOVar9 + 0xc);\n    *(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;\n    *(undefined4 *)(pOVar7 + 4) = uVar12;\n    *(undefined4 *)(pOVar7 + 8) = uVar11;\n    *(undefined4 *)(pOVar7 + 0xc) = uVar10;\n    this = pOVar7 + 0x10;\n  } while (pOVar17 != (Output_reloc *)(local_54 + 7));" do (compound_statement "{\n    pOVar7 = this;\n    pOVar9 = pOVar17;\n    pOVar17 = pOVar9 + 0x10;\n    uVar12 = *(undefined4 *)(pOVar9 + 4);\n    uVar11 = *(undefined4 *)(pOVar9 + 8);\n    uVar10 = *(undefined4 *)(pOVar9 + 0xc);\n    *(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;\n    *(undefined4 *)(pOVar7 + 4) = uVar12;\n    *(undefined4 *)(pOVar7 + 8) = uVar11;\n    *(undefined4 *)(pOVar7 + 0xc) = uVar10;\n    this = pOVar7 + 0x10;\n  }" { (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" identifier = identifier) ;) (expression_statement "pOVar9 = pOVar17;" (assignment_expression "pOVar9 = pOVar17" identifier = identifier) ;) (expression_statement "pOVar17 = pOVar9 + 0x10;" (assignment_expression "pOVar17 = pOVar9 + 0x10" identifier = (binary_expression "pOVar9 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)(pOVar9 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar9 + 4)" identifier = (pointer_expression "*(undefined4 *)(pOVar9 + 4)" * (cast_expression "(undefined4 *)(pOVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 4)" ( (binary_expression "pOVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(pOVar9 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar9 + 8)" identifier = (pointer_expression "*(undefined4 *)(pOVar9 + 8)" * (cast_expression "(undefined4 *)(pOVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 8)" ( (binary_expression "pOVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar9 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar9 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pOVar9 + 0xc)" * (cast_expression "(undefined4 *)(pOVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0xc)" ( (binary_expression "pOVar9 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;" (assignment_expression "*(undefined4 *)pOVar7 = *(undefined4 *)pOVar9" (pointer_expression "*(undefined4 *)pOVar7" * (cast_expression "(undefined4 *)pOVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)pOVar9" * (cast_expression "(undefined4 *)pOVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(pOVar7 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar7 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar7 + 4)" * (cast_expression "(undefined4 *)(pOVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar7 + 4)" ( (binary_expression "pOVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar7 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar7 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar7 + 8)" * (cast_expression "(undefined4 *)(pOVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar7 + 8)" ( (binary_expression "pOVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pOVar7 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar7 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar7 + 0xc)" * (cast_expression "(undefined4 *)(pOVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar7 + 0xc)" ( (binary_expression "pOVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "this = pOVar7 + 0x10;" (assignment_expression "this = pOVar7 + 0x10" identifier = (binary_expression "pOVar7 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(pOVar17 != (Output_reloc *)(local_54 + 7))" ( (binary_expression "pOVar17 != (Output_reloc *)(local_54 + 7)" identifier != (cast_expression "(Output_reloc *)(local_54 + 7)" ( (type_descriptor "Output_reloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 7)" ( (binary_expression "local_54 + 7" identifier + number_literal) )))) )) ;) (expression_statement "uVar10 = *(undefined4 *)(pOVar9 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar9 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(pOVar9 + 0x14)" * (cast_expression "(undefined4 *)(pOVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar9 + 0x14)" ( (binary_expression "pOVar9 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pOVar7 + 0x10) = *(undefined4 *)pOVar17;" (assignment_expression "*(undefined4 *)(pOVar7 + 0x10) = *(undefined4 *)pOVar17" (pointer_expression "*(undefined4 *)(pOVar7 + 0x10)" * (cast_expression "(undefined4 *)(pOVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar7 + 0x10)" ( (binary_expression "pOVar7 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)pOVar17" * (cast_expression "(undefined4 *)pOVar17" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(pOVar7 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar7 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar7 + 0x14)" * (cast_expression "(undefined4 *)(pOVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar7 + 0x14)" ( (binary_expression "pOVar7 + 0x14" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ERROR IDENT : : IDENT < IDENT < IDENT : :) IDENT (ERROR < LIT) , IDENT (ERROR , LIT) , IDENT (ERROR > *) , (ERROR IDENT : : IDENT < IDENT : :) IDENT (ERROR < LIT) , IDENT (ERROR , LIT) , IDENT (ERROR >) , (ERROR IDENT : : IDENT < IDENT : :) IDENT (ERROR < LIT) , IDENT (ERROR , LIT) , IDENT (ERROR >> >>) , IDENT , (ERROR IDENT : :) IDENT (ERROR < LIT) , IDENT (ERROR , LIT) , IDENT (ERROR >) , (ERROR IDENT : : IDENT < IDENT : :) IDENT (ERROR < LIT) , IDENT (ERROR , LIT) , (ERROR IDENT > : : (function_declarator IDENT (ERROR >>) (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) { TYPE) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (update_expression (binary_expression (binary_expression IDENT < LIT) (ERROR , BOOL , LIT , BOOL) > (pointer_expression * IDENT)) --) ;) (expression_statement (update_expression (binary_expression (binary_expression IDENT < LIT) (ERROR , BOOL , LIT , BOOL) > (pointer_expression * IDENT)) --) ;) (expression_statement (update_expression (binary_expression (binary_expression IDENT < LIT) (ERROR , BOOL , LIT , BOOL) > (pointer_expression * IDENT)) --) ;) (expression_statement (update_expression (binary_expression (binary_expression IDENT < LIT) (ERROR , BOOL , LIT , BOOL) > (pointer_expression * IDENT)) --) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (update_expression (binary_expression (binary_expression IDENT < LIT) (ERROR , BOOL , LIT , BOOL) > (pointer_expression * IDENT)) --) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 = (binary_expression IDENT & 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 = (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) )) (argument_list ( (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)) )))) ;) (ERROR (assignment_expression IDENT = IDENT) : :) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (ERROR : :) (call_expression IDENT (argument_list ( IDENT , IDENT ))))))) ;) (expression_statement (assignment_expression IDENT = (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (ERROR )) IDENT))))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (ERROR )) IDENT))))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (goto_statement goto statement_identifier ;)) }))) (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) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) )) (argument_list ( (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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 = (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) )) (argument_list ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) )) (argument_list ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (ERROR (assignment_expression IDENT = IDENT) : :) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (ERROR : :) (call_expression IDENT (argument_list ( IDENT , 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 ( (parenthesized_expression ( (binary_expression (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) )) (argument_list ( (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 IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) (ERROR }))
(declaration "void std::\n     __adjust_heap<__normal_iterator<gold::Output_reloc<4,true,64,true>*,std::vector<gold::Output_reloc<4,true,64,true>,std::allocator<gold::Output_reloc<4,true,64,true>>>>,int,gold::Output_reloc<4,true,64,true>,__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,true,64,true>::Sort_relocs_comparison>>\n               (int param_1,int param_2,uint param_3)\n\n{\n  int iVar1;" (primitive_type "void") (ERROR "std::\n     __adjust_heap<__normal_iterator<gold::" (identifier "std") (: ":") (: ":") (identifier "__adjust_heap") (< "<") (identifier "__normal_iterator") (< "<") (identifier "gold") (: ":") (: ":")) (identifier "Output_reloc") (ERROR "<4" (< "<") (number_literal "4")) (, ",") (identifier "true") (ERROR ",64" (, ",") (number_literal "64")) (, ",") (identifier "true") (ERROR ">*" (> ">") (* "*")) (, ",") (ERROR "std::vector<gold::" (identifier "std") (: ":") (: ":") (identifier "vector") (< "<") (identifier "gold") (: ":") (: ":")) (identifier "Output_reloc") (ERROR "<4" (< "<") (number_literal "4")) (, ",") (identifier "true") (ERROR ",64" (, ",") (number_literal "64")) (, ",") (identifier "true") (ERROR ">" (> ">")) (, ",") (ERROR "std::allocator<gold::" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (identifier "gold") (: ":") (: ":")) (identifier "Output_reloc") (ERROR "<4" (< "<") (number_literal "4")) (, ",") (identifier "true") (ERROR ",64" (, ",") (number_literal "64")) (, ",") (identifier "true") (ERROR ">>>>" (>> ">>") (>> ">>")) (, ",") (identifier "int") (, ",") (ERROR "gold::" (identifier "gold") (: ":") (: ":")) (identifier "Output_reloc") (ERROR "<4" (< "<") (number_literal "4")) (, ",") (identifier "true") (ERROR ",64" (, ",") (number_literal "64")) (, ",") (identifier "true") (ERROR ">" (> ">")) (, ",") (ERROR "__ops::_Iter_comp_iter<gold::" (identifier "__ops") (: ":") (: ":") (identifier "_Iter_comp_iter") (< "<") (identifier "gold") (: ":") (: ":")) (identifier "Output_data_reloc_base") (ERROR "<4" (< "<") (number_literal "4")) (, ",") (identifier "true") (ERROR ",64" (, ",") (number_literal "64")) (, ",") (ERROR "true>::Sort_relocs_comparison>>\n               (int param_1,int param_2,uint param_3)\n\n{\n  int" (identifier "true") (> ">") (: ":") (: ":") (function_declarator "Sort_relocs_comparison>>\n               (int param_1,int param_2,uint param_3)" (identifier "Sort_relocs_comparison") (ERROR ">>" (>> ">>")) (parameter_list "(int param_1,int param_2,uint param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) ({ "{") (primitive_type "int")) (identifier "iVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (expression_statement "Output_reloc<9,true,64,true> *pOVar5;" (update_expression "Output_reloc<9,true,64,true> *pOVar5" (binary_expression "Output_reloc<9,true,64,true> *pOVar5" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (ERROR ",true,64,true" (, ",") (true "true") (, ",") (number_literal "64") (, ",") (true "true")) (> ">") (pointer_expression "*pOVar5" (* "*") (identifier "pOVar5"))) (-- "")) (; ";")) (expression_statement "Output_reloc<9,true,64,true> *pOVar6;" (update_expression "Output_reloc<9,true,64,true> *pOVar6" (binary_expression "Output_reloc<9,true,64,true> *pOVar6" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (ERROR ",true,64,true" (, ",") (true "true") (, ",") (number_literal "64") (, ",") (true "true")) (> ">") (pointer_expression "*pOVar6" (* "*") (identifier "pOVar6"))) (-- "")) (; ";")) (expression_statement "Output_reloc<9,true,64,true> *pOVar7;" (update_expression "Output_reloc<9,true,64,true> *pOVar7" (binary_expression "Output_reloc<9,true,64,true> *pOVar7" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (ERROR ",true,64,true" (, ",") (true "true") (, ",") (number_literal "64") (, ",") (true "true")) (> ">") (pointer_expression "*pOVar7" (* "*") (identifier "pOVar7"))) (-- "")) (; ";")) (expression_statement "Output_reloc<9,true,64,true> *pOVar8;" (update_expression "Output_reloc<9,true,64,true> *pOVar8" (binary_expression "Output_reloc<9,true,64,true> *pOVar8" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (ERROR ",true,64,true" (, ",") (true "true") (, ",") (number_literal "64") (, ",") (true "true")) (> ">") (pointer_expression "*pOVar8" (* "*") (identifier "pOVar8"))) (-- "")) (; ";")) (declaration "Output_reloc *pOVar9;" (type_identifier "Output_reloc") (pointer_declarator "*pOVar9" (* "*") (identifier "pOVar9")) (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (expression_statement "Output_reloc<9,true,64,true> *this;" (update_expression "Output_reloc<9,true,64,true> *this" (binary_expression "Output_reloc<9,true,64,true> *this" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (ERROR ",true,64,true" (, ",") (true "true") (, ",") (number_literal "64") (, ",") (true "true")) (> ">") (pointer_expression "*this" (* "*") (identifier "this"))) (-- "")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "Output_reloc *pOVar17;" (type_identifier "Output_reloc") (pointer_declarator "*pOVar17" (* "*") (identifier "pOVar17")) (; ";")) (declaration "Output_reloc local_58 [4];" (type_identifier "Output_reloc") (array_declarator "local_58 [4]" (identifier "local_58") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 local_54 [7];" (type_identifier "undefined4") (array_declarator "local_54 [7]" (identifier "local_54") ([ "[") (number_literal "7") (] "]")) (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (expression_statement "iVar13 = (int)(param_3 - 1) / 2;" (assignment_expression "iVar13 = (int)(param_3 - 1) / 2" (identifier "iVar13") (= "=") (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 "local_30 = param_3 & 1;" (assignment_expression "local_30 = param_3 & 1" (identifier "local_30") (= "=") (binary_expression "param_3 & 1" (identifier "param_3") (& "&") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" (identifier "iVar3") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_2 < iVar13) {\n    do {\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    } while (iVar15 < iVar13);\n    pOVar7 = this;\n    if (local_30 == 0) goto LAB_00267870;\n  }\n  else {\n    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);\n    iVar15 = param_2;\n    if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar7 = this;\n    if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }\n  }" (if "if") (parenthesized_expression "(param_2 < iVar13)" (( "(") (binary_expression "param_2 < iVar13" (identifier "param_2") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n    do {\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    } while (iVar15 < iVar13);\n    pOVar7 = this;\n    if (local_30 == 0) goto LAB_00267870;\n  }" ({ "{") (do_statement "do {\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    } while (iVar15 < iVar13);" (do "do") (compound_statement "{\n      iVar15 = (iVar3 + 1) * 2;\n      iVar14 = iVar15 + -1;\n      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);\n      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);\n      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);\n      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n      iVar16 = iVar14;\n      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }\n      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);\n      pOVar7 = this;\n      do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);\n      uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n      puVar4[4] = *(undefined4 *)pOVar7;\n      puVar4[5] = uVar10;\n      iVar3 = iVar15;\n    }" ({ "{") (expression_statement "iVar15 = (iVar3 + 1) * 2;" (assignment_expression "iVar15 = (iVar3 + 1) * 2" (identifier "iVar15") (= "=") (binary_expression "(iVar3 + 1) * 2" (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "iVar14 = iVar15 + -1;" (assignment_expression "iVar14 = iVar15 + -1" (identifier "iVar14") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50)" (identifier "this") (= "=") (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" (( "(") (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "true,64,true> *" (true "true") (, ",") (comma_expression "64,true> *" (number_literal "64") (, ",") (binary_expression "true> *" (true "true") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(param_1 + (iVar3 + 1) * 0x50)" (( "(") (binary_expression "param_1 + (iVar3 + 1) * 0x50" (identifier "param_1") (+ "+") (binary_expression "(iVar3 + 1) * 0x50" (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0x50"))) () ")")))) (; ";")) (expression_statement "pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);" (assignment_expression "pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28)" (identifier "pOVar17") (= "=") (cast_expression "(Output_reloc *)(param_1 + iVar14 * 0x28)" (( "(") (type_descriptor "Output_reloc *" (type_identifier "Output_reloc") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar14 * 0x28)" (( "(") (binary_expression "param_1 + iVar14 * 0x28" (identifier "param_1") (+ "+") (binary_expression "iVar14 * 0x28" (identifier "iVar14") (* "*") (number_literal "0x28"))) () ")")))) (; ";")) (ERROR "iVar1 = gold::" (assignment_expression "iVar1 = gold" (identifier "iVar1") (= "=") (identifier "gold")) (: ":") (: ":")) (expression_statement "Output_reloc<9,true,64,true>::compare(this,pOVar17);" (comma_expression "Output_reloc<9,true,64,true>::compare(this,pOVar17)" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "true,64,true>::compare(this,pOVar17)" (true "true") (, ",") (comma_expression "64,true>::compare(this,pOVar17)" (number_literal "64") (, ",") (binary_expression "true>::compare(this,pOVar17)" (true "true") (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "compare(this,pOVar17)" (identifier "compare") (argument_list "(this,pOVar17)" (( "(") (identifier "this") (, ",") (identifier "pOVar17") () ")"))))))) (; ";")) (expression_statement "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;" (assignment_expression "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17" (identifier "pOVar7") (= "=") (parenthesized_expression "(Output_reloc<9,true,64,true> *)pOVar17" (( "(") (comma_expression "Output_reloc<9,true,64,true> *)pOVar17" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "true,64,true> *)pOVar17" (true "true") (, ",") (comma_expression "64,true> *)pOVar17" (number_literal "64") (, ",") (binary_expression "true> *)pOVar17" (true "true") (> ">") (pointer_expression "*)pOVar17" (* "*") (ERROR ")" () ")")) (identifier "pOVar17")))))) () ""))) (; ";")) (expression_statement "iVar16 = iVar14;" (assignment_expression "iVar16 = iVar14" (identifier "iVar16") (= "=") (identifier "iVar14")) (; ";")) (if_statement "if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }\n      else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }" (if "if") (parenthesized_expression "((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0))" (( "(") (binary_expression "(iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)" (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pOVar7 = this, iVar16 = iVar15, iVar1 != 0)" (( "(") (comma_expression "pOVar7 = this, iVar16 = iVar15, iVar1 != 0" (assignment_expression "pOVar7 = this" (identifier "pOVar7") (= "=") (identifier "this")) (, ",") (comma_expression "iVar16 = iVar15, iVar1 != 0" (assignment_expression "iVar16 = iVar15" (identifier "iVar16") (= "=") (identifier "iVar15")) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\nLAB_002675ec:\n        this = pOVar7;\n        iVar15 = iVar16;\n      }" ({ "{") (labeled_statement "LAB_002675ec:\n        this = pOVar7;" (statement_identifier "LAB_002675ec") (: ":") (expression_statement "this = pOVar7;" (assignment_expression "this = pOVar7" (identifier "this") (= "=") (identifier "pOVar7")) (; ";"))) (expression_statement "iVar15 = iVar16;" (assignment_expression "iVar15 = iVar16" (identifier "iVar15") (= "=") (identifier "iVar16")) (; ";")) (} "}")) (else_clause "else {\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }" (else "else") (compound_statement "{\n        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;\n        iVar16 = iVar14;\n        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;\n      }" ({ "{") (expression_statement "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;" (assignment_expression "pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17" (identifier "pOVar7") (= "=") (parenthesized_expression "(Output_reloc<9,true,64,true> *)pOVar17" (( "(") (comma_expression "Output_reloc<9,true,64,true> *)pOVar17" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "true,64,true> *)pOVar17" (true "true") (, ",") (comma_expression "64,true> *)pOVar17" (number_literal "64") (, ",") (binary_expression "true> *)pOVar17" (true "true") (> ">") (pointer_expression "*)pOVar17" (* "*") (ERROR ")" () ")")) (identifier "pOVar17")))))) () ""))) (; ";")) (expression_statement "iVar16 = iVar14;" (assignment_expression "iVar16 = iVar14" (identifier "iVar16") (= "=") (identifier "iVar14")) (; ";")) (if_statement "if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;" (if "if") (parenthesized_expression "((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24)))))" (( "(") (binary_expression "(*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||\n           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))" (parenthesized_expression "(*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20))" (( "(") (binary_expression "*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)" (pointer_expression "*(uint *)(this + 0x20)" (* "*") (cast_expression "(uint *)(this + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (pointer_expression "*(uint *)(pOVar17 + 0x20)" (* "*") (cast_expression "(uint *)(pOVar17 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar17 + 0x20)" (( "(") (binary_expression "pOVar17 + 0x20" (identifier "pOVar17") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))" (( "(") (parenthesized_expression "(*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24)))" (( "(") (binary_expression "*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&\n            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))" (binary_expression "*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20)" (pointer_expression "*(uint *)(pOVar17 + 0x20)" (* "*") (cast_expression "(uint *)(pOVar17 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar17 + 0x20)" (( "(") (binary_expression "pOVar17 + 0x20" (identifier "pOVar17") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (pointer_expression "*(uint *)(this + 0x20)" (* "*") (cast_expression "(uint *)(this + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "(*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))" (( "(") (binary_expression "*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24)" (pointer_expression "*(uint *)(this + 0x24)" (* "*") (cast_expression "(uint *)(this + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")")))) (< "<") (pointer_expression "*(uint *)(pOVar17 + 0x24)" (* "*") (cast_expression "(uint *)(pOVar17 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar17 + 0x24)" (( "(") (binary_expression "pOVar17 + 0x24" (identifier "pOVar17") (+ "+") (number_literal "0x24")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_002675ec;" (goto "goto") (statement_identifier "LAB_002675ec") (; ";"))) (} "}")))) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(param_1 + iVar3 * 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar3 * 0x28)" (( "(") (binary_expression "param_1 + iVar3 * 0x28" (identifier "param_1") (+ "+") (binary_expression "iVar3 * 0x28" (identifier "iVar3") (* "*") (number_literal "0x28"))) () ")")))) (; ";")) (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" (identifier "pOVar7") (= "=") (identifier "this")) (; ";")) (do_statement "do {\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      } while (pOVar7 != this + 0x20);" (do "do") (compound_statement "{\n        pOVar6 = pOVar7;\n        puVar4 = puVar2;\n        pOVar7 = pOVar6 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar6 + 4);\n        uVar11 = *(undefined4 *)(pOVar6 + 8);\n        uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n        *puVar4 = *(undefined4 *)pOVar6;\n        puVar4[1] = uVar12;\n        puVar4[2] = uVar11;\n        puVar4[3] = uVar10;\n        puVar2 = puVar4 + 4;\n      }" ({ "{") (expression_statement "pOVar6 = pOVar7;" (assignment_expression "pOVar6 = pOVar7" (identifier "pOVar6") (= "=") (identifier "pOVar7")) (; ";")) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" (identifier "puVar4") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "pOVar7 = pOVar6 + 0x10;" (assignment_expression "pOVar7 = pOVar6 + 0x10" (identifier "pOVar7") (= "=") (binary_expression "pOVar6 + 0x10" (identifier "pOVar6") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)(pOVar6 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar6 + 4)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(pOVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(pOVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar6 + 4)" (( "(") (binary_expression "pOVar6 + 4" (identifier "pOVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar11 = *(undefined4 *)(pOVar6 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar6 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(pOVar6 + 8)" (* "*") (cast_expression "(undefined4 *)(pOVar6 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar6 + 8)" (( "(") (binary_expression "pOVar6 + 8" (identifier "pOVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0xc)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(pOVar6 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pOVar6 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar6 + 0xc)" (( "(") (binary_expression "pOVar6 + 0xc" (identifier "pOVar6") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*puVar4 = *(undefined4 *)pOVar6;" (assignment_expression "*puVar4 = *(undefined4 *)pOVar6" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*(undefined4 *)pOVar6" (* "*") (cast_expression "(undefined4 *)pOVar6" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar6")))) (; ";")) (expression_statement "puVar4[1] = uVar12;" (assignment_expression "puVar4[1] = uVar12" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar4[2] = uVar11;" (assignment_expression "puVar4[2] = uVar11" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar4[3] = uVar10;" (assignment_expression "puVar4[3] = uVar10" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" (identifier "puVar2") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pOVar7 != this + 0x20)" (( "(") (binary_expression "pOVar7 != this + 0x20" (identifier "pOVar7") (!= "!=") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20"))) () ")")) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0x14)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(pOVar6 + 0x14)" (* "*") (cast_expression "(undefined4 *)(pOVar6 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar6 + 0x14)" (( "(") (binary_expression "pOVar6 + 0x14" (identifier "pOVar6") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "puVar4[4] = *(undefined4 *)pOVar7;" (assignment_expression "puVar4[4] = *(undefined4 *)pOVar7" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)pOVar7" (* "*") (cast_expression "(undefined4 *)pOVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar7")))) (; ";")) (expression_statement "puVar4[5] = uVar10;" (assignment_expression "puVar4[5] = uVar10" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar3 = iVar15;" (assignment_expression "iVar3 = iVar15" (identifier "iVar3") (= "=") (identifier "iVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar15 < iVar13)" (( "(") (binary_expression "iVar15 < iVar13" (identifier "iVar15") (< "<") (identifier "iVar13")) () ")")) (; ";")) (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" (identifier "pOVar7") (= "=") (identifier "this")) (; ";")) (if_statement "if (local_30 == 0) goto LAB_00267870;" (if "if") (parenthesized_expression "(local_30 == 0)" (( "(") (binary_expression "local_30 == 0" (identifier "local_30") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00267870;" (goto "goto") (statement_identifier "LAB_00267870") (; ";"))) (} "}")) (else_clause "else {\n    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);\n    iVar15 = param_2;\n    if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar7 = this;\n    if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }\n  }" (else "else") (compound_statement "{\n    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);\n    iVar15 = param_2;\n    if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }\nLAB_00267870:\n    pOVar7 = this;\n    if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }\n  }" ({ "{") (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28)" (identifier "this") (= "=") (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" (( "(") (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "true,64,true> *" (true "true") (, ",") (comma_expression "64,true> *" (number_literal "64") (, ",") (binary_expression "true> *" (true "true") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(param_1 + param_2 * 0x28)" (( "(") (binary_expression "param_1 + param_2 * 0x28" (identifier "param_1") (+ "+") (binary_expression "param_2 * 0x28" (identifier "param_2") (* "*") (number_literal "0x28"))) () ")")))) (; ";")) (expression_statement "iVar15 = param_2;" (assignment_expression "iVar15 = param_2" (identifier "iVar15") (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((param_3 & 1) != 0) {\n      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\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      puVar2 = (undefined4 *)&stack0x00000010;\n      pOVar17 = local_58;\n      do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);\n      uVar10 = puVar4[5];\n      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;\n      *(undefined4 *)(pOVar9 + 0x14) = uVar10;\n      goto LAB_00267704;\n    }" ({ "{") (expression_statement "puVar2 = (undefined4 *)&stack0x00000010;" (assignment_expression "puVar2 = (undefined4 *)&stack0x00000010" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)&stack0x00000010" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&stack0x00000010" (& "&") (identifier "stack0x00000010")))) (; ";")) (expression_statement "pOVar17 = local_58;" (assignment_expression "pOVar17 = local_58" (identifier "pOVar17") (= "=") (identifier "local_58")) (; ";")) (do_statement "do {\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      } while (puVar2 != (undefined4 *)&stack0x00000030);" (do "do") (compound_statement "{\n        pOVar9 = pOVar17;\n        puVar4 = puVar2;\n        puVar2 = puVar4 + 4;\n        uVar12 = puVar4[1];\n        uVar11 = puVar4[2];\n        uVar10 = puVar4[3];\n        *(undefined4 *)pOVar9 = *puVar4;\n        *(undefined4 *)(pOVar9 + 4) = uVar12;\n        *(undefined4 *)(pOVar9 + 8) = uVar11;\n        *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n        pOVar17 = pOVar9 + 0x10;\n      }" ({ "{") (expression_statement "pOVar9 = pOVar17;" (assignment_expression "pOVar9 = pOVar17" (identifier "pOVar9") (= "=") (identifier "pOVar17")) (; ";")) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" (identifier "puVar4") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" (identifier "puVar2") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar12 = puVar4[1];" (assignment_expression "uVar12 = puVar4[1]" (identifier "uVar12") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar11 = puVar4[2];" (assignment_expression "uVar11 = puVar4[2]" (identifier "uVar11") (= "=") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar4[3];" (assignment_expression "uVar10 = puVar4[3]" (identifier "uVar10") (= "=") (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)pOVar9 = *puVar4;" (assignment_expression "*(undefined4 *)pOVar9 = *puVar4" (pointer_expression "*(undefined4 *)pOVar9" (* "*") (cast_expression "(undefined4 *)pOVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar9"))) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "*(undefined4 *)(pOVar9 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar9 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 4)" (( "(") (binary_expression "pOVar9 + 4" (identifier "pOVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined4 *)(pOVar9 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar9 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar9 + 8)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 8)" (( "(") (binary_expression "pOVar9 + 8" (identifier "pOVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(pOVar9 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 0xc)" (( "(") (binary_expression "pOVar9 + 0xc" (identifier "pOVar9") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pOVar17 = pOVar9 + 0x10;" (assignment_expression "pOVar17 = pOVar9 + 0x10" (identifier "pOVar17") (= "=") (binary_expression "pOVar9 + 0x10" (identifier "pOVar9") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar2 != (undefined4 *)&stack0x00000030)" (( "(") (binary_expression "puVar2 != (undefined4 *)&stack0x00000030" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)&stack0x00000030" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&stack0x00000030" (& "&") (identifier "stack0x00000030")))) () ")")) (; ";")) (expression_statement "uVar10 = puVar4[5];" (assignment_expression "uVar10 = puVar4[5]" (identifier "uVar10") (= "=") (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(pOVar9 + 0x10) = *puVar2;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x10) = *puVar2" (pointer_expression "*(undefined4 *)(pOVar9 + 0x10)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 0x10)" (( "(") (binary_expression "pOVar9 + 0x10" (identifier "pOVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "*(undefined4 *)(pOVar9 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0x14)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 0x14)" (( "(") (binary_expression "pOVar9 + 0x14" (identifier "pOVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (goto_statement "goto LAB_00267704;" (goto "goto") (statement_identifier "LAB_00267704") (; ";")) (} "}"))) (labeled_statement "LAB_00267870:\n    pOVar7 = this;" (statement_identifier "LAB_00267870") (: ":") (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" (identifier "pOVar7") (= "=") (identifier "this")) (; ";"))) (if_statement "if ((int)(param_3 - 2) / 2 == iVar15) {\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }" (if "if") (parenthesized_expression "((int)(param_3 - 2) / 2 == iVar15)" (( "(") (binary_expression "(int)(param_3 - 2) / 2 == iVar15" (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 "iVar15")) () ")")) (compound_statement "{\n      iVar15 = iVar15 * 2 + 1;\n      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      pOVar6 = pOVar7;\n      do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);\n      uVar10 = *(undefined4 *)(pOVar5 + 0x14);\n      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;\n      *(undefined4 *)(pOVar8 + 0x14) = uVar10;\n    }" ({ "{") (expression_statement "iVar15 = iVar15 * 2 + 1;" (assignment_expression "iVar15 = iVar15 * 2 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 * 2 + 1" (binary_expression "iVar15 * 2" (identifier "iVar15") (* "*") (number_literal "2")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);" (assignment_expression "pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" (identifier "pOVar7") (= "=") (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" (( "(") (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "true,64,true> *" (true "true") (, ",") (comma_expression "64,true> *" (number_literal "64") (, ",") (binary_expression "true> *" (true "true") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(param_1 + iVar15 * 0x28)" (( "(") (binary_expression "param_1 + iVar15 * 0x28" (identifier "param_1") (+ "+") (binary_expression "iVar15 * 0x28" (identifier "iVar15") (* "*") (number_literal "0x28"))) () ")")))) (; ";")) (expression_statement "pOVar6 = pOVar7;" (assignment_expression "pOVar6 = pOVar7" (identifier "pOVar6") (= "=") (identifier "pOVar7")) (; ";")) (do_statement "do {\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      } while (pOVar6 != pOVar7 + 0x20);" (do "do") (compound_statement "{\n        pOVar8 = this;\n        pOVar5 = pOVar6;\n        pOVar6 = pOVar5 + 0x10;\n        uVar12 = *(undefined4 *)(pOVar5 + 4);\n        uVar11 = *(undefined4 *)(pOVar5 + 8);\n        uVar10 = *(undefined4 *)(pOVar5 + 0xc);\n        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;\n        *(undefined4 *)(pOVar8 + 4) = uVar12;\n        *(undefined4 *)(pOVar8 + 8) = uVar11;\n        *(undefined4 *)(pOVar8 + 0xc) = uVar10;\n        this = pOVar8 + 0x10;\n      }" ({ "{") (expression_statement "pOVar8 = this;" (assignment_expression "pOVar8 = this" (identifier "pOVar8") (= "=") (identifier "this")) (; ";")) (expression_statement "pOVar5 = pOVar6;" (assignment_expression "pOVar5 = pOVar6" (identifier "pOVar5") (= "=") (identifier "pOVar6")) (; ";")) (expression_statement "pOVar6 = pOVar5 + 0x10;" (assignment_expression "pOVar6 = pOVar5 + 0x10" (identifier "pOVar6") (= "=") (binary_expression "pOVar5 + 0x10" (identifier "pOVar5") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)(pOVar5 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar5 + 4)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(pOVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(pOVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar5 + 4)" (( "(") (binary_expression "pOVar5 + 4" (identifier "pOVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar11 = *(undefined4 *)(pOVar5 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar5 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(pOVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(pOVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar5 + 8)" (( "(") (binary_expression "pOVar5 + 8" (identifier "pOVar5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(pOVar5 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar5 + 0xc)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(pOVar5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pOVar5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar5 + 0xc)" (( "(") (binary_expression "pOVar5 + 0xc" (identifier "pOVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;" (assignment_expression "*(undefined4 *)pOVar8 = *(undefined4 *)pOVar5" (pointer_expression "*(undefined4 *)pOVar8" (* "*") (cast_expression "(undefined4 *)pOVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar8"))) (= "=") (pointer_expression "*(undefined4 *)pOVar5" (* "*") (cast_expression "(undefined4 *)pOVar5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar5")))) (; ";")) (expression_statement "*(undefined4 *)(pOVar8 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar8 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar8 + 4)" (* "*") (cast_expression "(undefined4 *)(pOVar8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 4)" (( "(") (binary_expression "pOVar8 + 4" (identifier "pOVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined4 *)(pOVar8 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar8 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar8 + 8)" (* "*") (cast_expression "(undefined4 *)(pOVar8 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 8)" (( "(") (binary_expression "pOVar8 + 8" (identifier "pOVar8") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(pOVar8 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar8 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar8 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pOVar8 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 0xc)" (( "(") (binary_expression "pOVar8 + 0xc" (identifier "pOVar8") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "this = pOVar8 + 0x10;" (assignment_expression "this = pOVar8 + 0x10" (identifier "this") (= "=") (binary_expression "pOVar8 + 0x10" (identifier "pOVar8") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pOVar6 != pOVar7 + 0x20)" (( "(") (binary_expression "pOVar6 != pOVar7 + 0x20" (identifier "pOVar6") (!= "!=") (binary_expression "pOVar7 + 0x20" (identifier "pOVar7") (+ "+") (number_literal "0x20"))) () ")")) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(pOVar5 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar5 + 0x14)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(pOVar5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(pOVar5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar5 + 0x14)" (( "(") (binary_expression "pOVar5 + 0x14" (identifier "pOVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;" (assignment_expression "*(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6" (pointer_expression "*(undefined4 *)(pOVar8 + 0x10)" (* "*") (cast_expression "(undefined4 *)(pOVar8 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 0x10)" (( "(") (binary_expression "pOVar8 + 0x10" (identifier "pOVar8") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)pOVar6" (* "*") (cast_expression "(undefined4 *)pOVar6" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar6")))) (; ";")) (expression_statement "*(undefined4 *)(pOVar8 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar8 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar8 + 0x14)" (* "*") (cast_expression "(undefined4 *)(pOVar8 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 0x14)" (( "(") (binary_expression "pOVar8 + 0x14" (identifier "pOVar8") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar2 = (undefined4 *)&stack0x00000010;" (assignment_expression "puVar2 = (undefined4 *)&stack0x00000010" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)&stack0x00000010" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&stack0x00000010" (& "&") (identifier "stack0x00000010")))) (; ";")) (expression_statement "pOVar17 = local_58;" (assignment_expression "pOVar17 = local_58" (identifier "pOVar17") (= "=") (identifier "local_58")) (; ";")) (do_statement "do {\n    pOVar9 = pOVar17;\n    puVar4 = puVar2;\n    puVar2 = puVar4 + 4;\n    uVar12 = puVar4[1];\n    uVar11 = puVar4[2];\n    uVar10 = puVar4[3];\n    *(undefined4 *)pOVar9 = *puVar4;\n    *(undefined4 *)(pOVar9 + 4) = uVar12;\n    *(undefined4 *)(pOVar9 + 8) = uVar11;\n    *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n    pOVar17 = pOVar9 + 0x10;\n  } while (puVar2 != (undefined4 *)&stack0x00000030);" (do "do") (compound_statement "{\n    pOVar9 = pOVar17;\n    puVar4 = puVar2;\n    puVar2 = puVar4 + 4;\n    uVar12 = puVar4[1];\n    uVar11 = puVar4[2];\n    uVar10 = puVar4[3];\n    *(undefined4 *)pOVar9 = *puVar4;\n    *(undefined4 *)(pOVar9 + 4) = uVar12;\n    *(undefined4 *)(pOVar9 + 8) = uVar11;\n    *(undefined4 *)(pOVar9 + 0xc) = uVar10;\n    pOVar17 = pOVar9 + 0x10;\n  }" ({ "{") (expression_statement "pOVar9 = pOVar17;" (assignment_expression "pOVar9 = pOVar17" (identifier "pOVar9") (= "=") (identifier "pOVar17")) (; ";")) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" (identifier "puVar4") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" (identifier "puVar2") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar12 = puVar4[1];" (assignment_expression "uVar12 = puVar4[1]" (identifier "uVar12") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar11 = puVar4[2];" (assignment_expression "uVar11 = puVar4[2]" (identifier "uVar11") (= "=") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar4[3];" (assignment_expression "uVar10 = puVar4[3]" (identifier "uVar10") (= "=") (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)pOVar9 = *puVar4;" (assignment_expression "*(undefined4 *)pOVar9 = *puVar4" (pointer_expression "*(undefined4 *)pOVar9" (* "*") (cast_expression "(undefined4 *)pOVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar9"))) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "*(undefined4 *)(pOVar9 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar9 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 4)" (( "(") (binary_expression "pOVar9 + 4" (identifier "pOVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined4 *)(pOVar9 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar9 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar9 + 8)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 8)" (( "(") (binary_expression "pOVar9 + 8" (identifier "pOVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(pOVar9 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 0xc)" (( "(") (binary_expression "pOVar9 + 0xc" (identifier "pOVar9") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pOVar17 = pOVar9 + 0x10;" (assignment_expression "pOVar17 = pOVar9 + 0x10" (identifier "pOVar17") (= "=") (binary_expression "pOVar9 + 0x10" (identifier "pOVar9") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar2 != (undefined4 *)&stack0x00000030)" (( "(") (binary_expression "puVar2 != (undefined4 *)&stack0x00000030" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)&stack0x00000030" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&stack0x00000030" (& "&") (identifier "stack0x00000030")))) () ")")) (; ";")) (expression_statement "uVar10 = puVar4[5];" (assignment_expression "uVar10 = puVar4[5]" (identifier "uVar10") (= "=") (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(pOVar9 + 0x10) = *puVar2;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x10) = *puVar2" (pointer_expression "*(undefined4 *)(pOVar9 + 0x10)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 0x10)" (( "(") (binary_expression "pOVar9 + 0x10" (identifier "pOVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "*(undefined4 *)(pOVar9 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar9 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar9 + 0x14)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 0x14)" (( "(") (binary_expression "pOVar9 + 0x14" (identifier "pOVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "this = pOVar7;" (assignment_expression "this = pOVar7" (identifier "this") (= "=") (identifier "pOVar7")) (; ";")) (while_statement "while (param_2 < iVar15) {\n    iVar13 = (iVar15 + -1) / 2;\n    this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);\n    iVar3 = gold::Output_reloc<9,true,64,true>::compare(this,local_58);\n    if ((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }\n    puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);\n    pOVar7 = this;\n    do {\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    } while (pOVar7 != this + 0x20);\n    uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n    puVar4[4] = *(undefined4 *)pOVar7;\n    puVar4[5] = uVar10;\n    iVar15 = iVar13;\n  }" (while "while") (parenthesized_expression "(param_2 < iVar15)" (( "(") (binary_expression "param_2 < iVar15" (identifier "param_2") (< "<") (identifier "iVar15")) () ")")) (compound_statement "{\n    iVar13 = (iVar15 + -1) / 2;\n    this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);\n    iVar3 = gold::Output_reloc<9,true,64,true>::compare(this,local_58);\n    if ((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }\n    puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);\n    pOVar7 = this;\n    do {\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    } while (pOVar7 != this + 0x20);\n    uVar10 = *(undefined4 *)(pOVar6 + 0x14);\n    puVar4[4] = *(undefined4 *)pOVar7;\n    puVar4[5] = uVar10;\n    iVar15 = iVar13;\n  }" ({ "{") (expression_statement "iVar13 = (iVar15 + -1) / 2;" (assignment_expression "iVar13 = (iVar15 + -1) / 2" (identifier "iVar13") (= "=") (binary_expression "(iVar15 + -1) / 2" (parenthesized_expression "(iVar15 + -1)" (( "(") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28)" (identifier "this") (= "=") (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" (( "(") (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "true,64,true> *" (true "true") (, ",") (comma_expression "64,true> *" (number_literal "64") (, ",") (binary_expression "true> *" (true "true") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(param_1 + iVar13 * 0x28)" (( "(") (binary_expression "param_1 + iVar13 * 0x28" (identifier "param_1") (+ "+") (binary_expression "iVar13 * 0x28" (identifier "iVar13") (* "*") (number_literal "0x28"))) () ")")))) (; ";")) (ERROR "iVar3 = gold::" (assignment_expression "iVar3 = gold" (identifier "iVar3") (= "=") (identifier "gold")) (: ":") (: ":")) (expression_statement "Output_reloc<9,true,64,true>::compare(this,local_58);" (comma_expression "Output_reloc<9,true,64,true>::compare(this,local_58)" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "true,64,true>::compare(this,local_58)" (true "true") (, ",") (comma_expression "64,true>::compare(this,local_58)" (number_literal "64") (, ",") (binary_expression "true>::compare(this,local_58)" (true "true") (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "compare(this,local_58)" (identifier "compare") (argument_list "(this,local_58)" (( "(") (identifier "this") (, ",") (identifier "local_58") () ")"))))))) (; ";")) (if_statement "if ((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }" (if "if") (parenthesized_expression "((-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))))))))" (( "(") (binary_expression "(-1 < iVar3) &&\n       ((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))" (parenthesized_expression "(-1 < iVar3)" (( "(") (binary_expression "-1 < iVar3" (number_literal "-1") (< "<") (identifier "iVar3")) () ")")) (&& "&&") (parenthesized_expression "((iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))" (( "(") (parenthesized_expression "(iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))))))" (( "(") (binary_expression "iVar3 != 0 ||\n        ((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))" (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))" (( "(") (parenthesized_expression "(local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))))" (( "(") (binary_expression "local_38 <= *(uint *)(this + 0x20) &&\n         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))" (binary_expression "local_38 <= *(uint *)(this + 0x20)" (identifier "local_38") (<= "<=") (pointer_expression "*(uint *)(this + 0x20)" (* "*") (cast_expression "(uint *)(this + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))" (( "(") (parenthesized_expression "(local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24)))" (( "(") (binary_expression "local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))" (binary_expression "local_38 != *(uint *)(this + 0x20)" (identifier "local_38") (!= "!=") (pointer_expression "*(uint *)(this + 0x20)" (* "*") (cast_expression "(uint *)(this + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")"))))) (|| "||") (parenthesized_expression "(local_34 <= *(uint *)(this + 0x24))" (( "(") (binary_expression "local_34 <= *(uint *)(this + 0x24)" (identifier "local_34") (<= "<=") (pointer_expression "*(uint *)(this + 0x24)" (* "*") (cast_expression "(uint *)(this + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);\n      break;\n    }" ({ "{") (expression_statement "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);" (assignment_expression "this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" (identifier "this") (= "=") (call_expression "(Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" (( "(") (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "true,64,true> *" (true "true") (, ",") (comma_expression "64,true> *" (number_literal "64") (, ",") (binary_expression "true> *" (true "true") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(param_1 + iVar15 * 0x28)" (( "(") (binary_expression "param_1 + iVar15 * 0x28" (identifier "param_1") (+ "+") (binary_expression "iVar15 * 0x28" (identifier "iVar15") (* "*") (number_literal "0x28"))) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);" (assignment_expression "puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(param_1 + iVar15 * 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar15 * 0x28)" (( "(") (binary_expression "param_1 + iVar15 * 0x28" (identifier "param_1") (+ "+") (binary_expression "iVar15 * 0x28" (identifier "iVar15") (* "*") (number_literal "0x28"))) () ")")))) (; ";")) (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" (identifier "pOVar7") (= "=") (identifier "this")) (; ";")) (do_statement "do {\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    } while (pOVar7 != this + 0x20);" (do "do") (compound_statement "{\n      pOVar6 = pOVar7;\n      puVar4 = puVar2;\n      pOVar7 = pOVar6 + 0x10;\n      uVar12 = *(undefined4 *)(pOVar6 + 4);\n      uVar11 = *(undefined4 *)(pOVar6 + 8);\n      uVar10 = *(undefined4 *)(pOVar6 + 0xc);\n      *puVar4 = *(undefined4 *)pOVar6;\n      puVar4[1] = uVar12;\n      puVar4[2] = uVar11;\n      puVar4[3] = uVar10;\n      puVar2 = puVar4 + 4;\n    }" ({ "{") (expression_statement "pOVar6 = pOVar7;" (assignment_expression "pOVar6 = pOVar7" (identifier "pOVar6") (= "=") (identifier "pOVar7")) (; ";")) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" (identifier "puVar4") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "pOVar7 = pOVar6 + 0x10;" (assignment_expression "pOVar7 = pOVar6 + 0x10" (identifier "pOVar7") (= "=") (binary_expression "pOVar6 + 0x10" (identifier "pOVar6") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)(pOVar6 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar6 + 4)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(pOVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(pOVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar6 + 4)" (( "(") (binary_expression "pOVar6 + 4" (identifier "pOVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar11 = *(undefined4 *)(pOVar6 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar6 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(pOVar6 + 8)" (* "*") (cast_expression "(undefined4 *)(pOVar6 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar6 + 8)" (( "(") (binary_expression "pOVar6 + 8" (identifier "pOVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0xc)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(pOVar6 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pOVar6 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar6 + 0xc)" (( "(") (binary_expression "pOVar6 + 0xc" (identifier "pOVar6") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*puVar4 = *(undefined4 *)pOVar6;" (assignment_expression "*puVar4 = *(undefined4 *)pOVar6" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*(undefined4 *)pOVar6" (* "*") (cast_expression "(undefined4 *)pOVar6" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar6")))) (; ";")) (expression_statement "puVar4[1] = uVar12;" (assignment_expression "puVar4[1] = uVar12" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar4[2] = uVar11;" (assignment_expression "puVar4[2] = uVar11" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar4[3] = uVar10;" (assignment_expression "puVar4[3] = uVar10" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar2 = puVar4 + 4;" (assignment_expression "puVar2 = puVar4 + 4" (identifier "puVar2") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pOVar7 != this + 0x20)" (( "(") (binary_expression "pOVar7 != this + 0x20" (identifier "pOVar7") (!= "!=") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20"))) () ")")) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(pOVar6 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar6 + 0x14)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(pOVar6 + 0x14)" (* "*") (cast_expression "(undefined4 *)(pOVar6 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar6 + 0x14)" (( "(") (binary_expression "pOVar6 + 0x14" (identifier "pOVar6") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "puVar4[4] = *(undefined4 *)pOVar7;" (assignment_expression "puVar4[4] = *(undefined4 *)pOVar7" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)pOVar7" (* "*") (cast_expression "(undefined4 *)pOVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar7")))) (; ";")) (expression_statement "puVar4[5] = uVar10;" (assignment_expression "puVar4[5] = uVar10" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar15 = iVar13;" (assignment_expression "iVar15 = iVar13" (identifier "iVar15") (= "=") (identifier "iVar13")) (; ";")) (} "}"))) (labeled_statement "LAB_00267704:\n  pOVar17 = local_58;" (statement_identifier "LAB_00267704") (: ":") (expression_statement "pOVar17 = local_58;" (assignment_expression "pOVar17 = local_58" (identifier "pOVar17") (= "=") (identifier "local_58")) (; ";"))) (do_statement "do {\n    pOVar7 = this;\n    pOVar9 = pOVar17;\n    pOVar17 = pOVar9 + 0x10;\n    uVar12 = *(undefined4 *)(pOVar9 + 4);\n    uVar11 = *(undefined4 *)(pOVar9 + 8);\n    uVar10 = *(undefined4 *)(pOVar9 + 0xc);\n    *(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;\n    *(undefined4 *)(pOVar7 + 4) = uVar12;\n    *(undefined4 *)(pOVar7 + 8) = uVar11;\n    *(undefined4 *)(pOVar7 + 0xc) = uVar10;\n    this = pOVar7 + 0x10;\n  } while (pOVar17 != (Output_reloc *)(local_54 + 7));" (do "do") (compound_statement "{\n    pOVar7 = this;\n    pOVar9 = pOVar17;\n    pOVar17 = pOVar9 + 0x10;\n    uVar12 = *(undefined4 *)(pOVar9 + 4);\n    uVar11 = *(undefined4 *)(pOVar9 + 8);\n    uVar10 = *(undefined4 *)(pOVar9 + 0xc);\n    *(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;\n    *(undefined4 *)(pOVar7 + 4) = uVar12;\n    *(undefined4 *)(pOVar7 + 8) = uVar11;\n    *(undefined4 *)(pOVar7 + 0xc) = uVar10;\n    this = pOVar7 + 0x10;\n  }" ({ "{") (expression_statement "pOVar7 = this;" (assignment_expression "pOVar7 = this" (identifier "pOVar7") (= "=") (identifier "this")) (; ";")) (expression_statement "pOVar9 = pOVar17;" (assignment_expression "pOVar9 = pOVar17" (identifier "pOVar9") (= "=") (identifier "pOVar17")) (; ";")) (expression_statement "pOVar17 = pOVar9 + 0x10;" (assignment_expression "pOVar17 = pOVar9 + 0x10" (identifier "pOVar17") (= "=") (binary_expression "pOVar9 + 0x10" (identifier "pOVar9") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)(pOVar9 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pOVar9 + 4)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(pOVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 4)" (( "(") (binary_expression "pOVar9 + 4" (identifier "pOVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar11 = *(undefined4 *)(pOVar9 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(pOVar9 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(pOVar9 + 8)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 8)" (( "(") (binary_expression "pOVar9 + 8" (identifier "pOVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(pOVar9 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar9 + 0xc)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(pOVar9 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 0xc)" (( "(") (binary_expression "pOVar9 + 0xc" (identifier "pOVar9") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;" (assignment_expression "*(undefined4 *)pOVar7 = *(undefined4 *)pOVar9" (pointer_expression "*(undefined4 *)pOVar7" (* "*") (cast_expression "(undefined4 *)pOVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar7"))) (= "=") (pointer_expression "*(undefined4 *)pOVar9" (* "*") (cast_expression "(undefined4 *)pOVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar9")))) (; ";")) (expression_statement "*(undefined4 *)(pOVar7 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(pOVar7 + 4) = uVar12" (pointer_expression "*(undefined4 *)(pOVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(pOVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar7 + 4)" (( "(") (binary_expression "pOVar7 + 4" (identifier "pOVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined4 *)(pOVar7 + 8) = uVar11;" (assignment_expression "*(undefined4 *)(pOVar7 + 8) = uVar11" (pointer_expression "*(undefined4 *)(pOVar7 + 8)" (* "*") (cast_expression "(undefined4 *)(pOVar7 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar7 + 8)" (( "(") (binary_expression "pOVar7 + 8" (identifier "pOVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(pOVar7 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar7 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(pOVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pOVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar7 + 0xc)" (( "(") (binary_expression "pOVar7 + 0xc" (identifier "pOVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "this = pOVar7 + 0x10;" (assignment_expression "this = pOVar7 + 0x10" (identifier "this") (= "=") (binary_expression "pOVar7 + 0x10" (identifier "pOVar7") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pOVar17 != (Output_reloc *)(local_54 + 7))" (( "(") (binary_expression "pOVar17 != (Output_reloc *)(local_54 + 7)" (identifier "pOVar17") (!= "!=") (cast_expression "(Output_reloc *)(local_54 + 7)" (( "(") (type_descriptor "Output_reloc *" (type_identifier "Output_reloc") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 7)" (( "(") (binary_expression "local_54 + 7" (identifier "local_54") (+ "+") (number_literal "7")) () ")")))) () ")")) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(pOVar9 + 0x14);" (assignment_expression "uVar10 = *(undefined4 *)(pOVar9 + 0x14)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(pOVar9 + 0x14)" (* "*") (cast_expression "(undefined4 *)(pOVar9 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar9 + 0x14)" (( "(") (binary_expression "pOVar9 + 0x14" (identifier "pOVar9") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pOVar7 + 0x10) = *(undefined4 *)pOVar17;" (assignment_expression "*(undefined4 *)(pOVar7 + 0x10) = *(undefined4 *)pOVar17" (pointer_expression "*(undefined4 *)(pOVar7 + 0x10)" (* "*") (cast_expression "(undefined4 *)(pOVar7 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar7 + 0x10)" (( "(") (binary_expression "pOVar7 + 0x10" (identifier "pOVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)pOVar17" (* "*") (cast_expression "(undefined4 *)pOVar17" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar17")))) (; ";")) (expression_statement "*(undefined4 *)(pOVar7 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(pOVar7 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(pOVar7 + 0x14)" (* "*") (cast_expression "(undefined4 *)(pOVar7 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar7 + 0x14)" (( "(") (binary_expression "pOVar7 + 0x14" (identifier "pOVar7") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original name: __adjust_heap<__gnu_cxx::__normal_iterator<gold::Output_reloc<4, true, 64,
   true>*, std::vector<gold::Output_reloc<4, true, 64, true>, std::allocator<gold::Output_reloc<4,
   true, 64, true> > > >, int, gold::Output_reloc<4, true, 64, true>,
   __gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4, true, 64,
   true>::Sort_relocs_comparison> > */

void std::
     __adjust_heap<__gnu_cxx::__normal_iterator<gold::var_1<4,var_8,_64,var_8>*,_std::vector<gold::var_1<4,var_8,_64,var_8>,_std::allocator<gold::var_1<4,var_8,_64,var_8>_>_>_>,_int,_gold::var_1<4,var_8,_64,var_8>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,var_8,_64,var_8>::Sort_relocs_comparison>_>
               (int var_9,int var_4,type_4 var_3)

{
  Address AVar1;
  int var_12;
  type_1 *var_19;
  int var_6;
  type_1 *var_13;
  var_1<9,var_8,_64,var_8> *pOVar6;
  type_1 *var_17;
  var_1<9,var_8,_64,var_8> *pOVar8;
  type_1 *var_18;
  type_1 aVar10;
  type_1 aVar11;
  type_2 uVar12;
  type_1 aVar13;
  type_3 aVar14;
  var_1<9,var_8,_64,var_8> *var_15;
  var_1<9,var_8,_64,var_8> *var_14;
  int var_5;
  int var_10;
  int var_7;
  int iVar19;
  var_1<9,var_8,_64,var_8> *var_20;
  type_1 var_22 [9];
  var_2<64,var_8> *var_21;
  type_4 var_16;
  
  var_5 = (int)(var_3 - 1) / 2;
  var_16 = var_3 & 1;
  var_6 = var_4;
  if (var_4 < var_5) {
    do {
      var_7 = (var_6 + 1) * 2;
      var_10 = var_7 + -1;
      var_15 = (var_1<9,var_8,_64,var_8> *)(var_9 + (var_6 + 1) * 0x50);
      var_20 = (var_1<9,var_8,_64,var_8> *)(var_9 + var_10 * 0x28);
      var_12 = gold::var_1<9,var_8,_64,var_8>::var_11(var_15,var_20);
      var_14 = var_20;
      iVar19 = var_10;
      if ((var_12 < 0) || (var_14 = var_15, iVar19 = var_7, var_12 != 0)) {
LAB_002675ec:
        var_15 = var_14;
        var_7 = iVar19;
      }
      else {
        var_14 = var_20;
        iVar19 = var_10;
        if ((var_15[1].u1_.relobj < var_20[1].u1_.relobj) ||
           ((var_20[1].u1_.relobj == var_15[1].u1_.relobj &&
            (var_15[1].u2_.relobj < var_20[1].u2_.relobj)))) goto LAB_002675ec;
      }
      var_19 = (type_1 *)(var_9 + var_6 * 0x28);
      var_14 = var_15;
      do {
        var_20 = var_14;
        var_13 = var_19;
        var_14 = (var_1<9,var_8,_64,var_8> *)&var_20->local_sym_index_;
        aVar13 = *(type_1 *)&var_20->u2_;
        aVar11 = *(type_1 *)&var_20->address_;
        aVar10 = *(type_1 *)((int)&var_20->address_ + 4);
        *var_13 = var_20->u1_;
        var_13[1] = aVar13;
        var_13[2] = aVar11;
        var_13[3] = aVar10;
        var_19 = var_13 + 4;
      } while (var_14 != var_15 + 1);
      aVar10 = *(type_1 *)&var_20->field_0x14;
      var_13[4] = *(type_1 *)var_14;
      var_13[5] = aVar10;
      var_6 = var_7;
    } while (var_7 < var_5);
    var_14 = var_15;
    if (var_16 == 0) goto LAB_00267870;
  }
  else {
    var_15 = (var_1<9,var_8,_64,var_8> *)(var_9 + var_4 * 0x28);
    var_7 = var_4;
    if ((var_3 & 1) != 0) {
      var_19 = (type_1 *)&stack0x00000010;
      var_13 = var_22;
      do {
        var_18 = var_13;
        var_17 = var_19;
        var_19 = var_17 + 4;
        aVar13 = var_17[1];
        aVar11 = var_17[2];
        aVar10 = var_17[3];
        *var_18 = *var_17;
        var_18[1] = aVar13;
        var_18[2] = aVar11;
        var_18[3] = aVar10;
        var_13 = var_18 + 4;
      } while (var_19 != (type_1 *)&stack0x00000030);
      aVar10 = var_17[5];
      var_18[4] = *var_19;
      var_18[5] = aVar10;
      goto LAB_00267704;
    }
LAB_00267870:
    var_14 = var_15;
    if ((int)(var_3 - 2) / 2 == var_7) {
      var_7 = var_7 * 2 + 1;
      var_14 = (var_1<9,var_8,_64,var_8> *)(var_9 + var_7 * 0x28);
      var_20 = var_14;
      do {
        pOVar8 = var_15;
        pOVar6 = var_20;
        var_20 = (var_1<9,var_8,_64,var_8> *)&pOVar6->local_sym_index_;
        aVar14 = pOVar6->u2_;
        uVar12 = *(type_2 *)&pOVar6->address_;
        AVar1 = pOVar6->address_;
        pOVar8->u1_ = pOVar6->u1_;
        pOVar8->u2_ = aVar14;
        *(type_2 *)&pOVar8->address_ = uVar12;
        *(int *)((int)&pOVar8->address_ + 4) = (int)AVar1;
        var_15 = (var_1<9,var_8,_64,var_8> *)&pOVar8->local_sym_index_;
      } while (var_20 != var_14 + 1);
      uVar12 = *(type_2 *)&pOVar6->field_0x14;
      pOVar8->local_sym_index_ = *(type_4 *)var_20;
      *(type_2 *)&pOVar8->field_0x14 = uVar12;
    }
  }
  var_19 = (type_1 *)&stack0x00000010;
  var_13 = var_22;
  do {
    var_18 = var_13;
    var_17 = var_19;
    var_19 = var_17 + 4;
    aVar13 = var_17[1];
    aVar11 = var_17[2];
    aVar10 = var_17[3];
    *var_18 = *var_17;
    var_18[1] = aVar13;
    var_18[2] = aVar11;
    var_18[3] = aVar10;
    var_13 = var_18 + 4;
  } while (var_19 != (type_1 *)&stack0x00000030);
  aVar10 = var_17[5];
  var_18[4] = *var_19;
  var_18[5] = aVar10;
  var_15 = var_14;
  while (var_4 < var_7) {
    var_5 = (var_7 + -1) / 2;
    var_15 = (var_1<9,var_8,_64,var_8> *)(var_9 + var_5 * 0x28);
    var_6 = gold::var_1<9,var_8,_64,var_8>::var_11
                      (var_15,(var_1<9,var_8,_64,var_8> *)var_22);
    if ((-1 < var_6) &&
       ((var_6 != 0 ||
        ((var_22[8].relobj <= var_15[1].u1_.relobj &&
         ((var_22[8].relobj != var_15[1].u1_.relobj || (var_21 <= var_15[1].u2_.relobj)))))))) {
      var_15 = (var_1<9,var_8,_64,var_8> *)(var_9 + var_7 * 0x28);
      break;
    }
    var_19 = (type_1 *)(var_9 + var_7 * 0x28);
    var_14 = var_15;
    do {
      var_20 = var_14;
      var_13 = var_19;
      var_14 = (var_1<9,var_8,_64,var_8> *)&var_20->local_sym_index_;
      aVar13 = *(type_1 *)&var_20->u2_;
      aVar11 = *(type_1 *)&var_20->address_;
      aVar10 = *(type_1 *)((int)&var_20->address_ + 4);
      *var_13 = var_20->u1_;
      var_13[1] = aVar13;
      var_13[2] = aVar11;
      var_13[3] = aVar10;
      var_19 = var_13 + 4;
    } while (var_14 != var_15 + 1);
    aVar10 = *(type_1 *)&var_20->field_0x14;
    var_13[4] = *(type_1 *)var_14;
    var_13[5] = aVar10;
    var_7 = var_5;
  }
LAB_00267704:
  var_19 = var_22;
  do {
    var_14 = var_15;
    var_13 = var_19;
    var_19 = var_13 + 4;
    aVar13 = var_13[1];
    aVar11 = var_13[2];
    aVar10 = var_13[3];
    var_14->u1_ = *var_13;
    var_14->u2_ = (type_3)aVar13;
    *(type_1 *)&var_14->address_ = aVar11;
    *(type_1 *)((int)&var_14->address_ + 4) = aVar10;
    var_15 = (var_1<9,var_8,_64,var_8> *)&var_14->local_sym_index_;
  } while (var_19 != var_22 + 8);
  aVar10 = var_13[5];
  var_14->local_sym_index_ = (type_4)*var_19;
  *(type_1 *)&var_14->field_0x14 = aVar10;
  return;
}


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

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* void std::__adjust_heap<__normal_iterator<gold::Output_reloc<4, true, 64, true>*,
   std::vector<gold::Output_reloc<4, true, 64, true>, std::allocator<gold::Output_reloc<4, true, 64,
   true> > > >, int, gold::Output_reloc<4, true, 64, true>,
   __ops::_Iter_comp_iter<gold::Output_data_reloc_base<4, true, 64, true>::Sort_relocs_comparison>
   >(__normal_iterator<gold::Output_reloc<4, true, 64, true>*, std::vector<gold::Output_reloc<4,
   true, 64, true>, std::allocator<gold::Output_reloc<4, true, 64, true> > > >, int, int,
   gold::Output_reloc<4, true, 64, true>, __ops::_Iter_comp_iter<gold::Output_data_reloc_base<4,
   true, 64, true>::Sort_relocs_comparison>) */

void std::
     MASKED
               (int param_1,int param_2,uint param_3)

{
  int iVar1;
  undefined4 *puVar2;
  int iVar3;
  undefined4 *puVar4;
  Output_reloc<9,true,64,true> *pOVar5;
  Output_reloc<9,true,64,true> *pOVar6;
  Output_reloc<9,true,64,true> *pOVar7;
  Output_reloc<9,true,64,true> *pOVar8;
  Output_reloc *pOVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  Output_reloc<9,true,64,true> *this;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  Output_reloc *pOVar17;
  Output_reloc local_58 [4];
  undefined4 local_54 [7];
  uint local_38;
  uint local_34;
  uint local_30;
  
  iVar13 = (int)(param_3 - 1) / 2;
  local_30 = param_3 & 1;
  iVar3 = param_2;
  if (param_2 < iVar13) {
    do {
      iVar15 = (iVar3 + 1) * 2;
      iVar14 = iVar15 + -1;
      this = (Output_reloc<9,true,64,true> *)(param_1 + (iVar3 + 1) * 0x50);
      pOVar17 = (Output_reloc *)(param_1 + iVar14 * 0x28);
      iVar1 = gold::Output_reloc<9,true,64,true>::compare(this,pOVar17);
      pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;
      iVar16 = iVar14;
      if ((iVar1 < 0) || (pOVar7 = this, iVar16 = iVar15, iVar1 != 0)) {
LAB_002675ec:
        this = pOVar7;
        iVar15 = iVar16;
      }
      else {
        pOVar7 = (Output_reloc<9,true,64,true> *)pOVar17;
        iVar16 = iVar14;
        if ((*(uint *)(this + 0x20) < *(uint *)(pOVar17 + 0x20)) ||
           ((*(uint *)(pOVar17 + 0x20) == *(uint *)(this + 0x20) &&
            (*(uint *)(this + 0x24) < *(uint *)(pOVar17 + 0x24))))) goto LAB_002675ec;
      }
      puVar2 = (undefined4 *)(param_1 + iVar3 * 0x28);
      pOVar7 = this;
      do {
        pOVar6 = pOVar7;
        puVar4 = puVar2;
        pOVar7 = pOVar6 + 0x10;
        uVar12 = *(undefined4 *)(pOVar6 + 4);
        uVar11 = *(undefined4 *)(pOVar6 + 8);
        uVar10 = *(undefined4 *)(pOVar6 + 0xc);
        *puVar4 = *(undefined4 *)pOVar6;
        puVar4[1] = uVar12;
        puVar4[2] = uVar11;
        puVar4[3] = uVar10;
        puVar2 = puVar4 + 4;
      } while (pOVar7 != this + 0x20);
      uVar10 = *(undefined4 *)(pOVar6 + 0x14);
      puVar4[4] = *(undefined4 *)pOVar7;
      puVar4[5] = uVar10;
      iVar3 = iVar15;
    } while (iVar15 < iVar13);
    pOVar7 = this;
    if (local_30 == 0) goto LAB_00267870;
  }
  else {
    this = (Output_reloc<9,true,64,true> *)(param_1 + param_2 * 0x28);
    iVar15 = param_2;
    if ((param_3 & 1) != 0) {
      puVar2 = (undefined4 *)&stack0x00000010;
      pOVar17 = local_58;
      do {
        pOVar9 = pOVar17;
        puVar4 = puVar2;
        puVar2 = puVar4 + 4;
        uVar12 = puVar4[1];
        uVar11 = puVar4[2];
        uVar10 = puVar4[3];
        *(undefined4 *)pOVar9 = *puVar4;
        *(undefined4 *)(pOVar9 + 4) = uVar12;
        *(undefined4 *)(pOVar9 + 8) = uVar11;
        *(undefined4 *)(pOVar9 + 0xc) = uVar10;
        pOVar17 = pOVar9 + 0x10;
      } while (puVar2 != (undefined4 *)&stack0x00000030);
      uVar10 = puVar4[5];
      *(undefined4 *)(pOVar9 + 0x10) = *puVar2;
      *(undefined4 *)(pOVar9 + 0x14) = uVar10;
      goto LAB_00267704;
    }
LAB_00267870:
    pOVar7 = this;
    if ((int)(param_3 - 2) / 2 == iVar15) {
      iVar15 = iVar15 * 2 + 1;
      pOVar7 = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);
      pOVar6 = pOVar7;
      do {
        pOVar8 = this;
        pOVar5 = pOVar6;
        pOVar6 = pOVar5 + 0x10;
        uVar12 = *(undefined4 *)(pOVar5 + 4);
        uVar11 = *(undefined4 *)(pOVar5 + 8);
        uVar10 = *(undefined4 *)(pOVar5 + 0xc);
        *(undefined4 *)pOVar8 = *(undefined4 *)pOVar5;
        *(undefined4 *)(pOVar8 + 4) = uVar12;
        *(undefined4 *)(pOVar8 + 8) = uVar11;
        *(undefined4 *)(pOVar8 + 0xc) = uVar10;
        this = pOVar8 + 0x10;
      } while (pOVar6 != pOVar7 + 0x20);
      uVar10 = *(undefined4 *)(pOVar5 + 0x14);
      *(undefined4 *)(pOVar8 + 0x10) = *(undefined4 *)pOVar6;
      *(undefined4 *)(pOVar8 + 0x14) = uVar10;
    }
  }
  puVar2 = (undefined4 *)&stack0x00000010;
  pOVar17 = local_58;
  do {
    pOVar9 = pOVar17;
    puVar4 = puVar2;
    puVar2 = puVar4 + 4;
    uVar12 = puVar4[1];
    uVar11 = puVar4[2];
    uVar10 = puVar4[3];
    *(undefined4 *)pOVar9 = *puVar4;
    *(undefined4 *)(pOVar9 + 4) = uVar12;
    *(undefined4 *)(pOVar9 + 8) = uVar11;
    *(undefined4 *)(pOVar9 + 0xc) = uVar10;
    pOVar17 = pOVar9 + 0x10;
  } while (puVar2 != (undefined4 *)&stack0x00000030);
  uVar10 = puVar4[5];
  *(undefined4 *)(pOVar9 + 0x10) = *puVar2;
  *(undefined4 *)(pOVar9 + 0x14) = uVar10;
  this = pOVar7;
  while (param_2 < iVar15) {
    iVar13 = (iVar15 + -1) / 2;
    this = (Output_reloc<9,true,64,true> *)(param_1 + iVar13 * 0x28);
    iVar3 = gold::Output_reloc<9,true,64,true>::compare(this,local_58);
    if ((-1 < iVar3) &&
       ((iVar3 != 0 ||
        ((local_38 <= *(uint *)(this + 0x20) &&
         ((local_38 != *(uint *)(this + 0x20) || (local_34 <= *(uint *)(this + 0x24))))))))) {
      this = (Output_reloc<9,true,64,true> *)(param_1 + iVar15 * 0x28);
      break;
    }
    puVar2 = (undefined4 *)(param_1 + iVar15 * 0x28);
    pOVar7 = this;
    do {
      pOVar6 = pOVar7;
      puVar4 = puVar2;
      pOVar7 = pOVar6 + 0x10;
      uVar12 = *(undefined4 *)(pOVar6 + 4);
      uVar11 = *(undefined4 *)(pOVar6 + 8);
      uVar10 = *(undefined4 *)(pOVar6 + 0xc);
      *puVar4 = *(undefined4 *)pOVar6;
      puVar4[1] = uVar12;
      puVar4[2] = uVar11;
      puVar4[3] = uVar10;
      puVar2 = puVar4 + 4;
    } while (pOVar7 != this + 0x20);
    uVar10 = *(undefined4 *)(pOVar6 + 0x14);
    puVar4[4] = *(undefined4 *)pOVar7;
    puVar4[5] = uVar10;
    iVar15 = iVar13;
  }
LAB_00267704:
  pOVar17 = local_58;
  do {
    pOVar7 = this;
    pOVar9 = pOVar17;
    pOVar17 = pOVar9 + 0x10;
    uVar12 = *(undefined4 *)(pOVar9 + 4);
    uVar11 = *(undefined4 *)(pOVar9 + 8);
    uVar10 = *(undefined4 *)(pOVar9 + 0xc);
    *(undefined4 *)pOVar7 = *(undefined4 *)pOVar9;
    *(undefined4 *)(pOVar7 + 4) = uVar12;
    *(undefined4 *)(pOVar7 + 8) = uVar11;
    *(undefined4 *)(pOVar7 + 0xc) = uVar10;
    this = pOVar7 + 0x10;
  } while (pOVar17 != (Output_reloc *)(local_54 + 7));
  uVar10 = *(undefined4 *)(pOVar9 + 0x14);
  *(undefined4 *)(pOVar7 + 0x10) = *(undefined4 *)pOVar17;
  *(undefined4 *)(pOVar7 + 0x14) = uVar10;
  return;
}

