
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* DWARF original prototype: void do_write(Output_data_reloc_base<4,_false,_64,_false> * this,
   Output_file * of) */

void __thiscall
gold::Output_data_reloc_base<4,_false,_64,_false>::do_write
          (Output_data_reloc_base<4,_false,_64,_false> *this,Output_file *of)

{
  int iVar1;
  pointer pOVar2;
  int iVar3;
  int iVar4;
  int *piVar5;
  int *piVar6;
  Output_reloc<9,_false,_64,_true> *this_00;
  undefined4 uVar7;
  Elf_Addr *pEVar8;
  uchar *puVar9;
  size_t in_a3;
  size_t sVar10;
  uint uVar11;
  uchar *unaff_s1;
  uchar *__fd;
  pointer unaff_s2;
  uchar *unaff_s3;
  uchar *puVar12;
  undefined *puVar13;
  code *pcVar14;
  code *pcVar15;
  undefined8 uVar16;
  Elf_Addr EVar17;
  
  iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.
                   super_Output_section_data.super_Output_data.field_0x20;
  if (iVar1 << 2 < 0) {
    iVar4 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.
                     super_Output_section_data.super_Output_data.offset_;
    unaff_s3 = *(uchar **)
                ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.
                       super_Output_section_data.super_Output_data.offset_ + 4);
    if (iVar1 << 1 < 0) {
      iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.
                       super_Output_section_data.super_Output_data.data_size_;
      puVar12 = *(uchar **)
                 ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.
                        super_Output_section_data.super_Output_data.data_size_ + 4);
      if (iVar4 < 0) {
LAB_001cfdf4:
        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();
      }
      else {
        puVar9 = puVar12 + (int)unaff_s3;
        iVar4 = (uint)(puVar9 < puVar12) + iVar4;
        if ((*(int *)&of->file_size_ < iVar4) ||
           ((*(int *)&of->file_size_ == iVar4 &&
            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),
            puVar9 != (uchar *)0x0)))) goto LAB_001cfdf4;
        unaff_s1 = of->base_;
        unaff_s3 = unaff_s1 + (int)unaff_s3;
        if ((this->super_Output_data_reloc_generic).sort_relocs_ == false) {
          unaff_s2 = (this->relocs_).
                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>
                     ._M_impl._M_start;
          iVar4 = 0;
          __fd = unaff_s3;
          if (unaff_s2 ==
              (this->relocs_).
              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>
              ._M_impl._M_finish) {
            unaff_s1 = (uchar *)0x0;
          }
          else {
            do {
              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);
              unaff_s2 = unaff_s2 + 1;
              __fd = __fd + 0x18;
            } while ((this->relocs_).
                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>
                     ._M_impl._M_finish != unaff_s2);
            unaff_s1 = __fd + -(int)unaff_s3;
            iVar4 = (int)unaff_s1 >> 0x1f;
          }
          if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {
            pOVar2 = (this->relocs_).
                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>
                     ._M_impl._M_start;
            if (pOVar2 != unaff_s2) {
              (this->relocs_).
              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>
              ._M_impl._M_finish = pOVar2;
            }
            return;
          }
        }
      }
      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);
    }
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);
  }
  pOVar2 = (pointer)(PTR_s_alize_xindex_004323b4 + 0x7818);
  puVar12 = PTR_s_alize_xindex_004323b4 + -0x4fe0;
  puVar13 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar12,0xe3);
  uVar11 = *(uint *)(puVar12 + 0x10);
  if ((0xfffffffa < uVar11 - 1) || (unaff_s1 = puVar12, -1 < *(int *)(puVar12 + 0x14) << 0x1e)) {
    puVar12 = unaff_s1;
    uVar7 = 0x428;
    goto LAB_001cff5c;
  }
  piVar6 = *(int **)puVar12;
  if (*(code **)(*piVar6 + 0x60) == *(code **)(puVar13 + 0x264120)) {
    if (uVar11 < (uint)(piVar6[0xf] - piVar6[0xe] >> 2)) {
      unaff_s3 = *(uchar **)(piVar6[0xe] + uVar11 * 4);
      goto LAB_001cfed4;
    }
  }
  else {
    unaff_s3 = (uchar *)(**(code **)(*piVar6 + 0x60))(piVar6,uVar11);
LAB_001cfed4:
    uVar7 = 0x42b;
    unaff_s2 = pOVar2;
    if (unaff_s3 == (uchar *)0x0) goto LAB_001cff5c;
    piVar6 = *(int **)puVar12;
    if (uVar11 < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {
      piVar5 = (int *)(piVar6[0x21] + uVar11 * 8);
      if ((*piVar5 != -1) || (piVar5[1] != -1)) {
        return;
      }
      pcVar14 = *(code **)(*piVar6 + 0xec);
      puVar12 = (uchar *)0xffffffff;
      sVar10 = in_a3;
      if (pcVar14 != *(code **)(puVar13 + 0x264a34)) goto LAB_001cff74;
      do {
        uVar7 = 0x432;
        unaff_s2 = pOVar2;
LAB_001cff5c:
        iVar1 = *(int *)(puVar13 + 0x262564);
        sVar10 = in_a3;
        pOVar2 = unaff_s2;
        while( true ) {
          pcVar14 = *(code **)(puVar13 + 0x262574);
          (*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);
LAB_001cff74:
          in_a3 = sVar10;
          iVar1 = (*pcVar14)();
          if (iVar1 == 0) break;
          uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);
          puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);
          if (puVar9 != puVar12) {
            return;
          }
          uVar7 = 0x434;
          if ((uchar *)uVar16 != puVar9) {
            return;
          }
          iVar1 = *(int *)(puVar13 + 0x262564);
        }
      } while( true );
    }
    (**(code **)(puVar13 + 0x262574))
              (*(int *)(puVar13 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar13 + 0x262564) + 0x69b8);
  }
  pcVar14 = *(code **)(puVar13 + 0x262574);
  iVar1 = *(int *)(puVar13 + 0x2623bc) + 0x44a8;
  (*pcVar14)(iVar1,0x5c8,*(int *)(puVar13 + 0x262564) + 0x6e8c);
  uVar11 = *(uint *)(iVar1 + 0x18);
  piVar6 = *(int **)(iVar1 + 4);
  if (uVar11 == 0xfffffffc) {
LAB_001d0158:
    if (piVar6 == (int *)0x0) {
      return;
    }
    if (piVar6[8] < 0) {
      return;
    }
LAB_001d0204:
    (**(code **)(pcVar14 + 0x2623ac))
              (*(int *)(pcVar14 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar14 + 0x26239c) + 0x7850);
  }
  else {
    if (*(code **)(*piVar6 + 0x60) == *(code **)(pcVar14 + 0x263f58)) {
      if ((uint)(piVar6[0xf] - piVar6[0xe] >> 2) <= uVar11) goto LAB_001d023c;
      iVar4 = *(int *)(piVar6[0xe] + uVar11 * 4);
    }
    else {
      iVar4 = (**(code **)(*piVar6 + 0x60))();
    }
    uVar7 = 0x442;
    if (iVar4 == 0) {
LAB_001d0140:
      iVar1 = *(int *)(pcVar14 + 0x26239c);
LAB_001d0144:
      piVar6 = (int *)(*(int *)(pcVar14 + 0x26239c) + 0x59f0);
      (**(code **)(pcVar14 + 0x2623ac))(piVar6,uVar7,iVar1 + 0x6960);
      goto LAB_001d0158;
    }
    piVar6 = *(int **)(iVar1 + 4);
    if (*(uint *)(iVar1 + 0x18) < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {
      piVar5 = (int *)(piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8);
      if ((*piVar5 == -1) && (piVar5[1] == -1)) {
        if ((*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||
           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)) {
          uVar7 = 0x44a;
          goto LAB_001d0140;
        }
        uVar16 = (**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18));
        if ((int)((ulonglong)uVar16 >> 0x20) != -1) {
          return;
        }
        uVar7 = 0x44c;
        if ((int)uVar16 != -1) {
          return;
        }
        iVar1 = *(int *)(pcVar14 + 0x26239c);
        goto LAB_001d0144;
      }
      if (*(int *)(iVar4 + 0x20) < 0) {
        return;
      }
      goto LAB_001d0204;
    }
  }
  (**(code **)(pcVar14 + 0x2623ac))
            (*(int *)(pcVar14 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar14 + 0x26239c) + 0x69b8);
LAB_001d023c:
  pEVar8 = (Elf_Addr *)&DAT_000005c8;
  pcVar15 = *(code **)(pcVar14 + 0x2623ac);
  this_00 = (Output_reloc<9,_false,_64,_true> *)(*(int *)(pcVar14 + 0x2621f4) + 0x44a8);
  (*pcVar15)(this_00,0x5c8,*(int *)(pcVar14 + 0x26239c) + 0x6e8c);
  EVar17 = Output_reloc<9,_false,_64,_true>::get_address(this_00);
  pcVar14 = *(code **)(pcVar15 + 0x26495c);
  *pEVar8 = EVar17;
  uVar7 = (*pcVar14)(this_00);
  uVar11 = *(uint *)&this_00->field_0x14;
  *(undefined4 *)(pEVar8 + 1) = uVar7;
  *(uint *)((int)pEVar8 + 0xc) = uVar11 >> 4;
  return;
}



Output_reloc<4,false,64,false> *
FUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)

{
  int iVar1;
  Output_reloc<4,false,64,false> *pOVar2;
  int *piVar3;
  uint extraout_v1;
  int *piVar4;
  Output_reloc<9,false,64,true> *this;
  undefined4 uVar5;
  uint uVar6;
  int iVar7;
  undefined8 *puVar8;
  uint uVar9;
  Output_reloc<4,false,64,false> *unaff_s1;
  Output_reloc<4,false,64,false> *pOVar10;
  int iVar11;
  Output_reloc<4,false,64,false> *unaff_s2;
  Output_reloc<4,false,64,false> *unaff_s3;
  int iVar12;
  Output_reloc<4,false,64,false> *pOVar13;
  undefined *puVar14;
  code *pcVar15;
  code *pcVar16;
  undefined8 uVar17;
  
  if (*(int *)(param_1 + 0x20) << 2 < 0) {
    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);
    if (*(int *)(param_1 + 0x20) << 1 < 0) {
      iVar12 = *(int *)(param_1 + 0x10);
      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);
      if (*(int *)(param_1 + 0x18) < 0) {
LAB_001cfdf4:
        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();
      }
      else {
        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);
        if ((*(int *)(param_2 + 8) < iVar1) ||
           ((*(int *)(param_2 + 8) == iVar1 &&
            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))
        goto LAB_001cfdf4;
        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);
        unaff_s3 = unaff_s1 + (int)unaff_s3;
        if (*(char *)(param_1 + 0x34) == '\0') {
          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);
          iVar1 = 0;
          pOVar10 = unaff_s3;
          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {
            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;
          }
          else {
            do {
              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);
              unaff_s2 = unaff_s2 + 0x28;
              pOVar10 = pOVar10 + 0x18;
            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);
            unaff_s1 = pOVar10 + -(int)unaff_s3;
            iVar1 = (int)unaff_s1 >> 0x1f;
          }
          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {
            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);
            if (pOVar13 != unaff_s2) {
              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;
            }
            return pOVar13;
          }
        }
      }
      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);
    }
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);
  }
  pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818);
  pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0);
  puVar14 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3);
  uVar9 = *(uint *)(pOVar13 + 0x10);
  if ((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)) {
    pOVar13 = unaff_s1;
    uVar5 = 0x428;
    goto LAB_001cff5c;
  }
  piVar4 = *(int **)pOVar13;
  if (*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)) {
    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {
      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);
      goto LAB_001cfed4;
    }
  }
  else {
    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);
LAB_001cfed4:
    uVar5 = 0x42b;
    unaff_s2 = pOVar10;
    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;
    piVar4 = *(int **)pOVar13;
    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {
      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);
      iVar12 = *piVar3;
      iVar1 = piVar3[1];
      if ((iVar12 != -1) || (iVar1 != -1)) {
        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;
      }
      pcVar15 = *(code **)(*piVar4 + 0xec);
      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;
      uVar6 = param_4;
      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;
      do {
        uVar5 = 0x432;
        unaff_s2 = pOVar10;
LAB_001cff5c:
        iVar12 = *(int *)(puVar14 + 0x262564);
        uVar6 = param_4;
        pOVar10 = unaff_s2;
        while( true ) {
          pcVar15 = *(code **)(puVar14 + 0x262574);
          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);
LAB_001cff74:
          param_4 = uVar6;
          iVar12 = (*pcVar15)();
          if (iVar12 == 0) break;
          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);
          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);
          if (pOVar2 != pOVar13) {
            return pOVar2;
          }
          uVar5 = 0x434;
          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {
            return pOVar2;
          }
          iVar12 = *(int *)(puVar14 + 0x262564);
        }
      } while( true );
    }
    (**(code **)(puVar14 + 0x262574))
              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);
  }
  pcVar15 = *(code **)(puVar14 + 0x262574);
  iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8;
  (*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c);
  uVar6 = *(uint *)(iVar12 + 0x18);
  uVar9 = *(uint *)(iVar12 + 0xc);
  pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8);
  piVar4 = *(int **)(iVar12 + 4);
  if (uVar6 == 0xfffffffc) {
LAB_001d0158:
    if (piVar4 == (int *)0x0) {
      return pOVar13;
    }
    if (piVar4[8] < 0) {
      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];
    }
LAB_001d0204:
    (**(code **)(pcVar15 + 0x2623ac))
              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);
  }
  else {
    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {
      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;
      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);
    }
    else {
      iVar1 = (**(code **)(*piVar4 + 0x60))();
    }
    uVar5 = 0x442;
    if (iVar1 == 0) {
LAB_001d0140:
      iVar12 = *(int *)(pcVar15 + 0x26239c);
LAB_001d0144:
      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);
      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);
      uVar9 = extraout_v1;
      goto LAB_001d0158;
    }
    piVar4 = *(int **)(iVar12 + 4);
    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {
      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);
      iVar7 = *piVar3;
      iVar11 = piVar3[1];
      if ((iVar7 == -1) && (iVar11 == -1)) {
        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||
           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {
          uVar5 = 0x44a;
          goto LAB_001d0140;
        }
        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));
        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);
        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {
          return pOVar13;
        }
        uVar5 = 0x44c;
        if ((int)uVar17 != -1) {
          return (Output_reloc<4,false,64,false> *)0xffffffff;
        }
        iVar12 = *(int *)(pcVar15 + 0x26239c);
        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;
        goto LAB_001d0144;
      }
      if (*(int *)(iVar1 + 0x20) < 0) {
        uVar6 = uVar9 + iVar11;
        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +
                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;
      }
      goto LAB_001d0204;
    }
  }
  (**(code **)(pcVar15 + 0x2623ac))
            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8);
LAB_001d023c:
  puVar8 = (undefined8 *)&DAT_000005c8;
  pcVar16 = *(code **)(pcVar15 + 0x2623ac);
  this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8);
  (*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c);
  uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this);
  pcVar15 = *(code **)(pcVar16 + 0x26495c);
  *puVar8 = uVar17;
  pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this);
  uVar9 = *(uint *)(this + 0x14);
  *(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13;
  *(uint *)((int)puVar8 + 0xc) = uVar9 >> 4;
  return pOVar13;
}


lui gp,0x27
addiu gp,gp,-0x5ae4
addu gp,gp,t9
lw v0,0x20(a0)
addiu sp,sp,-0x38
ext v1,v0,0x1d,0x1
sw gp,0x10(sp)
sw ra,0x34(sp)
sw s6,0x30(sp)
sw s5,0x2c(sp)
sw s4,0x28(sp)
sw s3,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
beq v1,zero,0x001cfe34
_sw s0,0x18(sp)
ext v0,v0,0x1e,0x1
lw v1,0x18(a0)
or s0,a0,zero
beq v0,zero,0x001cfe18
_lw s3,0x1c(a0)
lw s4,0x10(a0)
bltz v1,0x001cfdf0
_lw s5,0x14(a0)
addu a2,s5,s3
lw a0,0x8(a1)
sltu v0,a2,s5
addu v0,v0,v1
slt v1,a0,v0
bne v1,zero,0x001cfdf4
_lw t9,-0x5b18(gp)
beq a0,v0,0x001cfde0
_nop
lw s1,0x10(a1)
li a1,0x65b
lbu v0,0x34(s0)
bne v0,zero,0x001cfe00
_addu s3,s1,s3
lw s2,0x38(s0)
lw v0,0x3c(s0)
beq s2,v0,0x001cfdd8
_or v0,zero,zero
lw s6,-0x5624(gp)
or s1,s3,zero
or a1,s1,zero
or t9,s6,zero
bal 0x001cfb2c
_or a0,s2,zero
addiu s2,s2,0x28
lw v0,0x3c(s0)
addiu s1,s1,0x18
bne v0,s2,0x001cfd64
_lw gp,0x10(sp)
subu s1,s1,s3
sra v0,s1,0x1f
bne s4,v0,0x001cfe00
_li a1,0x669
bne s5,s1,0x001cfe04
_lw a2,-0x7e1c(gp)
lw v0,0x38(s0)
beq v0,s2,0x001cfdb4
_lw ra,0x34(sp)
sw v0,0x3c(s0)
lw ra,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
b 0x001cfd90
_or s1,zero,zero
lw v0,0xc(a1)
sltu a2,v0,a2
beq a2,zero,0x001cfd38
_nop
lw t9,-0x5b18(gp)
addiu t9,t9,0x2b60
jalr t9
_nop
lw a2,-0x7e1c(gp)
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x7490
jalr t9
_addiu a0,a0,-0x4fe0
lw a2,-0x7e1c(gp)
li a1,0xcf
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x7894
jalr t9
_addiu a0,a0,-0x4fe0
lw a2,-0x7e1c(gp)
li a1,0xe3
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x7818
jalr t9
_addiu a0,a0,-0x4fe0
(translation_unit "Output_reloc<4,false,64,false> *\nFUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)\n\n{\n  int iVar1;\n  Output_reloc<4,false,64,false> *pOVar2;\n  int *piVar3;\n  uint extraout_v1;\n  int *piVar4;\n  Output_reloc<9,false,64,true> *this;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  Output_reloc<4,false,64,false> *unaff_s1;\n  Output_reloc<4,false,64,false> *pOVar10;\n  int iVar11;\n  Output_reloc<4,false,64,false> *unaff_s2;\n  Output_reloc<4,false,64,false> *unaff_s3;\n  int iVar12;\n  Output_reloc<4,false,64,false> *pOVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  undefined8 uVar17;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);\n    if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }\n  pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818);\n  pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n  puVar14 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3);\n  uVar9 = *(uint *)(pOVar13 + 0x10);\n  if ((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)) {\n    pOVar13 = unaff_s1;\n    uVar5 = 0x428;\n    goto LAB_001cff5c;\n  }\n  piVar4 = *(int **)pOVar13;\n  if (*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)) {\n    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }\n  }\n  else {\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }\n  pcVar15 = *(code **)(puVar14 + 0x262574);\n  iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8;\n  (*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c);\n  uVar6 = *(uint *)(iVar12 + 0x18);\n  uVar9 = *(uint *)(iVar12 + 0xc);\n  pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8);\n  piVar4 = *(int **)(iVar12 + 4);\n  if (uVar6 == 0xfffffffc) {\nLAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }\n    if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }\nLAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);\n  }\n  else {\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }\n  (**(code **)(pcVar15 + 0x2623ac))\n            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8);\nLAB_001d023c:\n  puVar8 = (undefined8 *)&DAT_000005c8;\n  pcVar16 = *(code **)(pcVar15 + 0x2623ac);\n  this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8);\n  (*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c);\n  uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this);\n  pcVar15 = *(code **)(pcVar16 + 0x26495c);\n  *puVar8 = uVar17;\n  pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this);\n  uVar9 = *(uint *)(this + 0x14);\n  *(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13;\n  *(uint *)((int)puVar8 + 0xc) = uVar9 >> 4;\n  return pOVar13;\n}\n\n" (ERROR "Output_reloc<4,false,64,false> *\nFUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" (binary_expression "Output_reloc<4,false,64,false> *\nFUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" (binary_expression "Output_reloc<4" identifier < number_literal) (ERROR ",false,64,false" , false , number_literal , false) > (pointer_expression "*\nFUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" * (call_expression "FUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" identifier (argument_list "(int param_1,int param_2,undefined4 param_3,uint param_4)" ( (ERROR "int" identifier) identifier , (ERROR "int" identifier) identifier , identifier (ERROR "param_3" identifier) , (ERROR "uint" identifier) identifier )))))) (compound_statement "{\n  int iVar1;\n  Output_reloc<4,false,64,false> *pOVar2;\n  int *piVar3;\n  uint extraout_v1;\n  int *piVar4;\n  Output_reloc<9,false,64,true> *this;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  Output_reloc<4,false,64,false> *unaff_s1;\n  Output_reloc<4,false,64,false> *pOVar10;\n  int iVar11;\n  Output_reloc<4,false,64,false> *unaff_s2;\n  Output_reloc<4,false,64,false> *unaff_s3;\n  int iVar12;\n  Output_reloc<4,false,64,false> *pOVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  undefined8 uVar17;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);\n    if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }\n  pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818);\n  pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n  puVar14 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3);\n  uVar9 = *(uint *)(pOVar13 + 0x10);\n  if ((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)) {\n    pOVar13 = unaff_s1;\n    uVar5 = 0x428;\n    goto LAB_001cff5c;\n  }\n  piVar4 = *(int **)pOVar13;\n  if (*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)) {\n    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }\n  }\n  else {\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }\n  pcVar15 = *(code **)(puVar14 + 0x262574);\n  iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8;\n  (*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c);\n  uVar6 = *(uint *)(iVar12 + 0x18);\n  uVar9 = *(uint *)(iVar12 + 0xc);\n  pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8);\n  piVar4 = *(int **)(iVar12 + 4);\n  if (uVar6 == 0xfffffffc) {\nLAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }\n    if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }\nLAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);\n  }\n  else {\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }\n  (**(code **)(pcVar15 + 0x2623ac))\n            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8);\nLAB_001d023c:\n  puVar8 = (undefined8 *)&DAT_000005c8;\n  pcVar16 = *(code **)(pcVar15 + 0x2623ac);\n  this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8);\n  (*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c);\n  uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this);\n  pcVar15 = *(code **)(pcVar16 + 0x26495c);\n  *puVar8 = uVar17;\n  pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this);\n  uVar9 = *(uint *)(this + 0x14);\n  *(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13;\n  *(uint *)((int)puVar8 + 0xc) = uVar9 >> 4;\n  return pOVar13;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "Output_reloc<4,false,64,false> *pOVar2;" (comma_expression "Output_reloc<4,false,64,false> *pOVar2" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *pOVar2" false , (comma_expression "64,false> *pOVar2" number_literal , (binary_expression "false> *pOVar2" false > (pointer_expression "*pOVar2" * identifier))))) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (expression_statement "Output_reloc<9,false,64,true> *this;" (comma_expression "Output_reloc<9,false,64,true> *this" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "false,64,true> *this" false , (comma_expression "64,true> *this" number_literal , (binary_expression "true> *this" true > (pointer_expression "*this" * identifier))))) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (expression_statement "Output_reloc<4,false,64,false> *unaff_s1;" (comma_expression "Output_reloc<4,false,64,false> *unaff_s1" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *unaff_s1" false , (comma_expression "64,false> *unaff_s1" number_literal , (binary_expression "false> *unaff_s1" false > (pointer_expression "*unaff_s1" * identifier))))) ;) (expression_statement "Output_reloc<4,false,64,false> *pOVar10;" (comma_expression "Output_reloc<4,false,64,false> *pOVar10" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *pOVar10" false , (comma_expression "64,false> *pOVar10" number_literal , (binary_expression "false> *pOVar10" false > (pointer_expression "*pOVar10" * identifier))))) ;) (declaration "int iVar11;" primitive_type identifier ;) (expression_statement "Output_reloc<4,false,64,false> *unaff_s2;" (comma_expression "Output_reloc<4,false,64,false> *unaff_s2" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *unaff_s2" false , (comma_expression "64,false> *unaff_s2" number_literal , (binary_expression "false> *unaff_s2" false > (pointer_expression "*unaff_s2" * identifier))))) ;) (expression_statement "Output_reloc<4,false,64,false> *unaff_s3;" (comma_expression "Output_reloc<4,false,64,false> *unaff_s3" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *unaff_s3" false , (comma_expression "64,false> *unaff_s3" number_literal , (binary_expression "false> *unaff_s3" false > (pointer_expression "*unaff_s3" * identifier))))) ;) (declaration "int iVar12;" primitive_type identifier ;) (expression_statement "Output_reloc<4,false,64,false> *pOVar13;" (comma_expression "Output_reloc<4,false,64,false> *pOVar13" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *pOVar13" false , (comma_expression "64,false> *pOVar13" number_literal , (binary_expression "false> *pOVar13" false > (pointer_expression "*pOVar13" * identifier))))) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined8 uVar17;" type_identifier identifier ;) (if_statement "if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);\n    if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) << 2 < 0)" ( (binary_expression "*(int *)(param_1 + 0x20) << 2 < 0" (binary_expression "*(int *)(param_1 + 0x20) << 2" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);\n    if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }" { (expression_statement "unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);" (assignment_expression "unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x1c)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x1c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) << 1 < 0)" ( (binary_expression "*(int *)(param_1 + 0x20) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }" { (expression_statement "iVar12 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);" (assignment_expression "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x14)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x14)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x18) < 0)" ( (binary_expression "*(int *)(param_1 + 0x18) < 0" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }" { (labeled_statement "LAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_004346b8 + 0x2b60))();" (call_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))()" (parenthesized_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))" ( (pointer_expression "*(code *)(PTR_LAB_004346b8 + 0x2b60)" * (cast_expression "(code *)(PTR_LAB_004346b8 + 0x2b60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_004346b8 + 0x2b60)" ( (binary_expression "PTR_LAB_004346b8 + 0x2b60" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;)) }) (else_clause "else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }" else (compound_statement "{\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }" { (expression_statement "iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);" (assignment_expression "iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18)" identifier = (binary_expression "(uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18)" (call_expression "(uint)(pOVar13 + (int)unaff_s3 < pOVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar13 + (int)unaff_s3 < pOVar13)" ( (binary_expression "pOVar13 + (int)unaff_s3 < pOVar13" (binary_expression "pOVar13 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) < identifier) ))) + (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;" if (parenthesized_expression "((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))" ( (binary_expression "(*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)))" (parenthesized_expression "(*(int *)(param_2 + 8) < iVar1)" ( (binary_expression "*(int *)(param_2 + 8) < iVar1" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) < identifier) )) || (parenthesized_expression "((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)))" ( (parenthesized_expression "(*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))" ( (binary_expression "*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)" (binary_expression "*(int *)(param_2 + 8) == iVar1" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) == identifier) && (parenthesized_expression "(*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)" ( (binary_expression "*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3" (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_2 + 0xc)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_2 + 0xc)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) < (binary_expression "pOVar13 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) ))) )) (goto_statement "goto LAB_001cfdf4;" goto statement_identifier ;)) (expression_statement "unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);" (assignment_expression "unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_2 + 0x10)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_2 + 0x10)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "unaff_s3 = unaff_s1 + (int)unaff_s3;" (assignment_expression "unaff_s3 = unaff_s1 + (int)unaff_s3" identifier = (binary_expression "unaff_s1 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }" if (parenthesized_expression "(*(char *)(param_1 + 0x34) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x34) == '\0'" (pointer_expression "*(char *)(param_1 + 0x34)" * (cast_expression "(char *)(param_1 + 0x34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }" { (expression_statement "unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);" (assignment_expression "unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "pOVar10 = unaff_s3;" (assignment_expression "pOVar10 = unaff_s3" identifier = identifier) ;) (if_statement "if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }" if (parenthesized_expression "(unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c))" ( (binary_expression "unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" identifier == (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) )) (compound_statement "{\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }" { (expression_statement "unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;" (assignment_expression "unaff_s1 = (Output_reloc<4,false,64,false> *)0x0" identifier = (parenthesized_expression "(Output_reloc<4,false,64,false> *)0x0" ( (comma_expression "Output_reloc<4,false,64,false> *)0x0" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0x0" false , (comma_expression "64,false> *)0x0" number_literal , (binary_expression "false> *)0x0" false > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))))) ))) ;) }) (else_clause "else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }" else (compound_statement "{\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }" { (do_statement "do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);" do (compound_statement "{\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            }" { (labeled_statement "gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);" statement_identifier : (ERROR ":" :) (expression_statement "Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);" (comma_expression "Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10)" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false>::write(unaff_s2,(uchar *)pOVar10)" false , (comma_expression "64,false>::write(unaff_s2,(uchar *)pOVar10)" number_literal , (binary_expression "false>::write(unaff_s2,(uchar *)pOVar10)" false > (ERROR "::" : :) (call_expression "write(unaff_s2,(uchar *)pOVar10)" identifier (argument_list "(unaff_s2,(uchar *)pOVar10)" ( identifier , (cast_expression "(uchar *)pOVar10" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))))))) ;)) (expression_statement "unaff_s2 = unaff_s2 + 0x28;" (assignment_expression "unaff_s2 = unaff_s2 + 0x28" identifier = (binary_expression "unaff_s2 + 0x28" identifier + number_literal)) ;) (expression_statement "pOVar10 = pOVar10 + 0x18;" (assignment_expression "pOVar10 = pOVar10 + 0x18" identifier = (binary_expression "pOVar10 + 0x18" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2)" ( (binary_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2" (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "unaff_s1 = pOVar10 + -(int)unaff_s3;" (assignment_expression "unaff_s1 = pOVar10 + -(int)unaff_s3" identifier = (binary_expression "pOVar10 + -(int)unaff_s3" identifier + (unary_expression "-(int)unaff_s3" - (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "iVar1 = (int)unaff_s1 >> 0x1f;" (assignment_expression "iVar1 = (int)unaff_s1 >> 0x1f" identifier = (binary_expression "(int)unaff_s1 >> 0x1f" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }))) (if_statement "if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }" if (parenthesized_expression "((iVar12 == iVar1) && (pOVar13 == unaff_s1))" ( (binary_expression "(iVar12 == iVar1) && (pOVar13 == unaff_s1)" (parenthesized_expression "(iVar12 == iVar1)" ( (binary_expression "iVar12 == iVar1" identifier == identifier) )) && (parenthesized_expression "(pOVar13 == unaff_s1)" ( (binary_expression "pOVar13 == unaff_s1" identifier == identifier) ))) )) (compound_statement "{\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }" { (expression_statement "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);" (assignment_expression "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }" if (parenthesized_expression "(pOVar13 != unaff_s2)" ( (binary_expression "pOVar13 != unaff_s2" identifier != identifier) )) (compound_statement "{\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }" { (expression_statement "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;" (assignment_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13" (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return pOVar13;" return identifier ;) })) })) }))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) ))) ;) })) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7894" identifier + number_literal) ))) ;) })) (expression_statement "pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818);" (assignment_expression "pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "(PTR_s_alize_xindex_004323b4 + 0x7818)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7818" identifier + number_literal) )))) ;) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0);" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) )))) ;) (expression_statement "puVar14 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar14 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pOVar13,0xe3)" ( identifier , number_literal ))) ;) (expression_statement "uVar9 = *(uint *)(pOVar13 + 0x10);" (assignment_expression "uVar9 = *(uint *)(pOVar13 + 0x10)" identifier = (pointer_expression "*(uint *)(pOVar13 + 0x10)" * (cast_expression "(uint *)(pOVar13 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar13 + 0x10)" ( (binary_expression "pOVar13 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)) {\n    pOVar13 = unaff_s1;\n    uVar5 = 0x428;\n    goto LAB_001cff5c;\n  }" if (parenthesized_expression "((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e))" ( (binary_expression "(0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)" (parenthesized_expression "(0xfffffffa < uVar9 - 1)" ( (binary_expression "0xfffffffa < uVar9 - 1" number_literal < (binary_expression "uVar9 - 1" identifier - number_literal)) )) || (parenthesized_expression "(unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)" ( (comma_expression "unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e" (assignment_expression "unaff_s1 = pOVar13" identifier = identifier) , (binary_expression "-1 < *(int *)(pOVar13 + 0x14) << 0x1e" number_literal < (binary_expression "*(int *)(pOVar13 + 0x14) << 0x1e" (pointer_expression "*(int *)(pOVar13 + 0x14)" * (cast_expression "(int *)(pOVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar13 + 0x14)" ( (binary_expression "pOVar13 + 0x14" identifier + number_literal) )))) << number_literal))) ))) )) (compound_statement "{\n    pOVar13 = unaff_s1;\n    uVar5 = 0x428;\n    goto LAB_001cff5c;\n  }" { (expression_statement "pOVar13 = unaff_s1;" (assignment_expression "pOVar13 = unaff_s1" identifier = identifier) ;) (expression_statement "uVar5 = 0x428;" (assignment_expression "uVar5 = 0x428" identifier = number_literal) ;) (goto_statement "goto LAB_001cff5c;" goto statement_identifier ;) })) (expression_statement "piVar4 = *(int **)pOVar13;" (assignment_expression "piVar4 = *(int **)pOVar13" identifier = (pointer_expression "*(int **)pOVar13" * (cast_expression "(int **)pOVar13" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)) {\n    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }\n  }\n  else {\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120))" ( (binary_expression "*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)" (pointer_expression "*(code **)(*piVar4 + 0x60)" * (cast_expression "(code **)(*piVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x60)" ( (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" * identifier) + number_literal) )))) == (pointer_expression "*(code **)(puVar14 + 0x264120)" * (cast_expression "(code **)(puVar14 + 0x264120)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x264120)" ( (binary_expression "puVar14 + 0x264120" identifier + number_literal) ))))) )) (compound_statement "{\n    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }\n  }" { (if_statement "if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }" if (parenthesized_expression "(uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2))" ( (binary_expression "uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)" identifier < (call_expression "(uint)(piVar4[0xf] - piVar4[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar4[0xf] - piVar4[0xe] >> 2)" ( (binary_expression "piVar4[0xf] - piVar4[0xe] >> 2" (binary_expression "piVar4[0xf] - piVar4[0xe]" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar4[0xe]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }" { (expression_statement "unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);" (assignment_expression "unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4)" * (call_expression "(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(piVar4[0xe] + uVar9 * 4)" ( (binary_expression "piVar4[0xe] + uVar9 * 4" (subscript_expression "piVar4[0xe]" identifier [ number_literal ]) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (goto_statement "goto LAB_001cfed4;" goto statement_identifier ;) })) }) (else_clause "else {\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }" else (compound_statement "{\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }" { (expression_statement "unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);" (assignment_expression "unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9)" (call_expression "(Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "(**(code **)(*piVar4 + 0x60))" ( (pointer_expression "**(code **)(*piVar4 + 0x60)" * (pointer_expression "*(code **)(*piVar4 + 0x60)" * (cast_expression "(code **)(*piVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x60)" ( (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ))) (argument_list "(piVar4,uVar9)" ( identifier , identifier )))) ;) (labeled_statement "LAB_001cfed4:\n    uVar5 = 0x42b;" statement_identifier : (expression_statement "uVar5 = 0x42b;" (assignment_expression "uVar5 = 0x42b" identifier = number_literal) ;)) (expression_statement "unaff_s2 = pOVar10;" (assignment_expression "unaff_s2 = pOVar10" identifier = identifier) ;) (if_statement "if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;" if (parenthesized_expression "(unaff_s3 == (Output_reloc<4,false,64,false> *)0x0)" ( (binary_expression "unaff_s3 == (Output_reloc<4,false,64,false> *)0x0)" identifier == (parenthesized_expression "(Output_reloc<4,false,64,false> *)0x0)" ( (comma_expression "Output_reloc<4,false,64,false> *)0x0" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0x0" false , (comma_expression "64,false> *)0x0" number_literal , (binary_expression "false> *)0x0" false > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))))) ))) )) (goto_statement "goto LAB_001cff5c;" goto statement_identifier ;)) (expression_statement "piVar4 = *(int **)pOVar13;" (assignment_expression "piVar4 = *(int **)pOVar13" identifier = (pointer_expression "*(int **)pOVar13" * (cast_expression "(int **)pOVar13" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }" if (parenthesized_expression "(uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3))" ( (binary_expression "uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)" identifier < (call_expression "(uint)(piVar4[0x22] - piVar4[0x21] >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar4[0x22] - piVar4[0x21] >> 3)" ( (binary_expression "piVar4[0x22] - piVar4[0x21] >> 3" (binary_expression "piVar4[0x22] - piVar4[0x21]" (subscript_expression "piVar4[0x22]" identifier [ number_literal ]) - (subscript_expression "piVar4[0x21]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }" { (expression_statement "piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);" (assignment_expression "piVar3 = (int *)(piVar4[0x21] + uVar9 * 8)" identifier = (cast_expression "(int *)(piVar4[0x21] + uVar9 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[0x21] + uVar9 * 8)" ( (binary_expression "piVar4[0x21] + uVar9 * 8" (subscript_expression "piVar4[0x21]" identifier [ number_literal ]) + (binary_expression "uVar9 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar12 = *piVar3;" (assignment_expression "iVar12 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar1 = piVar3[1];" (assignment_expression "iVar1 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (if_statement "if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }" if (parenthesized_expression "((iVar12 != -1) || (iVar1 != -1))" ( (binary_expression "(iVar12 != -1) || (iVar1 != -1)" (parenthesized_expression "(iVar12 != -1)" ( (binary_expression "iVar12 != -1" identifier != number_literal) )) || (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) ))) )) (compound_statement "{\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }" { (return_statement "return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;" return (binary_expression "pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12" (binary_expression "pOVar10 + (uint)(param_4 + iVar1 < param_4)" identifier + (call_expression "(uint)(param_4 + iVar1 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 + iVar1 < param_4)" ( (binary_expression "param_4 + iVar1 < param_4" (binary_expression "param_4 + iVar1" identifier + identifier) < identifier) )))) + identifier) ;) })) (expression_statement "pcVar15 = *(code **)(*piVar4 + 0xec);" (assignment_expression "pcVar15 = *(code **)(*piVar4 + 0xec)" identifier = (pointer_expression "*(code **)(*piVar4 + 0xec)" * (cast_expression "(code **)(*piVar4 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xec)" ( (binary_expression "*piVar4 + 0xec" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff" identifier = (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff" ( (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0xffffffff" false , (comma_expression "64,false> *)0xffffffff" number_literal , (binary_expression "false> *)0xffffffff" false > (pointer_expression "*)0xffffffff" * (ERROR ")" )) number_literal))))) ))) ;) (expression_statement "uVar6 = param_4;" (assignment_expression "uVar6 = param_4" identifier = identifier) ;) (if_statement "if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;" if (parenthesized_expression "(pcVar15 != *(code **)(puVar14 + 0x264a34))" ( (binary_expression "pcVar15 != *(code **)(puVar14 + 0x264a34)" identifier != (pointer_expression "*(code **)(puVar14 + 0x264a34)" * (cast_expression "(code **)(puVar14 + 0x264a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x264a34)" ( (binary_expression "puVar14 + 0x264a34" identifier + number_literal) ))))) )) (goto_statement "goto LAB_001cff74;" goto statement_identifier ;)) (do_statement "do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );" do (compound_statement "{\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      }" { (expression_statement "uVar5 = 0x432;" (assignment_expression "uVar5 = 0x432" identifier = number_literal) ;) (expression_statement "unaff_s2 = pOVar10;" (assignment_expression "unaff_s2 = pOVar10" identifier = identifier) ;) (labeled_statement "LAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);" statement_identifier : (expression_statement "iVar12 = *(int *)(puVar14 + 0x262564);" (assignment_expression "iVar12 = *(int *)(puVar14 + 0x262564)" identifier = (pointer_expression "*(int *)(puVar14 + 0x262564)" * (cast_expression "(int *)(puVar14 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x262564)" ( (binary_expression "puVar14 + 0x262564" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = param_4;" (assignment_expression "uVar6 = param_4" identifier = identifier) ;) (expression_statement "pOVar10 = unaff_s2;" (assignment_expression "pOVar10 = unaff_s2" identifier = identifier) ;) (while_statement "while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }" { (expression_statement "pcVar15 = *(code **)(puVar14 + 0x262574);" (assignment_expression "pcVar15 = *(code **)(puVar14 + 0x262574)" identifier = (pointer_expression "*(code **)(puVar14 + 0x262574)" * (cast_expression "(code **)(puVar14 + 0x262574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x262574)" ( (binary_expression "puVar14 + 0x262574" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);" (call_expression "(*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4)" ( (binary_expression "*(int *)(puVar14 + 0x262564) + 0x59f0" (pointer_expression "*(int *)(puVar14 + 0x262564)" * (cast_expression "(int *)(puVar14 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x262564)" ( (binary_expression "puVar14 + 0x262564" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "iVar12 + 0x69d4" identifier + number_literal) ))) ;) (labeled_statement "LAB_001cff74:\n          param_4 = uVar6;" statement_identifier : (expression_statement "param_4 = uVar6;" (assignment_expression "param_4 = uVar6" identifier = identifier) ;)) (expression_statement "iVar12 = (*pcVar15)();" (assignment_expression "iVar12 = (*pcVar15)()" identifier = (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);" (assignment_expression "uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6)" identifier = (call_expression "(**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6)" (parenthesized_expression "(**(code **)(puVar14 + 0x26457c))" ( (pointer_expression "**(code **)(puVar14 + 0x26457c)" * (pointer_expression "*(code **)(puVar14 + 0x26457c)" * (cast_expression "(code **)(puVar14 + 0x26457c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x26457c)" ( (binary_expression "puVar14 + 0x26457c" identifier + number_literal) ))))) )) (argument_list "(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);" (assignment_expression "pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "((ulonglong)uVar17 >> 0x20)" ( (binary_expression "(ulonglong)uVar17 >> 0x20" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }" if (parenthesized_expression "(pOVar2 != pOVar13)" ( (binary_expression "pOVar2 != pOVar13" identifier != identifier) )) (compound_statement "{\n            return pOVar2;\n          }" { (return_statement "return pOVar2;" return identifier ;) })) (expression_statement "uVar5 = 0x434;" (assignment_expression "uVar5 = 0x434" identifier = number_literal) ;) (if_statement "if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }" if (parenthesized_expression "((Output_reloc<4,false,64,false> *)uVar17 != pOVar2)" ( (parenthesized_expression "(Output_reloc<4,false,64,false> *)uVar17 != pOVar2)" ( (comma_expression "Output_reloc<4,false,64,false> *)uVar17 != pOVar2" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)uVar17 != pOVar2" false , (comma_expression "64,false> *)uVar17 != pOVar2" number_literal , (binary_expression "false> *)uVar17 != pOVar2" (binary_expression "false> *)uVar17" false > (pointer_expression "*)uVar17" * (ERROR ")" )) identifier)) != identifier)))) )) )) (compound_statement "{\n            return pOVar2;\n          }" { (return_statement "return pOVar2;" return identifier ;) })) (expression_statement "iVar12 = *(int *)(puVar14 + 0x262564);" (assignment_expression "iVar12 = *(int *)(puVar14 + 0x262564)" identifier = (pointer_expression "*(int *)(puVar14 + 0x262564)" * (cast_expression "(int *)(puVar14 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x262564)" ( (binary_expression "puVar14 + 0x262564" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "(**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);" (call_expression "(**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8)" (parenthesized_expression "(**(code **)(puVar14 + 0x262574))" ( (pointer_expression "**(code **)(puVar14 + 0x262574)" * (pointer_expression "*(code **)(puVar14 + 0x262574)" * (cast_expression "(code **)(puVar14 + 0x262574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x262574)" ( (binary_expression "puVar14 + 0x262574" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8)" ( (binary_expression "*(int *)(puVar14 + 0x2623bc) + 0x44a8" (pointer_expression "*(int *)(puVar14 + 0x2623bc)" * (cast_expression "(int *)(puVar14 + 0x2623bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x2623bc)" ( (binary_expression "puVar14 + 0x2623bc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar14 + 0x262564) + 0x69b8" (pointer_expression "*(int *)(puVar14 + 0x262564)" * (cast_expression "(int *)(puVar14 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x262564)" ( (binary_expression "puVar14 + 0x262564" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "pcVar15 = *(code **)(puVar14 + 0x262574);" (assignment_expression "pcVar15 = *(code **)(puVar14 + 0x262574)" identifier = (pointer_expression "*(code **)(puVar14 + 0x262574)" * (cast_expression "(code **)(puVar14 + 0x262574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x262574)" ( (binary_expression "puVar14 + 0x262574" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8;" (assignment_expression "iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8" identifier = (binary_expression "*(int *)(puVar14 + 0x2623bc) + 0x44a8" (pointer_expression "*(int *)(puVar14 + 0x2623bc)" * (cast_expression "(int *)(puVar14 + 0x2623bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x2623bc)" ( (binary_expression "puVar14 + 0x2623bc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c);" (call_expression "(*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar14 + 0x262564) + 0x6e8c" (pointer_expression "*(int *)(puVar14 + 0x262564)" * (cast_expression "(int *)(puVar14 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x262564)" ( (binary_expression "puVar14 + 0x262564" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar6 = *(uint *)(iVar12 + 0x18);" (assignment_expression "uVar6 = *(uint *)(iVar12 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)(iVar12 + 0xc);" (assignment_expression "uVar9 = *(uint *)(iVar12 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar12 + 0xc)" * (cast_expression "(uint *)(iVar12 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8);" (assignment_expression "pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(iVar12 + 8)" * (call_expression "(Output_reloc<4,false,64,false> **)(iVar12 + 8)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(iVar12 + 4);" (assignment_expression "piVar4 = *(int **)(iVar12 + 4)" identifier = (pointer_expression "*(int **)(iVar12 + 4)" * (cast_expression "(int **)(iVar12 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar6 == 0xfffffffc) {\nLAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }\n    if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }\nLAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);\n  }\n  else {\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }" if (parenthesized_expression "(uVar6 == 0xfffffffc)" ( (binary_expression "uVar6 == 0xfffffffc" identifier == number_literal) )) (compound_statement "{\nLAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }\n    if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }\nLAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);\n  }" { (labeled_statement "LAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }" statement_identifier : (if_statement "if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return pOVar13;\n    }" { (return_statement "return pOVar13;" return identifier ;) }))) (if_statement "if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }" if (parenthesized_expression "(piVar4[8] < 0)" ( (binary_expression "piVar4[8] < 0" (subscript_expression "piVar4[8]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }" { (return_statement "return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];" return (binary_expression "pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2]" (binary_expression "pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9)" identifier + (call_expression "(uint)(uVar9 + piVar4[3] < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 + piVar4[3] < uVar9)" ( (binary_expression "uVar9 + piVar4[3] < uVar9" (binary_expression "uVar9 + piVar4[3]" identifier + (subscript_expression "piVar4[3]" identifier [ number_literal ])) < identifier) )))) + (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) })) (labeled_statement "LAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);" statement_identifier : (expression_statement "(**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);" (call_expression "(**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850)" (parenthesized_expression "(**(code **)(pcVar15 + 0x2623ac))" ( (pointer_expression "**(code **)(pcVar15 + 0x2623ac)" * (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" * (cast_expression "(code **)(pcVar15 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x2623ac)" ( (binary_expression "pcVar15 + 0x2623ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850)" ( (binary_expression "*(int *)(pcVar15 + 0x26239c) + -0x4fe0" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x7850" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) )))) + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }" else (compound_statement "{\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }" { (if_statement "if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58))" ( (binary_expression "*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)" (pointer_expression "*(code **)(*piVar4 + 0x60)" * (cast_expression "(code **)(*piVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x60)" ( (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" * identifier) + number_literal) )))) == (pointer_expression "*(code **)(pcVar15 + 0x263f58)" * (cast_expression "(code **)(pcVar15 + 0x263f58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x263f58)" ( (binary_expression "pcVar15 + 0x263f58" identifier + number_literal) ))))) )) (compound_statement "{\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }" { (if_statement "if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;" if (parenthesized_expression "((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6)" ( (binary_expression "(uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6" (call_expression "(uint)(piVar4[0xf] - piVar4[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar4[0xf] - piVar4[0xe] >> 2)" ( (binary_expression "piVar4[0xf] - piVar4[0xe] >> 2" (binary_expression "piVar4[0xf] - piVar4[0xe]" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar4[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (goto_statement "goto LAB_001d023c;" goto statement_identifier ;)) (expression_statement "iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);" (assignment_expression "iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4)" identifier = (pointer_expression "*(int *)(piVar4[0xe] + uVar6 * 4)" * (cast_expression "(int *)(piVar4[0xe] + uVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[0xe] + uVar6 * 4)" ( (binary_expression "piVar4[0xe] + uVar6 * 4" (subscript_expression "piVar4[0xe]" identifier [ number_literal ]) + (binary_expression "uVar6 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }" else (compound_statement "{\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }" { (expression_statement "iVar1 = (**(code **)(*piVar4 + 0x60))();" (assignment_expression "iVar1 = (**(code **)(*piVar4 + 0x60))()" identifier = (call_expression "(**(code **)(*piVar4 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar4 + 0x60))" ( (pointer_expression "**(code **)(*piVar4 + 0x60)" * (pointer_expression "*(code **)(*piVar4 + 0x60)" * (cast_expression "(code **)(*piVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x60)" ( (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar5 = 0x442;" (assignment_expression "uVar5 = 0x442" identifier = number_literal) ;) (if_statement "if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }" { (labeled_statement "LAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);" statement_identifier : (expression_statement "iVar12 = *(int *)(pcVar15 + 0x26239c);" (assignment_expression "iVar12 = *(int *)(pcVar15 + 0x26239c)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);" statement_identifier : (expression_statement "piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);" (assignment_expression "piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0)" identifier = (cast_expression "(int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar15 + 0x26239c) + 0x59f0)" ( (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x59f0" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "(**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);" (call_expression "(**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960)" (parenthesized_expression "(**(code **)(pcVar15 + 0x2623ac))" ( (pointer_expression "**(code **)(pcVar15 + 0x2623ac)" * (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" * (cast_expression "(code **)(pcVar15 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x2623ac)" ( (binary_expression "pcVar15 + 0x2623ac" identifier + number_literal) ))))) )) (argument_list "(piVar4,uVar5,iVar12 + 0x6960)" ( identifier , identifier , (binary_expression "iVar12 + 0x6960" identifier + number_literal) ))) ;) (expression_statement "uVar9 = extraout_v1;" (assignment_expression "uVar9 = extraout_v1" identifier = identifier) ;) (goto_statement "goto LAB_001d0158;" goto statement_identifier ;) })) (expression_statement "piVar4 = *(int **)(iVar12 + 4);" (assignment_expression "piVar4 = *(int **)(iVar12 + 4)" identifier = (pointer_expression "*(int **)(iVar12 + 4)" * (cast_expression "(int **)(iVar12 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }" if (parenthesized_expression "(*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3))" ( (binary_expression "*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)" (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) < (call_expression "(uint)(piVar4[0x22] - piVar4[0x21] >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar4[0x22] - piVar4[0x21] >> 3)" ( (binary_expression "piVar4[0x22] - piVar4[0x21] >> 3" (binary_expression "piVar4[0x22] - piVar4[0x21]" (subscript_expression "piVar4[0x22]" identifier [ number_literal ]) - (subscript_expression "piVar4[0x21]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }" { (expression_statement "piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);" (assignment_expression "piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8)" identifier = (cast_expression "(int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8)" ( (binary_expression "piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8" (subscript_expression "piVar4[0x21]" identifier [ number_literal ]) + (binary_expression "*(uint *)(iVar12 + 0x18) * 8" (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "iVar7 = *piVar3;" (assignment_expression "iVar7 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar11 = piVar3[1];" (assignment_expression "iVar11 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (if_statement "if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }" if (parenthesized_expression "((iVar7 == -1) && (iVar11 == -1))" ( (binary_expression "(iVar7 == -1) && (iVar11 == -1)" (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) && (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }" { (if_statement "if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }" if (parenthesized_expression "((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0))" ( (binary_expression "(*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)" (parenthesized_expression "(*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c))" ( (binary_expression "*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)" (pointer_expression "*(code **)(*piVar4 + 0xec)" * (cast_expression "(code **)(*piVar4 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xec)" ( (binary_expression "*piVar4 + 0xec" (pointer_expression "*piVar4" * identifier) + number_literal) )))) == (pointer_expression "*(code **)(pcVar15 + 0x26486c)" * (cast_expression "(code **)(pcVar15 + 0x26486c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x26486c)" ( (binary_expression "pcVar15 + 0x26486c" identifier + number_literal) ))))) )) || (parenthesized_expression "(iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(*piVar4 + 0xec))()" identifier = (call_expression "(**(code **)(*piVar4 + 0xec))()" (parenthesized_expression "(**(code **)(*piVar4 + 0xec))" ( (pointer_expression "**(code **)(*piVar4 + 0xec)" * (pointer_expression "*(code **)(*piVar4 + 0xec)" * (cast_expression "(code **)(*piVar4 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xec)" ( (binary_expression "*piVar4 + 0xec" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }" { (expression_statement "uVar5 = 0x44a;" (assignment_expression "uVar5 = 0x44a" identifier = number_literal) ;) (goto_statement "goto LAB_001d0140;" goto statement_identifier ;) })) (expression_statement "uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));" (assignment_expression "uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18))" identifier = (call_expression "(**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18))" (parenthesized_expression "(**(code **)(pcVar15 + 0x2643b4))" ( (pointer_expression "**(code **)(pcVar15 + 0x2643b4)" * (pointer_expression "*(code **)(pcVar15 + 0x2643b4)" * (cast_expression "(code **)(pcVar15 + 0x2643b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x2643b4)" ( (binary_expression "pcVar15 + 0x2643b4" identifier + number_literal) ))))) )) (argument_list "(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "((ulonglong)uVar17 >> 0x20)" ( (binary_expression "(ulonglong)uVar17 >> 0x20" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }" if (parenthesized_expression "(pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff)" ( (binary_expression "pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff)" identifier != (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff)" ( (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0xffffffff" false , (comma_expression "64,false> *)0xffffffff" number_literal , (binary_expression "false> *)0xffffffff" false > (pointer_expression "*)0xffffffff" * (ERROR ")" )) number_literal))))) ))) )) (compound_statement "{\n          return pOVar13;\n        }" { (return_statement "return pOVar13;" return identifier ;) })) (expression_statement "uVar5 = 0x44c;" (assignment_expression "uVar5 = 0x44c" identifier = number_literal) ;) (if_statement "if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }" if (parenthesized_expression "((int)uVar17 != -1)" ( (binary_expression "(int)uVar17 != -1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }" { (return_statement "return (Output_reloc<4,false,64,false> *)0xffffffff;" return (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff" ( (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0xffffffff" false , (comma_expression "64,false> *)0xffffffff" number_literal , (binary_expression "false> *)0xffffffff" false > (pointer_expression "*)0xffffffff" * (ERROR ")" )) number_literal))))) )) ;) })) (expression_statement "iVar12 = *(int *)(pcVar15 + 0x26239c);" (assignment_expression "iVar12 = *(int *)(pcVar15 + 0x26239c)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) ))))) ;) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff" identifier = (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff" ( (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0xffffffff" false , (comma_expression "64,false> *)0xffffffff" number_literal , (binary_expression "false> *)0xffffffff" false > (pointer_expression "*)0xffffffff" * (ERROR ")" )) number_literal))))) ))) ;) (goto_statement "goto LAB_001d0144;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }" if (parenthesized_expression "(*(int *)(iVar1 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar1 + 0x20) < 0" (pointer_expression "*(int *)(iVar1 + 0x20)" * (cast_expression "(int *)(iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }" { (expression_statement "uVar6 = uVar9 + iVar11;" (assignment_expression "uVar6 = uVar9 + iVar11" identifier = (binary_expression "uVar9 + iVar11" identifier + identifier)) ;) (return_statement "return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;" return (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7" (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9)" (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8)" (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6)" identifier + (call_expression "(uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 + *(int *)(iVar1 + 0xc) < uVar6)" ( (binary_expression "uVar6 + *(int *)(iVar1 + 0xc) < uVar6" (binary_expression "uVar6 + *(int *)(iVar1 + 0xc)" identifier + (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) ))))) < identifier) )))) + (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) + (call_expression "(uint)(uVar6 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 < uVar9)" ( (binary_expression "uVar6 < uVar9" identifier < identifier) )))) + identifier) ;) })) (goto_statement "goto LAB_001d0204;" goto statement_identifier ;) })) }))) (expression_statement "(**(code **)(pcVar15 + 0x2623ac))\n            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8);" (call_expression "(**(code **)(pcVar15 + 0x2623ac))\n            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8)" (parenthesized_expression "(**(code **)(pcVar15 + 0x2623ac))" ( (pointer_expression "**(code **)(pcVar15 + 0x2623ac)" * (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" * (cast_expression "(code **)(pcVar15 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x2623ac)" ( (binary_expression "pcVar15 + 0x2623ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8)" ( (binary_expression "*(int *)(pcVar15 + 0x2621f4) + 0x44a8" (pointer_expression "*(int *)(pcVar15 + 0x2621f4)" * (cast_expression "(int *)(pcVar15 + 0x2621f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x2621f4)" ( (binary_expression "pcVar15 + 0x2621f4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x69b8" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_001d023c:\n  puVar8 = (undefined8 *)&DAT_000005c8;" statement_identifier : (expression_statement "puVar8 = (undefined8 *)&DAT_000005c8;" (assignment_expression "puVar8 = (undefined8 *)&DAT_000005c8" identifier = (cast_expression "(undefined8 *)&DAT_000005c8" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000005c8" & identifier))) ;)) (expression_statement "pcVar16 = *(code **)(pcVar15 + 0x2623ac);" (assignment_expression "pcVar16 = *(code **)(pcVar15 + 0x2623ac)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" * (cast_expression "(code **)(pcVar15 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x2623ac)" ( (binary_expression "pcVar15 + 0x2623ac" identifier + number_literal) ))))) ;) (expression_statement "this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8);" (assignment_expression "this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8)" identifier = (call_expression "(Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8)" (parenthesized_expression "(Output_reloc<9,false,64,true> *)" ( (comma_expression "Output_reloc<9,false,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "false,64,true> *" false , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(*(int *)(pcVar15 + 0x2621f4) + 0x44a8)" ( (binary_expression "*(int *)(pcVar15 + 0x2621f4) + 0x44a8" (pointer_expression "*(int *)(pcVar15 + 0x2621f4)" * (cast_expression "(int *)(pcVar15 + 0x2621f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x2621f4)" ( (binary_expression "pcVar15 + 0x2621f4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c);" (call_expression "(*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x6e8c" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this);" (comma_expression "uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this)" (binary_expression "uVar17 = gold::Output_reloc<9" (assignment_expression "uVar17 = gold" identifier = identifier) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "false,64,true>::get_address(this)" false , (comma_expression "64,true>::get_address(this)" number_literal , (binary_expression "true>::get_address(this)" true > (ERROR "::" : :) (call_expression "get_address(this)" identifier (argument_list "(this)" ( identifier ))))))) ;) (expression_statement "pcVar15 = *(code **)(pcVar16 + 0x26495c);" (assignment_expression "pcVar15 = *(code **)(pcVar16 + 0x26495c)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x26495c)" * (cast_expression "(code **)(pcVar16 + 0x26495c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x26495c)" ( (binary_expression "pcVar16 + 0x26495c" identifier + number_literal) ))))) ;) (expression_statement "*puVar8 = uVar17;" (assignment_expression "*puVar8 = uVar17" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this);" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)(*pcVar15)(this)" (call_expression "(Output_reloc<4,false,64,false> *)(*pcVar15)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) ))) (argument_list "(this)" ( identifier )))) ;) (expression_statement "uVar9 = *(uint *)(this + 0x14);" (assignment_expression "uVar9 = *(uint *)(this + 0x14)" identifier = (pointer_expression "*(uint *)(this + 0x14)" * (cast_expression "(uint *)(this + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13;" (assignment_expression "*(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13" (pointer_expression "*(Output_reloc<4,false,64,false> **)(puVar8 + 1)" * (call_expression "(Output_reloc<4,false,64,false> **)(puVar8 + 1)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(puVar8 + 1)" ( (binary_expression "puVar8 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)puVar8 + 0xc) = uVar9 >> 4;" (assignment_expression "*(uint *)((int)puVar8 + 0xc) = uVar9 >> 4" (pointer_expression "*(uint *)((int)puVar8 + 0xc)" * (cast_expression "(uint *)((int)puVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xc)" ( (binary_expression "(int)puVar8 + 0xc" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar9 >> 4" identifier >> number_literal)) ;) (return_statement "return pOVar13;" return identifier ;) }))
(translation_unit "/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* DWARF original prototype: void do_write(Output_data_reloc_base<4,_false,_64,_false> * this,\n   Output_file * of) */\n\nvoid __thiscall\ngold::Output_data_reloc_base<4,_false,_64,_false>::do_write\n          (Output_data_reloc_base<4,_false,_64,_false> *this,Output_file *of)\n\n{\n  int iVar1;\n  pointer pOVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  int *piVar6;\n  Output_reloc<9,_false,_64,_true> *this_00;\n  undefined4 uVar7;\n  Elf_Addr *pEVar8;\n  uchar *puVar9;\n  size_t in_a3;\n  size_t sVar10;\n  uint uVar11;\n  uchar *unaff_s1;\n  uchar *__fd;\n  pointer unaff_s2;\n  uchar *unaff_s3;\n  uchar *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  undefined8 uVar16;\n  Elf_Addr EVar17;\n  \n  iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20;\n  if (iVar1 << 2 < 0) {\n    iVar4 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                     super_Output_section_data.super_Output_data.offset_;\n    unaff_s3 = *(uchar **)\n                ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_ + 4);\n    if (iVar1 << 1 < 0) {\n      iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.data_size_;\n      puVar12 = *(uchar **)\n                 ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_ + 4);\n      if (iVar4 < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        puVar9 = puVar12 + (int)unaff_s3;\n        iVar4 = (uint)(puVar9 < puVar12) + iVar4;\n        if ((*(int *)&of->file_size_ < iVar4) ||\n           ((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)))) goto LAB_001cfdf4;\n        unaff_s1 = of->base_;\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if ((this->super_Output_data_reloc_generic).sort_relocs_ == false) {\n          unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n          iVar4 = 0;\n          __fd = unaff_s3;\n          if (unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish) {\n            unaff_s1 = (uchar *)0x0;\n          }\n          else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }\n  pOVar2 = (pointer)(PTR_s_alize_xindex_004323b4 + 0x7818);\n  puVar12 = PTR_s_alize_xindex_004323b4 + -0x4fe0;\n  puVar13 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar12,0xe3);\n  uVar11 = *(uint *)(puVar12 + 0x10);\n  if ((0xfffffffa < uVar11 - 1) || (unaff_s1 = puVar12, -1 < *(int *)(puVar12 + 0x14) << 0x1e)) {\n    puVar12 = unaff_s1;\n    uVar7 = 0x428;\n    goto LAB_001cff5c;\n  }\n  piVar6 = *(int **)puVar12;\n  if (*(code **)(*piVar6 + 0x60) == *(code **)(puVar13 + 0x264120)) {\n    if (uVar11 < (uint)(piVar6[0xf] - piVar6[0xe] >> 2)) {\n      unaff_s3 = *(uchar **)(piVar6[0xe] + uVar11 * 4);\n      goto LAB_001cfed4;\n    }\n  }\n  else {\n    unaff_s3 = (uchar *)(**(code **)(*piVar6 + 0x60))(piVar6,uVar11);\nLAB_001cfed4:\n    uVar7 = 0x42b;\n    unaff_s2 = pOVar2;\n    if (unaff_s3 == (uchar *)0x0) goto LAB_001cff5c;\n    piVar6 = *(int **)puVar12;\n    if (uVar11 < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {\n      piVar5 = (int *)(piVar6[0x21] + uVar11 * 8);\n      if ((*piVar5 != -1) || (piVar5[1] != -1)) {\n        return;\n      }\n      pcVar14 = *(code **)(*piVar6 + 0xec);\n      puVar12 = (uchar *)0xffffffff;\n      sVar10 = in_a3;\n      if (pcVar14 != *(code **)(puVar13 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar7 = 0x432;\n        unaff_s2 = pOVar2;\nLAB_001cff5c:\n        iVar1 = *(int *)(puVar13 + 0x262564);\n        sVar10 = in_a3;\n        pOVar2 = unaff_s2;\n        while( true ) {\n          pcVar14 = *(code **)(puVar13 + 0x262574);\n          (*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);\nLAB_001cff74:\n          in_a3 = sVar10;\n          iVar1 = (*pcVar14)();\n          if (iVar1 == 0) break;\n          uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);\n          puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);\n          if (puVar9 != puVar12) {\n            return;\n          }\n          uVar7 = 0x434;\n          if ((uchar *)uVar16 != puVar9) {\n            return;\n          }\n          iVar1 = *(int *)(puVar13 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar13 + 0x262574))\n              (*(int *)(puVar13 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar13 + 0x262564) + 0x69b8);\n  }\n  pcVar14 = *(code **)(puVar13 + 0x262574);\n  iVar1 = *(int *)(puVar13 + 0x2623bc) + 0x44a8;\n  (*pcVar14)(iVar1,0x5c8,*(int *)(puVar13 + 0x262564) + 0x6e8c);\n  uVar11 = *(uint *)(iVar1 + 0x18);\n  piVar6 = *(int **)(iVar1 + 4);\n  if (uVar11 == 0xfffffffc) {\nLAB_001d0158:\n    if (piVar6 == (int *)0x0) {\n      return;\n    }\n    if (piVar6[8] < 0) {\n      return;\n    }\nLAB_001d0204:\n    (**(code **)(pcVar14 + 0x2623ac))\n              (*(int *)(pcVar14 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar14 + 0x26239c) + 0x7850);\n  }\n  else {\n    if (*(code **)(*piVar6 + 0x60) == *(code **)(pcVar14 + 0x263f58)) {\n      if ((uint)(piVar6[0xf] - piVar6[0xe] >> 2) <= uVar11) goto LAB_001d023c;\n      iVar4 = *(int *)(piVar6[0xe] + uVar11 * 4);\n    }\n    else {\n      iVar4 = (**(code **)(*piVar6 + 0x60))();\n    }\n    uVar7 = 0x442;\n    if (iVar4 == 0) {\nLAB_001d0140:\n      iVar1 = *(int *)(pcVar14 + 0x26239c);\nLAB_001d0144:\n      piVar6 = (int *)(*(int *)(pcVar14 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar14 + 0x2623ac))(piVar6,uVar7,iVar1 + 0x6960);\n      goto LAB_001d0158;\n    }\n    piVar6 = *(int **)(iVar1 + 4);\n    if (*(uint *)(iVar1 + 0x18) < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {\n      piVar5 = (int *)(piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8);\n      if ((*piVar5 == -1) && (piVar5[1] == -1)) {\n        if ((*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||\n           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)) {\n          uVar7 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar16 = (**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18));\n        if ((int)((ulonglong)uVar16 >> 0x20) != -1) {\n          return;\n        }\n        uVar7 = 0x44c;\n        if ((int)uVar16 != -1) {\n          return;\n        }\n        iVar1 = *(int *)(pcVar14 + 0x26239c);\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar4 + 0x20) < 0) {\n        return;\n      }\n      goto LAB_001d0204;\n    }\n  }\n  (**(code **)(pcVar14 + 0x2623ac))\n            (*(int *)(pcVar14 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar14 + 0x26239c) + 0x69b8);\nLAB_001d023c:\n  pEVar8 = (Elf_Addr *)&DAT_000005c8;\n  pcVar15 = *(code **)(pcVar14 + 0x2623ac);\n  this_00 = (Output_reloc<9,_false,_64,_true> *)(*(int *)(pcVar14 + 0x2621f4) + 0x44a8);\n  (*pcVar15)(this_00,0x5c8,*(int *)(pcVar14 + 0x26239c) + 0x6e8c);\n  EVar17 = Output_reloc<9,_false,_64,_true>::get_address(this_00);\n  pcVar14 = *(code **)(pcVar15 + 0x26495c);\n  *pEVar8 = EVar17;\n  uVar7 = (*pcVar14)(this_00);\n  uVar11 = *(uint *)&this_00->field_0x14;\n  *(undefined4 *)(pEVar8 + 1) = uVar7;\n  *(uint *)((int)pEVar8 + 0xc) = uVar11 >> 4;\n  return;\n}\n\n" comment comment comment (declaration "void __thiscall\ngold::Output_data_reloc_base<4,_false,_64,_false>::do_write\n          (Output_data_reloc_base<4,_false,_64,_false> *this,Output_file *of)\n\n{\n  int iVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<4" < number_literal) , identifier , identifier , (ERROR "_false>::do_write\n          (Output_data_reloc_base<4,_false,_64,_false> *this,Output_file *of)\n\n{\n  int" identifier > : : (function_declarator "do_write\n          (Output_data_reloc_base<4,_false,_64,_false> *this,Output_file *of)" identifier (parameter_list "(Output_data_reloc_base<4,_false,_64,_false> *this,Output_file *of)" ( (parameter_declaration "Output_data_reloc_base" type_identifier) (ERROR "<4" < number_literal) , (parameter_declaration "_false" type_identifier) , (parameter_declaration "_64" type_identifier) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) { primitive_type) identifier ;) (declaration "pointer pOVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (expression_statement "Output_reloc<9,_false,_64,_true> *this_00;" (update_expression "Output_reloc<9,_false,_64,_true> *this_00" (binary_expression "Output_reloc<9,_false,_64,_true> *this_00" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",_false,_64,_true" , identifier , identifier , identifier) > (pointer_expression "*this_00" * identifier)) --) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "Elf_Addr *pEVar8;" type_identifier (pointer_declarator "*pEVar8" * identifier) ;) (declaration "uchar *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "size_t in_a3;" primitive_type identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uchar *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "uchar *__fd;" type_identifier (pointer_declarator "*__fd" * identifier) ;) (declaration "pointer unaff_s2;" type_identifier identifier ;) (declaration "uchar *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uchar *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined8 uVar16;" type_identifier identifier ;) (declaration "Elf_Addr EVar17;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20;" (assignment_expression "iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20" identifier = (pointer_expression "*(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20" * (cast_expression "(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20" & (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                   super_Output_section_data" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_reloc_generic)" ( (field_expression "this->super_Output_data_reloc_generic" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))))) ;) (if_statement "if (iVar1 << 2 < 0) {\n    iVar4 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                     super_Output_section_data.super_Output_data.offset_;\n    unaff_s3 = *(uchar **)\n                ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_ + 4);\n    if (iVar1 << 1 < 0) {\n      iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.data_size_;\n      puVar12 = *(uchar **)\n                 ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_ + 4);\n      if (iVar4 < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        puVar9 = puVar12 + (int)unaff_s3;\n        iVar4 = (uint)(puVar9 < puVar12) + iVar4;\n        if ((*(int *)&of->file_size_ < iVar4) ||\n           ((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)))) goto LAB_001cfdf4;\n        unaff_s1 = of->base_;\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if ((this->super_Output_data_reloc_generic).sort_relocs_ == false) {\n          unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n          iVar4 = 0;\n          __fd = unaff_s3;\n          if (unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish) {\n            unaff_s1 = (uchar *)0x0;\n          }\n          else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }" if (parenthesized_expression "(iVar1 << 2 < 0)" ( (binary_expression "iVar1 << 2 < 0" (binary_expression "iVar1 << 2" identifier << number_literal) < number_literal) )) (compound_statement "{\n    iVar4 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                     super_Output_section_data.super_Output_data.offset_;\n    unaff_s3 = *(uchar **)\n                ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_ + 4);\n    if (iVar1 << 1 < 0) {\n      iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.data_size_;\n      puVar12 = *(uchar **)\n                 ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_ + 4);\n      if (iVar4 < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        puVar9 = puVar12 + (int)unaff_s3;\n        iVar4 = (uint)(puVar9 < puVar12) + iVar4;\n        if ((*(int *)&of->file_size_ < iVar4) ||\n           ((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)))) goto LAB_001cfdf4;\n        unaff_s1 = of->base_;\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if ((this->super_Output_data_reloc_generic).sort_relocs_ == false) {\n          unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n          iVar4 = 0;\n          __fd = unaff_s3;\n          if (unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish) {\n            unaff_s1 = (uchar *)0x0;\n          }\n          else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }" { (expression_statement "iVar4 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                     super_Output_section_data.super_Output_data.offset_;" (assignment_expression "iVar4 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                     super_Output_section_data.super_Output_data.offset_" identifier = (pointer_expression "*(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                     super_Output_section_data.super_Output_data.offset_" * (cast_expression "(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                     super_Output_section_data.super_Output_data.offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                     super_Output_section_data.super_Output_data.offset_" & (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                     super_Output_section_data.super_Output_data.offset_" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                     super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                     super_Output_section_data" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_reloc_generic)" ( (field_expression "this->super_Output_data_reloc_generic" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))))) ;) (expression_statement "unaff_s3 = *(uchar **)\n                ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_ + 4);" (assignment_expression "unaff_s3 = *(uchar **)\n                ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_ + 4)" identifier = (pointer_expression "*(uchar **)\n                ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_ + 4)" * (cast_expression "(uchar **)\n                ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_ + 4)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_ + 4)" ( (binary_expression "(int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_ + 4" (cast_expression "(int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_" & (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.offset_" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_reloc_generic)" ( (field_expression "this->super_Output_data_reloc_generic" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (iVar1 << 1 < 0) {\n      iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.data_size_;\n      puVar12 = *(uchar **)\n                 ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_ + 4);\n      if (iVar4 < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        puVar9 = puVar12 + (int)unaff_s3;\n        iVar4 = (uint)(puVar9 < puVar12) + iVar4;\n        if ((*(int *)&of->file_size_ < iVar4) ||\n           ((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)))) goto LAB_001cfdf4;\n        unaff_s1 = of->base_;\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if ((this->super_Output_data_reloc_generic).sort_relocs_ == false) {\n          unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n          iVar4 = 0;\n          __fd = unaff_s3;\n          if (unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish) {\n            unaff_s1 = (uchar *)0x0;\n          }\n          else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }" if (parenthesized_expression "(iVar1 << 1 < 0)" ( (binary_expression "iVar1 << 1 < 0" (binary_expression "iVar1 << 1" identifier << number_literal) < number_literal) )) (compound_statement "{\n      iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.data_size_;\n      puVar12 = *(uchar **)\n                 ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_ + 4);\n      if (iVar4 < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        puVar9 = puVar12 + (int)unaff_s3;\n        iVar4 = (uint)(puVar9 < puVar12) + iVar4;\n        if ((*(int *)&of->file_size_ < iVar4) ||\n           ((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)))) goto LAB_001cfdf4;\n        unaff_s1 = of->base_;\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if ((this->super_Output_data_reloc_generic).sort_relocs_ == false) {\n          unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n          iVar4 = 0;\n          __fd = unaff_s3;\n          if (unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish) {\n            unaff_s1 = (uchar *)0x0;\n          }\n          else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }" { (expression_statement "iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.data_size_;" (assignment_expression "iVar1 = *(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.data_size_" identifier = (pointer_expression "*(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.data_size_" * (cast_expression "(int *)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.data_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.data_size_" & (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data.data_size_" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                       super_Output_section_data" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_reloc_generic)" ( (field_expression "this->super_Output_data_reloc_generic" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))))) ;) (expression_statement "puVar12 = *(uchar **)\n                 ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_ + 4);" (assignment_expression "puVar12 = *(uchar **)\n                 ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_ + 4)" identifier = (pointer_expression "*(uchar **)\n                 ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_ + 4)" * (cast_expression "(uchar **)\n                 ((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_ + 4)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_ + 4" (cast_expression "(int)&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_" & (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build.\n                        super_Output_section_data" (field_expression "(this->super_Output_data_reloc_generic).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_reloc_generic)" ( (field_expression "this->super_Output_data_reloc_generic" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (iVar4 < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        puVar9 = puVar12 + (int)unaff_s3;\n        iVar4 = (uint)(puVar9 < puVar12) + iVar4;\n        if ((*(int *)&of->file_size_ < iVar4) ||\n           ((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)))) goto LAB_001cfdf4;\n        unaff_s1 = of->base_;\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if ((this->super_Output_data_reloc_generic).sort_relocs_ == false) {\n          unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n          iVar4 = 0;\n          __fd = unaff_s3;\n          if (unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish) {\n            unaff_s1 = (uchar *)0x0;\n          }\n          else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }\n        }\n      }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }" { (labeled_statement "LAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_004346b8 + 0x2b60))();" (call_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))()" (parenthesized_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))" ( (pointer_expression "*(code *)(PTR_LAB_004346b8 + 0x2b60)" * (cast_expression "(code *)(PTR_LAB_004346b8 + 0x2b60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_004346b8 + 0x2b60)" ( (binary_expression "PTR_LAB_004346b8 + 0x2b60" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;)) }) (else_clause "else {\n        puVar9 = puVar12 + (int)unaff_s3;\n        iVar4 = (uint)(puVar9 < puVar12) + iVar4;\n        if ((*(int *)&of->file_size_ < iVar4) ||\n           ((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)))) goto LAB_001cfdf4;\n        unaff_s1 = of->base_;\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if ((this->super_Output_data_reloc_generic).sort_relocs_ == false) {\n          unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n          iVar4 = 0;\n          __fd = unaff_s3;\n          if (unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish) {\n            unaff_s1 = (uchar *)0x0;\n          }\n          else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }\n        }\n      }" else (compound_statement "{\n        puVar9 = puVar12 + (int)unaff_s3;\n        iVar4 = (uint)(puVar9 < puVar12) + iVar4;\n        if ((*(int *)&of->file_size_ < iVar4) ||\n           ((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)))) goto LAB_001cfdf4;\n        unaff_s1 = of->base_;\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if ((this->super_Output_data_reloc_generic).sort_relocs_ == false) {\n          unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n          iVar4 = 0;\n          __fd = unaff_s3;\n          if (unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish) {\n            unaff_s1 = (uchar *)0x0;\n          }\n          else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }\n        }\n      }" { (expression_statement "puVar9 = puVar12 + (int)unaff_s3;" (assignment_expression "puVar9 = puVar12 + (int)unaff_s3" identifier = (binary_expression "puVar12 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar4 = (uint)(puVar9 < puVar12) + iVar4;" (assignment_expression "iVar4 = (uint)(puVar9 < puVar12) + iVar4" identifier = (binary_expression "(uint)(puVar9 < puVar12) + iVar4" (call_expression "(uint)(puVar9 < puVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar9 < puVar12)" ( (binary_expression "puVar9 < puVar12" identifier < identifier) ))) + identifier)) ;) (if_statement "if ((*(int *)&of->file_size_ < iVar4) ||\n           ((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)))) goto LAB_001cfdf4;" if (parenthesized_expression "((*(int *)&of->file_size_ < iVar4) ||\n           ((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0))))" ( (binary_expression "(*(int *)&of->file_size_ < iVar4) ||\n           ((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)))" (parenthesized_expression "(*(int *)&of->file_size_ < iVar4)" ( (binary_expression "*(int *)&of->file_size_ < iVar4" (pointer_expression "*(int *)&of->file_size_" * (cast_expression "(int *)&of->file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier)))) < identifier) )) || (parenthesized_expression "((*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)))" ( (parenthesized_expression "(*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0))" ( (binary_expression "*(int *)&of->file_size_ == iVar4 &&\n            (puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)" (binary_expression "*(int *)&of->file_size_ == iVar4" (pointer_expression "*(int *)&of->file_size_" * (cast_expression "(int *)&of->file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier)))) == identifier) && (parenthesized_expression "(puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0)" ( (comma_expression "puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9),\n            puVar9 != (uchar *)0x0" (assignment_expression "puVar9 = (uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9)" identifier = (cast_expression "(uchar *)(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(uchar **)((int)&of->file_size_ + 4) < puVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uchar **)((int)&of->file_size_ + 4) < puVar9)" ( (binary_expression "*(uchar **)((int)&of->file_size_ + 4) < puVar9" (pointer_expression "*(uchar **)((int)&of->file_size_ + 4)" * (cast_expression "(uchar **)((int)&of->file_size_ + 4)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&of->file_size_ + 4)" ( (binary_expression "(int)&of->file_size_ + 4" (cast_expression "(int)&of->file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier))) + number_literal) )))) < identifier) ))))) , (binary_expression "puVar9 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (goto_statement "goto LAB_001cfdf4;" goto statement_identifier ;)) (expression_statement "unaff_s1 = of->base_;" (assignment_expression "unaff_s1 = of->base_" identifier = (field_expression "of->base_" identifier -> field_identifier)) ;) (expression_statement "unaff_s3 = unaff_s1 + (int)unaff_s3;" (assignment_expression "unaff_s3 = unaff_s1 + (int)unaff_s3" identifier = (binary_expression "unaff_s1 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((this->super_Output_data_reloc_generic).sort_relocs_ == false) {\n          unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n          iVar4 = 0;\n          __fd = unaff_s3;\n          if (unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish) {\n            unaff_s1 = (uchar *)0x0;\n          }\n          else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }\n        }" if (parenthesized_expression "((this->super_Output_data_reloc_generic).sort_relocs_ == false)" ( (binary_expression "(this->super_Output_data_reloc_generic).sort_relocs_ == false" (field_expression "(this->super_Output_data_reloc_generic).sort_relocs_" (parenthesized_expression "(this->super_Output_data_reloc_generic)" ( (field_expression "this->super_Output_data_reloc_generic" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n          unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n          iVar4 = 0;\n          __fd = unaff_s3;\n          if (unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish) {\n            unaff_s1 = (uchar *)0x0;\n          }\n          else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }\n        }" { (ERROR "unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::" (comma_expression "unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std" (binary_expression "unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4" (assignment_expression "unaff_s2 = (this->relocs_).\n                     super__Vector_base<gold" identifier = (binary_expression "(this->relocs_).\n                     super__Vector_base<gold" (field_expression "(this->relocs_).\n                     super__Vector_base" (parenthesized_expression "(this->relocs_)" ( (field_expression "this->relocs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "_false,_64,_false>,_std" identifier , (comma_expression "_64,_false>,_std" identifier , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier)))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;" (comma_expression "Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_false,_64,_false>_>_>\n                     ._M_impl._M_start" identifier , (comma_expression "_64,_false>_>_>\n                     ._M_impl._M_start" identifier , (field_expression "_false>_>_>\n                     ._M_impl._M_start" (field_expression "_false>_>_>\n                     ._M_impl" (binary_expression "_false>_>_" (binary_expression "_false>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "__fd = unaff_s3;" (assignment_expression "__fd = unaff_s3" identifier = identifier) ;) (if_statement "if (unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish) {\n            unaff_s1 = (uchar *)0x0;\n          }\n          else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }" if (parenthesized_expression "(unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish)" ( (ERROR "unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::" (comma_expression "unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std" (binary_expression "unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4" (binary_expression "unaff_s2 ==\n              (this->relocs_).\n              super__Vector_base<gold" identifier == (binary_expression "(this->relocs_).\n              super__Vector_base<gold" (field_expression "(this->relocs_).\n              super__Vector_base" (parenthesized_expression "(this->relocs_)" ( (field_expression "this->relocs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "_false,_64,_false>,_std" identifier , (comma_expression "_64,_false>,_std" identifier , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier)))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_false,_64,_false>_>_>\n              ._M_impl._M_finish" identifier , (comma_expression "_64,_false>_>_>\n              ._M_impl._M_finish" identifier , (field_expression "_false>_>_>\n              ._M_impl._M_finish" (field_expression "_false>_>_>\n              ._M_impl" (binary_expression "_false>_>_" (binary_expression "_false>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)))) )) (compound_statement "{\n            unaff_s1 = (uchar *)0x0;\n          }" { (expression_statement "unaff_s1 = (uchar *)0x0;" (assignment_expression "unaff_s1 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }" else (compound_statement "{\n            do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);\n            unaff_s1 = __fd + -(int)unaff_s3;\n            iVar4 = (int)unaff_s1 >> 0x1f;\n          }" { (do_statement "do {\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            } while ((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2);" do (compound_statement "{\n              Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);\n              unaff_s2 = unaff_s2 + 1;\n              __fd = __fd + 0x18;\n            }" { (expression_statement "Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3);" (comma_expression "Output_reloc<4,_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3)" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_false,_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3)" identifier , (comma_expression "_64,_false>::write(unaff_s2,(int)__fd,puVar9,in_a3)" identifier , (binary_expression "_false>::write(unaff_s2,(int)__fd,puVar9,in_a3)" identifier > (ERROR "::" : :) (call_expression "write(unaff_s2,(int)__fd,puVar9,in_a3)" identifier (argument_list "(unaff_s2,(int)__fd,puVar9,in_a3)" ( identifier , (cast_expression "(int)__fd" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))))))) ;) (expression_statement "unaff_s2 = unaff_s2 + 1;" (assignment_expression "unaff_s2 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ;) (expression_statement "__fd = __fd + 0x18;" (assignment_expression "__fd = __fd + 0x18" identifier = (binary_expression "__fd + 0x18" identifier + number_literal)) ;) }) while (parenthesized_expression "((this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2)" ( (ERROR "(this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::" (comma_expression "(this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std" (binary_expression "(this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4" (binary_expression "(this->relocs_).\n                     super__Vector_base<gold" (field_expression "(this->relocs_).\n                     super__Vector_base" (parenthesized_expression "(this->relocs_)" ( (field_expression "this->relocs_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "_false,_64,_false>,_std" identifier , (comma_expression "_64,_false>,_std" identifier , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier)))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_false,_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2" identifier , (comma_expression "_64,_false>_>_>\n                     ._M_impl._M_finish != unaff_s2" identifier , (binary_expression "_false>_>_>\n                     ._M_impl._M_finish != unaff_s2" (field_expression "_false>_>_>\n                     ._M_impl._M_finish" (field_expression "_false>_>_>\n                     ._M_impl" (binary_expression "_false>_>_" (binary_expression "_false>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier)))) )) ;) (expression_statement "unaff_s1 = __fd + -(int)unaff_s3;" (assignment_expression "unaff_s1 = __fd + -(int)unaff_s3" identifier = (binary_expression "__fd + -(int)unaff_s3" identifier + (unary_expression "-(int)unaff_s3" - (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "iVar4 = (int)unaff_s1 >> 0x1f;" (assignment_expression "iVar4 = (int)unaff_s1 >> 0x1f" identifier = (binary_expression "(int)unaff_s1 >> 0x1f" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }))) (if_statement "if ((iVar1 == iVar4) && (puVar12 == unaff_s1)) {\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }" if (parenthesized_expression "((iVar1 == iVar4) && (puVar12 == unaff_s1))" ( (binary_expression "(iVar1 == iVar4) && (puVar12 == unaff_s1)" (parenthesized_expression "(iVar1 == iVar4)" ( (binary_expression "iVar1 == iVar4" identifier == identifier) )) && (parenthesized_expression "(puVar12 == unaff_s1)" ( (binary_expression "puVar12 == unaff_s1" identifier == identifier) ))) )) (compound_statement "{\n            pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;\n            if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }\n            return;\n          }" { (ERROR "pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::" (comma_expression "pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std" (binary_expression "pOVar2 = (this->relocs_).\n                     super__Vector_base<gold::Output_reloc<4" (assignment_expression "pOVar2 = (this->relocs_).\n                     super__Vector_base<gold" identifier = (binary_expression "(this->relocs_).\n                     super__Vector_base<gold" (field_expression "(this->relocs_).\n                     super__Vector_base" (parenthesized_expression "(this->relocs_)" ( (field_expression "this->relocs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "_false,_64,_false>,_std" identifier , (comma_expression "_64,_false>,_std" identifier , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier)))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start;" (comma_expression "Output_reloc<4,_false,_64,_false>_>_>\n                     ._M_impl._M_start" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_false,_64,_false>_>_>\n                     ._M_impl._M_start" identifier , (comma_expression "_64,_false>_>_>\n                     ._M_impl._M_start" identifier , (field_expression "_false>_>_>\n                     ._M_impl._M_start" (field_expression "_false>_>_>\n                     ._M_impl" (binary_expression "_false>_>_" (binary_expression "_false>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)))) ;) (if_statement "if (pOVar2 != unaff_s2) {\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }" if (parenthesized_expression "(pOVar2 != unaff_s2)" ( (binary_expression "pOVar2 != unaff_s2" identifier != identifier) )) (compound_statement "{\n              (this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;\n            }" { (ERROR "(this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std::allocator<gold::" (comma_expression "(this->relocs_).\n              super__Vector_base<gold::Output_reloc<4,_false,_64,_false>,_std" (binary_expression "(this->relocs_).\n              super__Vector_base<gold::Output_reloc<4" (binary_expression "(this->relocs_).\n              super__Vector_base<gold" (field_expression "(this->relocs_).\n              super__Vector_base" (parenthesized_expression "(this->relocs_)" ( (field_expression "this->relocs_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "_false,_64,_false>,_std" identifier , (comma_expression "_64,_false>,_std" identifier , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier)))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2;" (comma_expression "Output_reloc<4,_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_false,_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2" identifier , (comma_expression "_64,_false>_>_>\n              ._M_impl._M_finish = pOVar2" identifier , (assignment_expression "_false>_>_>\n              ._M_impl._M_finish = pOVar2" (field_expression "_false>_>_>\n              ._M_impl._M_finish" (field_expression "_false>_>_>\n              ._M_impl" (binary_expression "_false>_>_" (binary_expression "_false>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier)))) ;) })) (return_statement "return;" return ;) })) })) }))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) ))) ;) })) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7894" identifier + number_literal) ))) ;) })) (expression_statement "pOVar2 = (pointer)(PTR_s_alize_xindex_004323b4 + 0x7818);" (assignment_expression "pOVar2 = (pointer)(PTR_s_alize_xindex_004323b4 + 0x7818)" identifier = (call_expression "(pointer)(PTR_s_alize_xindex_004323b4 + 0x7818)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(PTR_s_alize_xindex_004323b4 + 0x7818)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7818" identifier + number_literal) )))) ;) (expression_statement "puVar12 = PTR_s_alize_xindex_004323b4 + -0x4fe0;" (assignment_expression "puVar12 = PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier = (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal)) ;) (expression_statement "puVar13 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar13 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar12,0xe3);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar12,0xe3)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar12,0xe3)" ( identifier , number_literal ))) ;) (expression_statement "uVar11 = *(uint *)(puVar12 + 0x10);" (assignment_expression "uVar11 = *(uint *)(puVar12 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar12 + 0x10)" * (cast_expression "(uint *)(puVar12 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((0xfffffffa < uVar11 - 1) || (unaff_s1 = puVar12, -1 < *(int *)(puVar12 + 0x14) << 0x1e)) {\n    puVar12 = unaff_s1;\n    uVar7 = 0x428;\n    goto LAB_001cff5c;\n  }" if (parenthesized_expression "((0xfffffffa < uVar11 - 1) || (unaff_s1 = puVar12, -1 < *(int *)(puVar12 + 0x14) << 0x1e))" ( (binary_expression "(0xfffffffa < uVar11 - 1) || (unaff_s1 = puVar12, -1 < *(int *)(puVar12 + 0x14) << 0x1e)" (parenthesized_expression "(0xfffffffa < uVar11 - 1)" ( (binary_expression "0xfffffffa < uVar11 - 1" number_literal < (binary_expression "uVar11 - 1" identifier - number_literal)) )) || (parenthesized_expression "(unaff_s1 = puVar12, -1 < *(int *)(puVar12 + 0x14) << 0x1e)" ( (comma_expression "unaff_s1 = puVar12, -1 < *(int *)(puVar12 + 0x14) << 0x1e" (assignment_expression "unaff_s1 = puVar12" identifier = identifier) , (binary_expression "-1 < *(int *)(puVar12 + 0x14) << 0x1e" number_literal < (binary_expression "*(int *)(puVar12 + 0x14) << 0x1e" (pointer_expression "*(int *)(puVar12 + 0x14)" * (cast_expression "(int *)(puVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x14)" ( (binary_expression "puVar12 + 0x14" identifier + number_literal) )))) << number_literal))) ))) )) (compound_statement "{\n    puVar12 = unaff_s1;\n    uVar7 = 0x428;\n    goto LAB_001cff5c;\n  }" { (expression_statement "puVar12 = unaff_s1;" (assignment_expression "puVar12 = unaff_s1" identifier = identifier) ;) (expression_statement "uVar7 = 0x428;" (assignment_expression "uVar7 = 0x428" identifier = number_literal) ;) (goto_statement "goto LAB_001cff5c;" goto statement_identifier ;) })) (expression_statement "piVar6 = *(int **)puVar12;" (assignment_expression "piVar6 = *(int **)puVar12" identifier = (pointer_expression "*(int **)puVar12" * (cast_expression "(int **)puVar12" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (*(code **)(*piVar6 + 0x60) == *(code **)(puVar13 + 0x264120)) {\n    if (uVar11 < (uint)(piVar6[0xf] - piVar6[0xe] >> 2)) {\n      unaff_s3 = *(uchar **)(piVar6[0xe] + uVar11 * 4);\n      goto LAB_001cfed4;\n    }\n  }\n  else {\n    unaff_s3 = (uchar *)(**(code **)(*piVar6 + 0x60))(piVar6,uVar11);\nLAB_001cfed4:\n    uVar7 = 0x42b;\n    unaff_s2 = pOVar2;\n    if (unaff_s3 == (uchar *)0x0) goto LAB_001cff5c;\n    piVar6 = *(int **)puVar12;\n    if (uVar11 < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {\n      piVar5 = (int *)(piVar6[0x21] + uVar11 * 8);\n      if ((*piVar5 != -1) || (piVar5[1] != -1)) {\n        return;\n      }\n      pcVar14 = *(code **)(*piVar6 + 0xec);\n      puVar12 = (uchar *)0xffffffff;\n      sVar10 = in_a3;\n      if (pcVar14 != *(code **)(puVar13 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar7 = 0x432;\n        unaff_s2 = pOVar2;\nLAB_001cff5c:\n        iVar1 = *(int *)(puVar13 + 0x262564);\n        sVar10 = in_a3;\n        pOVar2 = unaff_s2;\n        while( true ) {\n          pcVar14 = *(code **)(puVar13 + 0x262574);\n          (*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);\nLAB_001cff74:\n          in_a3 = sVar10;\n          iVar1 = (*pcVar14)();\n          if (iVar1 == 0) break;\n          uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);\n          puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);\n          if (puVar9 != puVar12) {\n            return;\n          }\n          uVar7 = 0x434;\n          if ((uchar *)uVar16 != puVar9) {\n            return;\n          }\n          iVar1 = *(int *)(puVar13 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar13 + 0x262574))\n              (*(int *)(puVar13 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar13 + 0x262564) + 0x69b8);\n  }" if (parenthesized_expression "(*(code **)(*piVar6 + 0x60) == *(code **)(puVar13 + 0x264120))" ( (binary_expression "*(code **)(*piVar6 + 0x60) == *(code **)(puVar13 + 0x264120)" (pointer_expression "*(code **)(*piVar6 + 0x60)" * (cast_expression "(code **)(*piVar6 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 0x60)" ( (binary_expression "*piVar6 + 0x60" (pointer_expression "*piVar6" * identifier) + number_literal) )))) == (pointer_expression "*(code **)(puVar13 + 0x264120)" * (cast_expression "(code **)(puVar13 + 0x264120)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x264120)" ( (binary_expression "puVar13 + 0x264120" identifier + number_literal) ))))) )) (compound_statement "{\n    if (uVar11 < (uint)(piVar6[0xf] - piVar6[0xe] >> 2)) {\n      unaff_s3 = *(uchar **)(piVar6[0xe] + uVar11 * 4);\n      goto LAB_001cfed4;\n    }\n  }" { (if_statement "if (uVar11 < (uint)(piVar6[0xf] - piVar6[0xe] >> 2)) {\n      unaff_s3 = *(uchar **)(piVar6[0xe] + uVar11 * 4);\n      goto LAB_001cfed4;\n    }" if (parenthesized_expression "(uVar11 < (uint)(piVar6[0xf] - piVar6[0xe] >> 2))" ( (binary_expression "uVar11 < (uint)(piVar6[0xf] - piVar6[0xe] >> 2)" identifier < (call_expression "(uint)(piVar6[0xf] - piVar6[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar6[0xf] - piVar6[0xe] >> 2)" ( (binary_expression "piVar6[0xf] - piVar6[0xe] >> 2" (binary_expression "piVar6[0xf] - piVar6[0xe]" (subscript_expression "piVar6[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar6[0xe]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n      unaff_s3 = *(uchar **)(piVar6[0xe] + uVar11 * 4);\n      goto LAB_001cfed4;\n    }" { (expression_statement "unaff_s3 = *(uchar **)(piVar6[0xe] + uVar11 * 4);" (assignment_expression "unaff_s3 = *(uchar **)(piVar6[0xe] + uVar11 * 4)" identifier = (pointer_expression "*(uchar **)(piVar6[0xe] + uVar11 * 4)" * (cast_expression "(uchar **)(piVar6[0xe] + uVar11 * 4)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar6[0xe] + uVar11 * 4)" ( (binary_expression "piVar6[0xe] + uVar11 * 4" (subscript_expression "piVar6[0xe]" identifier [ number_literal ]) + (binary_expression "uVar11 * 4" identifier * number_literal)) ))))) ;) (goto_statement "goto LAB_001cfed4;" goto statement_identifier ;) })) }) (else_clause "else {\n    unaff_s3 = (uchar *)(**(code **)(*piVar6 + 0x60))(piVar6,uVar11);\nLAB_001cfed4:\n    uVar7 = 0x42b;\n    unaff_s2 = pOVar2;\n    if (unaff_s3 == (uchar *)0x0) goto LAB_001cff5c;\n    piVar6 = *(int **)puVar12;\n    if (uVar11 < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {\n      piVar5 = (int *)(piVar6[0x21] + uVar11 * 8);\n      if ((*piVar5 != -1) || (piVar5[1] != -1)) {\n        return;\n      }\n      pcVar14 = *(code **)(*piVar6 + 0xec);\n      puVar12 = (uchar *)0xffffffff;\n      sVar10 = in_a3;\n      if (pcVar14 != *(code **)(puVar13 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar7 = 0x432;\n        unaff_s2 = pOVar2;\nLAB_001cff5c:\n        iVar1 = *(int *)(puVar13 + 0x262564);\n        sVar10 = in_a3;\n        pOVar2 = unaff_s2;\n        while( true ) {\n          pcVar14 = *(code **)(puVar13 + 0x262574);\n          (*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);\nLAB_001cff74:\n          in_a3 = sVar10;\n          iVar1 = (*pcVar14)();\n          if (iVar1 == 0) break;\n          uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);\n          puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);\n          if (puVar9 != puVar12) {\n            return;\n          }\n          uVar7 = 0x434;\n          if ((uchar *)uVar16 != puVar9) {\n            return;\n          }\n          iVar1 = *(int *)(puVar13 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar13 + 0x262574))\n              (*(int *)(puVar13 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar13 + 0x262564) + 0x69b8);\n  }" else (compound_statement "{\n    unaff_s3 = (uchar *)(**(code **)(*piVar6 + 0x60))(piVar6,uVar11);\nLAB_001cfed4:\n    uVar7 = 0x42b;\n    unaff_s2 = pOVar2;\n    if (unaff_s3 == (uchar *)0x0) goto LAB_001cff5c;\n    piVar6 = *(int **)puVar12;\n    if (uVar11 < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {\n      piVar5 = (int *)(piVar6[0x21] + uVar11 * 8);\n      if ((*piVar5 != -1) || (piVar5[1] != -1)) {\n        return;\n      }\n      pcVar14 = *(code **)(*piVar6 + 0xec);\n      puVar12 = (uchar *)0xffffffff;\n      sVar10 = in_a3;\n      if (pcVar14 != *(code **)(puVar13 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar7 = 0x432;\n        unaff_s2 = pOVar2;\nLAB_001cff5c:\n        iVar1 = *(int *)(puVar13 + 0x262564);\n        sVar10 = in_a3;\n        pOVar2 = unaff_s2;\n        while( true ) {\n          pcVar14 = *(code **)(puVar13 + 0x262574);\n          (*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);\nLAB_001cff74:\n          in_a3 = sVar10;\n          iVar1 = (*pcVar14)();\n          if (iVar1 == 0) break;\n          uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);\n          puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);\n          if (puVar9 != puVar12) {\n            return;\n          }\n          uVar7 = 0x434;\n          if ((uchar *)uVar16 != puVar9) {\n            return;\n          }\n          iVar1 = *(int *)(puVar13 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar13 + 0x262574))\n              (*(int *)(puVar13 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar13 + 0x262564) + 0x69b8);\n  }" { (expression_statement "unaff_s3 = (uchar *)(**(code **)(*piVar6 + 0x60))(piVar6,uVar11);" (assignment_expression "unaff_s3 = (uchar *)(**(code **)(*piVar6 + 0x60))(piVar6,uVar11)" identifier = (cast_expression "(uchar *)(**(code **)(*piVar6 + 0x60))(piVar6,uVar11)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar6 + 0x60))(piVar6,uVar11)" (parenthesized_expression "(**(code **)(*piVar6 + 0x60))" ( (pointer_expression "**(code **)(*piVar6 + 0x60)" * (pointer_expression "*(code **)(*piVar6 + 0x60)" * (cast_expression "(code **)(*piVar6 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 0x60)" ( (binary_expression "*piVar6 + 0x60" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (argument_list "(piVar6,uVar11)" ( identifier , identifier ))))) ;) (labeled_statement "LAB_001cfed4:\n    uVar7 = 0x42b;" statement_identifier : (expression_statement "uVar7 = 0x42b;" (assignment_expression "uVar7 = 0x42b" identifier = number_literal) ;)) (expression_statement "unaff_s2 = pOVar2;" (assignment_expression "unaff_s2 = pOVar2" identifier = identifier) ;) (if_statement "if (unaff_s3 == (uchar *)0x0) goto LAB_001cff5c;" if (parenthesized_expression "(unaff_s3 == (uchar *)0x0)" ( (binary_expression "unaff_s3 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001cff5c;" goto statement_identifier ;)) (expression_statement "piVar6 = *(int **)puVar12;" (assignment_expression "piVar6 = *(int **)puVar12" identifier = (pointer_expression "*(int **)puVar12" * (cast_expression "(int **)puVar12" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (uVar11 < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {\n      piVar5 = (int *)(piVar6[0x21] + uVar11 * 8);\n      if ((*piVar5 != -1) || (piVar5[1] != -1)) {\n        return;\n      }\n      pcVar14 = *(code **)(*piVar6 + 0xec);\n      puVar12 = (uchar *)0xffffffff;\n      sVar10 = in_a3;\n      if (pcVar14 != *(code **)(puVar13 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar7 = 0x432;\n        unaff_s2 = pOVar2;\nLAB_001cff5c:\n        iVar1 = *(int *)(puVar13 + 0x262564);\n        sVar10 = in_a3;\n        pOVar2 = unaff_s2;\n        while( true ) {\n          pcVar14 = *(code **)(puVar13 + 0x262574);\n          (*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);\nLAB_001cff74:\n          in_a3 = sVar10;\n          iVar1 = (*pcVar14)();\n          if (iVar1 == 0) break;\n          uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);\n          puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);\n          if (puVar9 != puVar12) {\n            return;\n          }\n          uVar7 = 0x434;\n          if ((uchar *)uVar16 != puVar9) {\n            return;\n          }\n          iVar1 = *(int *)(puVar13 + 0x262564);\n        }\n      } while( true );\n    }" if (parenthesized_expression "(uVar11 < (uint)(piVar6[0x22] - piVar6[0x21] >> 3))" ( (binary_expression "uVar11 < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)" identifier < (call_expression "(uint)(piVar6[0x22] - piVar6[0x21] >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar6[0x22] - piVar6[0x21] >> 3)" ( (binary_expression "piVar6[0x22] - piVar6[0x21] >> 3" (binary_expression "piVar6[0x22] - piVar6[0x21]" (subscript_expression "piVar6[0x22]" identifier [ number_literal ]) - (subscript_expression "piVar6[0x21]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n      piVar5 = (int *)(piVar6[0x21] + uVar11 * 8);\n      if ((*piVar5 != -1) || (piVar5[1] != -1)) {\n        return;\n      }\n      pcVar14 = *(code **)(*piVar6 + 0xec);\n      puVar12 = (uchar *)0xffffffff;\n      sVar10 = in_a3;\n      if (pcVar14 != *(code **)(puVar13 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar7 = 0x432;\n        unaff_s2 = pOVar2;\nLAB_001cff5c:\n        iVar1 = *(int *)(puVar13 + 0x262564);\n        sVar10 = in_a3;\n        pOVar2 = unaff_s2;\n        while( true ) {\n          pcVar14 = *(code **)(puVar13 + 0x262574);\n          (*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);\nLAB_001cff74:\n          in_a3 = sVar10;\n          iVar1 = (*pcVar14)();\n          if (iVar1 == 0) break;\n          uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);\n          puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);\n          if (puVar9 != puVar12) {\n            return;\n          }\n          uVar7 = 0x434;\n          if ((uchar *)uVar16 != puVar9) {\n            return;\n          }\n          iVar1 = *(int *)(puVar13 + 0x262564);\n        }\n      } while( true );\n    }" { (expression_statement "piVar5 = (int *)(piVar6[0x21] + uVar11 * 8);" (assignment_expression "piVar5 = (int *)(piVar6[0x21] + uVar11 * 8)" identifier = (cast_expression "(int *)(piVar6[0x21] + uVar11 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6[0x21] + uVar11 * 8)" ( (binary_expression "piVar6[0x21] + uVar11 * 8" (subscript_expression "piVar6[0x21]" identifier [ number_literal ]) + (binary_expression "uVar11 * 8" identifier * number_literal)) )))) ;) (if_statement "if ((*piVar5 != -1) || (piVar5[1] != -1)) {\n        return;\n      }" if (parenthesized_expression "((*piVar5 != -1) || (piVar5[1] != -1))" ( (binary_expression "(*piVar5 != -1) || (piVar5[1] != -1)" (parenthesized_expression "(*piVar5 != -1)" ( (binary_expression "*piVar5 != -1" (pointer_expression "*piVar5" * identifier) != number_literal) )) || (parenthesized_expression "(piVar5[1] != -1)" ( (binary_expression "piVar5[1] != -1" (subscript_expression "piVar5[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar14 = *(code **)(*piVar6 + 0xec);" (assignment_expression "pcVar14 = *(code **)(*piVar6 + 0xec)" identifier = (pointer_expression "*(code **)(*piVar6 + 0xec)" * (cast_expression "(code **)(*piVar6 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 0xec)" ( (binary_expression "*piVar6 + 0xec" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) ;) (expression_statement "puVar12 = (uchar *)0xffffffff;" (assignment_expression "puVar12 = (uchar *)0xffffffff" identifier = (cast_expression "(uchar *)0xffffffff" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar10 = in_a3;" (assignment_expression "sVar10 = in_a3" identifier = identifier) ;) (if_statement "if (pcVar14 != *(code **)(puVar13 + 0x264a34)) goto LAB_001cff74;" if (parenthesized_expression "(pcVar14 != *(code **)(puVar13 + 0x264a34))" ( (binary_expression "pcVar14 != *(code **)(puVar13 + 0x264a34)" identifier != (pointer_expression "*(code **)(puVar13 + 0x264a34)" * (cast_expression "(code **)(puVar13 + 0x264a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x264a34)" ( (binary_expression "puVar13 + 0x264a34" identifier + number_literal) ))))) )) (goto_statement "goto LAB_001cff74;" goto statement_identifier ;)) (do_statement "do {\n        uVar7 = 0x432;\n        unaff_s2 = pOVar2;\nLAB_001cff5c:\n        iVar1 = *(int *)(puVar13 + 0x262564);\n        sVar10 = in_a3;\n        pOVar2 = unaff_s2;\n        while( true ) {\n          pcVar14 = *(code **)(puVar13 + 0x262574);\n          (*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);\nLAB_001cff74:\n          in_a3 = sVar10;\n          iVar1 = (*pcVar14)();\n          if (iVar1 == 0) break;\n          uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);\n          puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);\n          if (puVar9 != puVar12) {\n            return;\n          }\n          uVar7 = 0x434;\n          if ((uchar *)uVar16 != puVar9) {\n            return;\n          }\n          iVar1 = *(int *)(puVar13 + 0x262564);\n        }\n      } while( true );" do (compound_statement "{\n        uVar7 = 0x432;\n        unaff_s2 = pOVar2;\nLAB_001cff5c:\n        iVar1 = *(int *)(puVar13 + 0x262564);\n        sVar10 = in_a3;\n        pOVar2 = unaff_s2;\n        while( true ) {\n          pcVar14 = *(code **)(puVar13 + 0x262574);\n          (*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);\nLAB_001cff74:\n          in_a3 = sVar10;\n          iVar1 = (*pcVar14)();\n          if (iVar1 == 0) break;\n          uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);\n          puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);\n          if (puVar9 != puVar12) {\n            return;\n          }\n          uVar7 = 0x434;\n          if ((uchar *)uVar16 != puVar9) {\n            return;\n          }\n          iVar1 = *(int *)(puVar13 + 0x262564);\n        }\n      }" { (expression_statement "uVar7 = 0x432;" (assignment_expression "uVar7 = 0x432" identifier = number_literal) ;) (expression_statement "unaff_s2 = pOVar2;" (assignment_expression "unaff_s2 = pOVar2" identifier = identifier) ;) (labeled_statement "LAB_001cff5c:\n        iVar1 = *(int *)(puVar13 + 0x262564);" statement_identifier : (expression_statement "iVar1 = *(int *)(puVar13 + 0x262564);" (assignment_expression "iVar1 = *(int *)(puVar13 + 0x262564)" identifier = (pointer_expression "*(int *)(puVar13 + 0x262564)" * (cast_expression "(int *)(puVar13 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x262564)" ( (binary_expression "puVar13 + 0x262564" identifier + number_literal) ))))) ;)) (expression_statement "sVar10 = in_a3;" (assignment_expression "sVar10 = in_a3" identifier = identifier) ;) (expression_statement "pOVar2 = unaff_s2;" (assignment_expression "pOVar2 = unaff_s2" identifier = identifier) ;) (while_statement "while( true ) {\n          pcVar14 = *(code **)(puVar13 + 0x262574);\n          (*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);\nLAB_001cff74:\n          in_a3 = sVar10;\n          iVar1 = (*pcVar14)();\n          if (iVar1 == 0) break;\n          uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);\n          puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);\n          if (puVar9 != puVar12) {\n            return;\n          }\n          uVar7 = 0x434;\n          if ((uchar *)uVar16 != puVar9) {\n            return;\n          }\n          iVar1 = *(int *)(puVar13 + 0x262564);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pcVar14 = *(code **)(puVar13 + 0x262574);\n          (*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);\nLAB_001cff74:\n          in_a3 = sVar10;\n          iVar1 = (*pcVar14)();\n          if (iVar1 == 0) break;\n          uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);\n          puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);\n          if (puVar9 != puVar12) {\n            return;\n          }\n          uVar7 = 0x434;\n          if ((uchar *)uVar16 != puVar9) {\n            return;\n          }\n          iVar1 = *(int *)(puVar13 + 0x262564);\n        }" { (expression_statement "pcVar14 = *(code **)(puVar13 + 0x262574);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x262574)" identifier = (pointer_expression "*(code **)(puVar13 + 0x262574)" * (cast_expression "(code **)(puVar13 + 0x262574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x262574)" ( (binary_expression "puVar13 + 0x262574" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4);" (call_expression "(*pcVar14)(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(*(int *)(puVar13 + 0x262564) + 0x59f0,uVar7,iVar1 + 0x69d4)" ( (binary_expression "*(int *)(puVar13 + 0x262564) + 0x59f0" (pointer_expression "*(int *)(puVar13 + 0x262564)" * (cast_expression "(int *)(puVar13 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x262564)" ( (binary_expression "puVar13 + 0x262564" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "iVar1 + 0x69d4" identifier + number_literal) ))) ;) (labeled_statement "LAB_001cff74:\n          in_a3 = sVar10;" statement_identifier : (expression_statement "in_a3 = sVar10;" (assignment_expression "in_a3 = sVar10" identifier = identifier) ;)) (expression_statement "iVar1 = (*pcVar14)();" (assignment_expression "iVar1 = (*pcVar14)()" identifier = (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) break;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10);" (assignment_expression "uVar16 = (**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10)" identifier = (call_expression "(**(code **)(puVar13 + 0x26457c))(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10)" (parenthesized_expression "(**(code **)(puVar13 + 0x26457c))" ( (pointer_expression "**(code **)(puVar13 + 0x26457c)" * (pointer_expression "*(code **)(puVar13 + 0x26457c)" * (cast_expression "(code **)(puVar13 + 0x26457c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x26457c)" ( (binary_expression "puVar13 + 0x26457c" identifier + number_literal) ))))) )) (argument_list "(unaff_s3,iVar1,uVar11,sVar10,pOVar2,sVar10)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20);" (assignment_expression "puVar9 = (uchar *)((ulonglong)uVar16 >> 0x20)" identifier = (cast_expression "(uchar *)((ulonglong)uVar16 >> 0x20)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar16 >> 0x20)" ( (binary_expression "(ulonglong)uVar16 >> 0x20" (cast_expression "(ulonglong)uVar16" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (puVar9 != puVar12) {\n            return;\n          }" if (parenthesized_expression "(puVar9 != puVar12)" ( (binary_expression "puVar9 != puVar12" identifier != identifier) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "uVar7 = 0x434;" (assignment_expression "uVar7 = 0x434" identifier = number_literal) ;) (if_statement "if ((uchar *)uVar16 != puVar9) {\n            return;\n          }" if (parenthesized_expression "((uchar *)uVar16 != puVar9)" ( (binary_expression "(uchar *)uVar16 != puVar9" (cast_expression "(uchar *)uVar16" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "iVar1 = *(int *)(puVar13 + 0x262564);" (assignment_expression "iVar1 = *(int *)(puVar13 + 0x262564)" identifier = (pointer_expression "*(int *)(puVar13 + 0x262564)" * (cast_expression "(int *)(puVar13 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x262564)" ( (binary_expression "puVar13 + 0x262564" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "(**(code **)(puVar13 + 0x262574))\n              (*(int *)(puVar13 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar13 + 0x262564) + 0x69b8);" (call_expression "(**(code **)(puVar13 + 0x262574))\n              (*(int *)(puVar13 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar13 + 0x262564) + 0x69b8)" (parenthesized_expression "(**(code **)(puVar13 + 0x262574))" ( (pointer_expression "**(code **)(puVar13 + 0x262574)" * (pointer_expression "*(code **)(puVar13 + 0x262574)" * (cast_expression "(code **)(puVar13 + 0x262574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x262574)" ( (binary_expression "puVar13 + 0x262574" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar13 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar13 + 0x262564) + 0x69b8)" ( (binary_expression "*(int *)(puVar13 + 0x2623bc) + 0x44a8" (pointer_expression "*(int *)(puVar13 + 0x2623bc)" * (cast_expression "(int *)(puVar13 + 0x2623bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x2623bc)" ( (binary_expression "puVar13 + 0x2623bc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar13 + 0x262564) + 0x69b8" (pointer_expression "*(int *)(puVar13 + 0x262564)" * (cast_expression "(int *)(puVar13 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x262564)" ( (binary_expression "puVar13 + 0x262564" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x262574);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x262574)" identifier = (pointer_expression "*(code **)(puVar13 + 0x262574)" * (cast_expression "(code **)(puVar13 + 0x262574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x262574)" ( (binary_expression "puVar13 + 0x262574" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(puVar13 + 0x2623bc) + 0x44a8;" (assignment_expression "iVar1 = *(int *)(puVar13 + 0x2623bc) + 0x44a8" identifier = (binary_expression "*(int *)(puVar13 + 0x2623bc) + 0x44a8" (pointer_expression "*(int *)(puVar13 + 0x2623bc)" * (cast_expression "(int *)(puVar13 + 0x2623bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x2623bc)" ( (binary_expression "puVar13 + 0x2623bc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)(iVar1,0x5c8,*(int *)(puVar13 + 0x262564) + 0x6e8c);" (call_expression "(*pcVar14)(iVar1,0x5c8,*(int *)(puVar13 + 0x262564) + 0x6e8c)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar1,0x5c8,*(int *)(puVar13 + 0x262564) + 0x6e8c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar13 + 0x262564) + 0x6e8c" (pointer_expression "*(int *)(puVar13 + 0x262564)" * (cast_expression "(int *)(puVar13 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x262564)" ( (binary_expression "puVar13 + 0x262564" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar11 = *(uint *)(iVar1 + 0x18);" (assignment_expression "uVar11 = *(uint *)(iVar1 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x18)" * (cast_expression "(uint *)(iVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = *(int **)(iVar1 + 4);" (assignment_expression "piVar6 = *(int **)(iVar1 + 4)" identifier = (pointer_expression "*(int **)(iVar1 + 4)" * (cast_expression "(int **)(iVar1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar11 == 0xfffffffc) {\nLAB_001d0158:\n    if (piVar6 == (int *)0x0) {\n      return;\n    }\n    if (piVar6[8] < 0) {\n      return;\n    }\nLAB_001d0204:\n    (**(code **)(pcVar14 + 0x2623ac))\n              (*(int *)(pcVar14 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar14 + 0x26239c) + 0x7850);\n  }\n  else {\n    if (*(code **)(*piVar6 + 0x60) == *(code **)(pcVar14 + 0x263f58)) {\n      if ((uint)(piVar6[0xf] - piVar6[0xe] >> 2) <= uVar11) goto LAB_001d023c;\n      iVar4 = *(int *)(piVar6[0xe] + uVar11 * 4);\n    }\n    else {\n      iVar4 = (**(code **)(*piVar6 + 0x60))();\n    }\n    uVar7 = 0x442;\n    if (iVar4 == 0) {\nLAB_001d0140:\n      iVar1 = *(int *)(pcVar14 + 0x26239c);\nLAB_001d0144:\n      piVar6 = (int *)(*(int *)(pcVar14 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar14 + 0x2623ac))(piVar6,uVar7,iVar1 + 0x6960);\n      goto LAB_001d0158;\n    }\n    piVar6 = *(int **)(iVar1 + 4);\n    if (*(uint *)(iVar1 + 0x18) < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {\n      piVar5 = (int *)(piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8);\n      if ((*piVar5 == -1) && (piVar5[1] == -1)) {\n        if ((*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||\n           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)) {\n          uVar7 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar16 = (**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18));\n        if ((int)((ulonglong)uVar16 >> 0x20) != -1) {\n          return;\n        }\n        uVar7 = 0x44c;\n        if ((int)uVar16 != -1) {\n          return;\n        }\n        iVar1 = *(int *)(pcVar14 + 0x26239c);\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar4 + 0x20) < 0) {\n        return;\n      }\n      goto LAB_001d0204;\n    }\n  }" if (parenthesized_expression "(uVar11 == 0xfffffffc)" ( (binary_expression "uVar11 == 0xfffffffc" identifier == number_literal) )) (compound_statement "{\nLAB_001d0158:\n    if (piVar6 == (int *)0x0) {\n      return;\n    }\n    if (piVar6[8] < 0) {\n      return;\n    }\nLAB_001d0204:\n    (**(code **)(pcVar14 + 0x2623ac))\n              (*(int *)(pcVar14 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar14 + 0x26239c) + 0x7850);\n  }" { (labeled_statement "LAB_001d0158:\n    if (piVar6 == (int *)0x0) {\n      return;\n    }" statement_identifier : (if_statement "if (piVar6 == (int *)0x0) {\n      return;\n    }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) (if_statement "if (piVar6[8] < 0) {\n      return;\n    }" if (parenthesized_expression "(piVar6[8] < 0)" ( (binary_expression "piVar6[8] < 0" (subscript_expression "piVar6[8]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_001d0204:\n    (**(code **)(pcVar14 + 0x2623ac))\n              (*(int *)(pcVar14 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar14 + 0x26239c) + 0x7850);" statement_identifier : (expression_statement "(**(code **)(pcVar14 + 0x2623ac))\n              (*(int *)(pcVar14 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar14 + 0x26239c) + 0x7850);" (call_expression "(**(code **)(pcVar14 + 0x2623ac))\n              (*(int *)(pcVar14 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar14 + 0x26239c) + 0x7850)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2623ac))" ( (pointer_expression "**(code **)(pcVar14 + 0x2623ac)" * (pointer_expression "*(code **)(pcVar14 + 0x2623ac)" * (cast_expression "(code **)(pcVar14 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2623ac)" ( (binary_expression "pcVar14 + 0x2623ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar14 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar14 + 0x26239c) + 0x7850)" ( (binary_expression "*(int *)(pcVar14 + 0x26239c) + -0x4fe0" (pointer_expression "*(int *)(pcVar14 + 0x26239c)" * (cast_expression "(int *)(pcVar14 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x26239c)" ( (binary_expression "pcVar14 + 0x26239c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar14 + 0x26239c) + 0x7850" (pointer_expression "*(int *)(pcVar14 + 0x26239c)" * (cast_expression "(int *)(pcVar14 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x26239c)" ( (binary_expression "pcVar14 + 0x26239c" identifier + number_literal) )))) + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(code **)(*piVar6 + 0x60) == *(code **)(pcVar14 + 0x263f58)) {\n      if ((uint)(piVar6[0xf] - piVar6[0xe] >> 2) <= uVar11) goto LAB_001d023c;\n      iVar4 = *(int *)(piVar6[0xe] + uVar11 * 4);\n    }\n    else {\n      iVar4 = (**(code **)(*piVar6 + 0x60))();\n    }\n    uVar7 = 0x442;\n    if (iVar4 == 0) {\nLAB_001d0140:\n      iVar1 = *(int *)(pcVar14 + 0x26239c);\nLAB_001d0144:\n      piVar6 = (int *)(*(int *)(pcVar14 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar14 + 0x2623ac))(piVar6,uVar7,iVar1 + 0x6960);\n      goto LAB_001d0158;\n    }\n    piVar6 = *(int **)(iVar1 + 4);\n    if (*(uint *)(iVar1 + 0x18) < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {\n      piVar5 = (int *)(piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8);\n      if ((*piVar5 == -1) && (piVar5[1] == -1)) {\n        if ((*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||\n           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)) {\n          uVar7 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar16 = (**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18));\n        if ((int)((ulonglong)uVar16 >> 0x20) != -1) {\n          return;\n        }\n        uVar7 = 0x44c;\n        if ((int)uVar16 != -1) {\n          return;\n        }\n        iVar1 = *(int *)(pcVar14 + 0x26239c);\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar4 + 0x20) < 0) {\n        return;\n      }\n      goto LAB_001d0204;\n    }\n  }" else (compound_statement "{\n    if (*(code **)(*piVar6 + 0x60) == *(code **)(pcVar14 + 0x263f58)) {\n      if ((uint)(piVar6[0xf] - piVar6[0xe] >> 2) <= uVar11) goto LAB_001d023c;\n      iVar4 = *(int *)(piVar6[0xe] + uVar11 * 4);\n    }\n    else {\n      iVar4 = (**(code **)(*piVar6 + 0x60))();\n    }\n    uVar7 = 0x442;\n    if (iVar4 == 0) {\nLAB_001d0140:\n      iVar1 = *(int *)(pcVar14 + 0x26239c);\nLAB_001d0144:\n      piVar6 = (int *)(*(int *)(pcVar14 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar14 + 0x2623ac))(piVar6,uVar7,iVar1 + 0x6960);\n      goto LAB_001d0158;\n    }\n    piVar6 = *(int **)(iVar1 + 4);\n    if (*(uint *)(iVar1 + 0x18) < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {\n      piVar5 = (int *)(piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8);\n      if ((*piVar5 == -1) && (piVar5[1] == -1)) {\n        if ((*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||\n           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)) {\n          uVar7 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar16 = (**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18));\n        if ((int)((ulonglong)uVar16 >> 0x20) != -1) {\n          return;\n        }\n        uVar7 = 0x44c;\n        if ((int)uVar16 != -1) {\n          return;\n        }\n        iVar1 = *(int *)(pcVar14 + 0x26239c);\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar4 + 0x20) < 0) {\n        return;\n      }\n      goto LAB_001d0204;\n    }\n  }" { (if_statement "if (*(code **)(*piVar6 + 0x60) == *(code **)(pcVar14 + 0x263f58)) {\n      if ((uint)(piVar6[0xf] - piVar6[0xe] >> 2) <= uVar11) goto LAB_001d023c;\n      iVar4 = *(int *)(piVar6[0xe] + uVar11 * 4);\n    }\n    else {\n      iVar4 = (**(code **)(*piVar6 + 0x60))();\n    }" if (parenthesized_expression "(*(code **)(*piVar6 + 0x60) == *(code **)(pcVar14 + 0x263f58))" ( (binary_expression "*(code **)(*piVar6 + 0x60) == *(code **)(pcVar14 + 0x263f58)" (pointer_expression "*(code **)(*piVar6 + 0x60)" * (cast_expression "(code **)(*piVar6 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 0x60)" ( (binary_expression "*piVar6 + 0x60" (pointer_expression "*piVar6" * identifier) + number_literal) )))) == (pointer_expression "*(code **)(pcVar14 + 0x263f58)" * (cast_expression "(code **)(pcVar14 + 0x263f58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x263f58)" ( (binary_expression "pcVar14 + 0x263f58" identifier + number_literal) ))))) )) (compound_statement "{\n      if ((uint)(piVar6[0xf] - piVar6[0xe] >> 2) <= uVar11) goto LAB_001d023c;\n      iVar4 = *(int *)(piVar6[0xe] + uVar11 * 4);\n    }" { (if_statement "if ((uint)(piVar6[0xf] - piVar6[0xe] >> 2) <= uVar11) goto LAB_001d023c;" if (parenthesized_expression "((uint)(piVar6[0xf] - piVar6[0xe] >> 2) <= uVar11)" ( (binary_expression "(uint)(piVar6[0xf] - piVar6[0xe] >> 2) <= uVar11" (call_expression "(uint)(piVar6[0xf] - piVar6[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar6[0xf] - piVar6[0xe] >> 2)" ( (binary_expression "piVar6[0xf] - piVar6[0xe] >> 2" (binary_expression "piVar6[0xf] - piVar6[0xe]" (subscript_expression "piVar6[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar6[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (goto_statement "goto LAB_001d023c;" goto statement_identifier ;)) (expression_statement "iVar4 = *(int *)(piVar6[0xe] + uVar11 * 4);" (assignment_expression "iVar4 = *(int *)(piVar6[0xe] + uVar11 * 4)" identifier = (pointer_expression "*(int *)(piVar6[0xe] + uVar11 * 4)" * (cast_expression "(int *)(piVar6[0xe] + uVar11 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6[0xe] + uVar11 * 4)" ( (binary_expression "piVar6[0xe] + uVar11 * 4" (subscript_expression "piVar6[0xe]" identifier [ number_literal ]) + (binary_expression "uVar11 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n      iVar4 = (**(code **)(*piVar6 + 0x60))();\n    }" else (compound_statement "{\n      iVar4 = (**(code **)(*piVar6 + 0x60))();\n    }" { (expression_statement "iVar4 = (**(code **)(*piVar6 + 0x60))();" (assignment_expression "iVar4 = (**(code **)(*piVar6 + 0x60))()" identifier = (call_expression "(**(code **)(*piVar6 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar6 + 0x60))" ( (pointer_expression "**(code **)(*piVar6 + 0x60)" * (pointer_expression "*(code **)(*piVar6 + 0x60)" * (cast_expression "(code **)(*piVar6 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 0x60)" ( (binary_expression "*piVar6 + 0x60" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar7 = 0x442;" (assignment_expression "uVar7 = 0x442" identifier = number_literal) ;) (if_statement "if (iVar4 == 0) {\nLAB_001d0140:\n      iVar1 = *(int *)(pcVar14 + 0x26239c);\nLAB_001d0144:\n      piVar6 = (int *)(*(int *)(pcVar14 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar14 + 0x2623ac))(piVar6,uVar7,iVar1 + 0x6960);\n      goto LAB_001d0158;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001d0140:\n      iVar1 = *(int *)(pcVar14 + 0x26239c);\nLAB_001d0144:\n      piVar6 = (int *)(*(int *)(pcVar14 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar14 + 0x2623ac))(piVar6,uVar7,iVar1 + 0x6960);\n      goto LAB_001d0158;\n    }" { (labeled_statement "LAB_001d0140:\n      iVar1 = *(int *)(pcVar14 + 0x26239c);" statement_identifier : (expression_statement "iVar1 = *(int *)(pcVar14 + 0x26239c);" (assignment_expression "iVar1 = *(int *)(pcVar14 + 0x26239c)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x26239c)" * (cast_expression "(int *)(pcVar14 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x26239c)" ( (binary_expression "pcVar14 + 0x26239c" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_001d0144:\n      piVar6 = (int *)(*(int *)(pcVar14 + 0x26239c) + 0x59f0);" statement_identifier : (expression_statement "piVar6 = (int *)(*(int *)(pcVar14 + 0x26239c) + 0x59f0);" (assignment_expression "piVar6 = (int *)(*(int *)(pcVar14 + 0x26239c) + 0x59f0)" identifier = (cast_expression "(int *)(*(int *)(pcVar14 + 0x26239c) + 0x59f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar14 + 0x26239c) + 0x59f0)" ( (binary_expression "*(int *)(pcVar14 + 0x26239c) + 0x59f0" (pointer_expression "*(int *)(pcVar14 + 0x26239c)" * (cast_expression "(int *)(pcVar14 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x26239c)" ( (binary_expression "pcVar14 + 0x26239c" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "(**(code **)(pcVar14 + 0x2623ac))(piVar6,uVar7,iVar1 + 0x6960);" (call_expression "(**(code **)(pcVar14 + 0x2623ac))(piVar6,uVar7,iVar1 + 0x6960)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2623ac))" ( (pointer_expression "**(code **)(pcVar14 + 0x2623ac)" * (pointer_expression "*(code **)(pcVar14 + 0x2623ac)" * (cast_expression "(code **)(pcVar14 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2623ac)" ( (binary_expression "pcVar14 + 0x2623ac" identifier + number_literal) ))))) )) (argument_list "(piVar6,uVar7,iVar1 + 0x6960)" ( identifier , identifier , (binary_expression "iVar1 + 0x6960" identifier + number_literal) ))) ;) (goto_statement "goto LAB_001d0158;" goto statement_identifier ;) })) (expression_statement "piVar6 = *(int **)(iVar1 + 4);" (assignment_expression "piVar6 = *(int **)(iVar1 + 4)" identifier = (pointer_expression "*(int **)(iVar1 + 4)" * (cast_expression "(int **)(iVar1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar1 + 0x18) < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)) {\n      piVar5 = (int *)(piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8);\n      if ((*piVar5 == -1) && (piVar5[1] == -1)) {\n        if ((*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||\n           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)) {\n          uVar7 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar16 = (**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18));\n        if ((int)((ulonglong)uVar16 >> 0x20) != -1) {\n          return;\n        }\n        uVar7 = 0x44c;\n        if ((int)uVar16 != -1) {\n          return;\n        }\n        iVar1 = *(int *)(pcVar14 + 0x26239c);\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar4 + 0x20) < 0) {\n        return;\n      }\n      goto LAB_001d0204;\n    }" if (parenthesized_expression "(*(uint *)(iVar1 + 0x18) < (uint)(piVar6[0x22] - piVar6[0x21] >> 3))" ( (binary_expression "*(uint *)(iVar1 + 0x18) < (uint)(piVar6[0x22] - piVar6[0x21] >> 3)" (pointer_expression "*(uint *)(iVar1 + 0x18)" * (cast_expression "(uint *)(iVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) < (call_expression "(uint)(piVar6[0x22] - piVar6[0x21] >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar6[0x22] - piVar6[0x21] >> 3)" ( (binary_expression "piVar6[0x22] - piVar6[0x21] >> 3" (binary_expression "piVar6[0x22] - piVar6[0x21]" (subscript_expression "piVar6[0x22]" identifier [ number_literal ]) - (subscript_expression "piVar6[0x21]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n      piVar5 = (int *)(piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8);\n      if ((*piVar5 == -1) && (piVar5[1] == -1)) {\n        if ((*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||\n           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)) {\n          uVar7 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar16 = (**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18));\n        if ((int)((ulonglong)uVar16 >> 0x20) != -1) {\n          return;\n        }\n        uVar7 = 0x44c;\n        if ((int)uVar16 != -1) {\n          return;\n        }\n        iVar1 = *(int *)(pcVar14 + 0x26239c);\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar4 + 0x20) < 0) {\n        return;\n      }\n      goto LAB_001d0204;\n    }" { (expression_statement "piVar5 = (int *)(piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8);" (assignment_expression "piVar5 = (int *)(piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8)" identifier = (cast_expression "(int *)(piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8)" ( (binary_expression "piVar6[0x21] + *(uint *)(iVar1 + 0x18) * 8" (subscript_expression "piVar6[0x21]" identifier [ number_literal ]) + (binary_expression "*(uint *)(iVar1 + 0x18) * 8" (pointer_expression "*(uint *)(iVar1 + 0x18)" * (cast_expression "(uint *)(iVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) * number_literal)) )))) ;) (if_statement "if ((*piVar5 == -1) && (piVar5[1] == -1)) {\n        if ((*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||\n           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)) {\n          uVar7 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar16 = (**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18));\n        if ((int)((ulonglong)uVar16 >> 0x20) != -1) {\n          return;\n        }\n        uVar7 = 0x44c;\n        if ((int)uVar16 != -1) {\n          return;\n        }\n        iVar1 = *(int *)(pcVar14 + 0x26239c);\n        goto LAB_001d0144;\n      }" if (parenthesized_expression "((*piVar5 == -1) && (piVar5[1] == -1))" ( (binary_expression "(*piVar5 == -1) && (piVar5[1] == -1)" (parenthesized_expression "(*piVar5 == -1)" ( (binary_expression "*piVar5 == -1" (pointer_expression "*piVar5" * identifier) == number_literal) )) && (parenthesized_expression "(piVar5[1] == -1)" ( (binary_expression "piVar5[1] == -1" (subscript_expression "piVar5[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        if ((*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||\n           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)) {\n          uVar7 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar16 = (**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18));\n        if ((int)((ulonglong)uVar16 >> 0x20) != -1) {\n          return;\n        }\n        uVar7 = 0x44c;\n        if ((int)uVar16 != -1) {\n          return;\n        }\n        iVar1 = *(int *)(pcVar14 + 0x26239c);\n        goto LAB_001d0144;\n      }" { (if_statement "if ((*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||\n           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)) {\n          uVar7 = 0x44a;\n          goto LAB_001d0140;\n        }" if (parenthesized_expression "((*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||\n           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0))" ( (binary_expression "(*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)) ||\n           (iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)" (parenthesized_expression "(*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c))" ( (binary_expression "*(code **)(*piVar6 + 0xec) == *(code **)(pcVar14 + 0x26486c)" (pointer_expression "*(code **)(*piVar6 + 0xec)" * (cast_expression "(code **)(*piVar6 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 0xec)" ( (binary_expression "*piVar6 + 0xec" (pointer_expression "*piVar6" * identifier) + number_literal) )))) == (pointer_expression "*(code **)(pcVar14 + 0x26486c)" * (cast_expression "(code **)(pcVar14 + 0x26486c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x26486c)" ( (binary_expression "pcVar14 + 0x26486c" identifier + number_literal) ))))) )) || (parenthesized_expression "(iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0)" ( (comma_expression "iVar3 = (**(code **)(*piVar6 + 0xec))(), iVar3 == 0" (assignment_expression "iVar3 = (**(code **)(*piVar6 + 0xec))()" identifier = (call_expression "(**(code **)(*piVar6 + 0xec))()" (parenthesized_expression "(**(code **)(*piVar6 + 0xec))" ( (pointer_expression "**(code **)(*piVar6 + 0xec)" * (pointer_expression "*(code **)(*piVar6 + 0xec)" * (cast_expression "(code **)(*piVar6 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 0xec)" ( (binary_expression "*piVar6 + 0xec" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar7 = 0x44a;\n          goto LAB_001d0140;\n        }" { (expression_statement "uVar7 = 0x44a;" (assignment_expression "uVar7 = 0x44a" identifier = number_literal) ;) (goto_statement "goto LAB_001d0140;" goto statement_identifier ;) })) (expression_statement "uVar16 = (**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18));" (assignment_expression "uVar16 = (**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18))" identifier = (call_expression "(**(code **)(pcVar14 + 0x2643b4))(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18))" (parenthesized_expression "(**(code **)(pcVar14 + 0x2643b4))" ( (pointer_expression "**(code **)(pcVar14 + 0x2643b4)" * (pointer_expression "*(code **)(pcVar14 + 0x2643b4)" * (cast_expression "(code **)(pcVar14 + 0x2643b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2643b4)" ( (binary_expression "pcVar14 + 0x2643b4" identifier + number_literal) ))))) )) (argument_list "(iVar4,iVar3,*(undefined4 *)(iVar1 + 0x18))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar1 + 0x18)" * (cast_expression "(undefined4 *)(iVar1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)((ulonglong)uVar16 >> 0x20) != -1) {\n          return;\n        }" if (parenthesized_expression "((int)((ulonglong)uVar16 >> 0x20) != -1)" ( (binary_expression "(int)((ulonglong)uVar16 >> 0x20) != -1" (cast_expression "(int)((ulonglong)uVar16 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar16 >> 0x20)" ( (binary_expression "(ulonglong)uVar16 >> 0x20" (cast_expression "(ulonglong)uVar16" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "uVar7 = 0x44c;" (assignment_expression "uVar7 = 0x44c" identifier = number_literal) ;) (if_statement "if ((int)uVar16 != -1) {\n          return;\n        }" if (parenthesized_expression "((int)uVar16 != -1)" ( (binary_expression "(int)uVar16 != -1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar1 = *(int *)(pcVar14 + 0x26239c);" (assignment_expression "iVar1 = *(int *)(pcVar14 + 0x26239c)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x26239c)" * (cast_expression "(int *)(pcVar14 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x26239c)" ( (binary_expression "pcVar14 + 0x26239c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001d0144;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar4 + 0x20) < 0) {\n        return;\n      }" if (parenthesized_expression "(*(int *)(iVar4 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar4 + 0x20) < 0" (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_001d0204;" goto statement_identifier ;) })) }))) (expression_statement "(**(code **)(pcVar14 + 0x2623ac))\n            (*(int *)(pcVar14 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar14 + 0x26239c) + 0x69b8);" (call_expression "(**(code **)(pcVar14 + 0x2623ac))\n            (*(int *)(pcVar14 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar14 + 0x26239c) + 0x69b8)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2623ac))" ( (pointer_expression "**(code **)(pcVar14 + 0x2623ac)" * (pointer_expression "*(code **)(pcVar14 + 0x2623ac)" * (cast_expression "(code **)(pcVar14 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2623ac)" ( (binary_expression "pcVar14 + 0x2623ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar14 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar14 + 0x26239c) + 0x69b8)" ( (binary_expression "*(int *)(pcVar14 + 0x2621f4) + 0x44a8" (pointer_expression "*(int *)(pcVar14 + 0x2621f4)" * (cast_expression "(int *)(pcVar14 + 0x2621f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2621f4)" ( (binary_expression "pcVar14 + 0x2621f4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar14 + 0x26239c) + 0x69b8" (pointer_expression "*(int *)(pcVar14 + 0x26239c)" * (cast_expression "(int *)(pcVar14 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x26239c)" ( (binary_expression "pcVar14 + 0x26239c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_001d023c:\n  pEVar8 = (Elf_Addr *)&DAT_000005c8;" statement_identifier : (expression_statement "pEVar8 = (Elf_Addr *)&DAT_000005c8;" (assignment_expression "pEVar8 = (Elf_Addr *)&DAT_000005c8" identifier = (cast_expression "(Elf_Addr *)&DAT_000005c8" ( (type_descriptor "Elf_Addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000005c8" & identifier))) ;)) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x2623ac);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x2623ac)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x2623ac)" * (cast_expression "(code **)(pcVar14 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2623ac)" ( (binary_expression "pcVar14 + 0x2623ac" identifier + number_literal) ))))) ;) (expression_statement "this_00 = (Output_reloc<9,_false,_64,_true> *)(*(int *)(pcVar14 + 0x2621f4) + 0x44a8);" (assignment_expression "this_00 = (Output_reloc<9,_false,_64,_true> *)(*(int *)(pcVar14 + 0x2621f4) + 0x44a8)" identifier = (call_expression "(Output_reloc<9,_false,_64,_true> *)(*(int *)(pcVar14 + 0x2621f4) + 0x44a8)" (parenthesized_expression "(Output_reloc<9,_false,_64,_true> *)" ( (comma_expression "Output_reloc<9,_false,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_false,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) (argument_list "(*(int *)(pcVar14 + 0x2621f4) + 0x44a8)" ( (binary_expression "*(int *)(pcVar14 + 0x2621f4) + 0x44a8" (pointer_expression "*(int *)(pcVar14 + 0x2621f4)" * (cast_expression "(int *)(pcVar14 + 0x2621f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2621f4)" ( (binary_expression "pcVar14 + 0x2621f4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar15)(this_00,0x5c8,*(int *)(pcVar14 + 0x26239c) + 0x6e8c);" (call_expression "(*pcVar15)(this_00,0x5c8,*(int *)(pcVar14 + 0x26239c) + 0x6e8c)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(this_00,0x5c8,*(int *)(pcVar14 + 0x26239c) + 0x6e8c)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x26239c) + 0x6e8c" (pointer_expression "*(int *)(pcVar14 + 0x26239c)" * (cast_expression "(int *)(pcVar14 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x26239c)" ( (binary_expression "pcVar14 + 0x26239c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "EVar17 = Output_reloc<9,_false,_64,_true>::get_address(this_00);" (update_expression "EVar17 = Output_reloc<9,_false,_64,_true>::get_address(this_00)" (binary_expression "EVar17 = Output_reloc<9,_false,_64,_true>::get_address(this_00)" (assignment_expression "EVar17 = Output_reloc<9" identifier = (binary_expression "Output_reloc<9" identifier < number_literal)) (ERROR ",_false,_64,_true" , identifier , identifier , identifier) > (ERROR "::" : :) (call_expression "get_address(this_00)" identifier (argument_list "(this_00)" ( identifier )))) --) ;) (expression_statement "pcVar14 = *(code **)(pcVar15 + 0x26495c);" (assignment_expression "pcVar14 = *(code **)(pcVar15 + 0x26495c)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x26495c)" * (cast_expression "(code **)(pcVar15 + 0x26495c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x26495c)" ( (binary_expression "pcVar15 + 0x26495c" identifier + number_literal) ))))) ;) (expression_statement "*pEVar8 = EVar17;" (assignment_expression "*pEVar8 = EVar17" (pointer_expression "*pEVar8" * identifier) = identifier) ;) (expression_statement "uVar7 = (*pcVar14)(this_00);" (assignment_expression "uVar7 = (*pcVar14)(this_00)" identifier = (call_expression "(*pcVar14)(this_00)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(this_00)" ( identifier )))) ;) (expression_statement "uVar11 = *(uint *)&this_00->field_0x14;" (assignment_expression "uVar11 = *(uint *)&this_00->field_0x14" identifier = (pointer_expression "*(uint *)&this_00->field_0x14" * (cast_expression "(uint *)&this_00->field_0x14" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_00->field_0x14" & (field_expression "this_00->field_0x14" identifier -> field_identifier))))) ;) (expression_statement "*(undefined4 *)(pEVar8 + 1) = uVar7;" (assignment_expression "*(undefined4 *)(pEVar8 + 1) = uVar7" (pointer_expression "*(undefined4 *)(pEVar8 + 1)" * (cast_expression "(undefined4 *)(pEVar8 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar8 + 1)" ( (binary_expression "pEVar8 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)pEVar8 + 0xc) = uVar11 >> 4;" (assignment_expression "*(uint *)((int)pEVar8 + 0xc) = uVar11 >> 4" (pointer_expression "*(uint *)((int)pEVar8 + 0xc)" * (cast_expression "(uint *)((int)pEVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar8 + 0xc)" ( (binary_expression "(int)pEVar8 + 0xc" (cast_expression "(int)pEVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar11 >> 4" identifier >> number_literal)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "Output_reloc<4,false,64,false> *\nFUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)\n\n{\n  int iVar1;\n  Output_reloc<4,false,64,false> *pOVar2;\n  int *piVar3;\n  uint extraout_v1;\n  int *piVar4;\n  Output_reloc<9,false,64,true> *this;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  Output_reloc<4,false,64,false> *unaff_s1;\n  Output_reloc<4,false,64,false> *pOVar10;\n  int iVar11;\n  Output_reloc<4,false,64,false> *unaff_s2;\n  Output_reloc<4,false,64,false> *unaff_s3;\n  int iVar12;\n  Output_reloc<4,false,64,false> *pOVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  undefined8 uVar17;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);\n    if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }\n  pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818);\n  pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n  puVar14 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3);\n  uVar9 = *(uint *)(pOVar13 + 0x10);\n  if ((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)) {\n    pOVar13 = unaff_s1;\n    uVar5 = 0x428;\n    goto LAB_001cff5c;\n  }\n  piVar4 = *(int **)pOVar13;\n  if (*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)) {\n    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }\n  }\n  else {\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }\n  pcVar15 = *(code **)(puVar14 + 0x262574);\n  iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8;\n  (*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c);\n  uVar6 = *(uint *)(iVar12 + 0x18);\n  uVar9 = *(uint *)(iVar12 + 0xc);\n  pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8);\n  piVar4 = *(int **)(iVar12 + 4);\n  if (uVar6 == 0xfffffffc) {\nLAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }\n    if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }\nLAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);\n  }\n  else {\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }\n  (**(code **)(pcVar15 + 0x2623ac))\n            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8);\nLAB_001d023c:\n  puVar8 = (undefined8 *)&DAT_000005c8;\n  pcVar16 = *(code **)(pcVar15 + 0x2623ac);\n  this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8);\n  (*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c);\n  uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this);\n  pcVar15 = *(code **)(pcVar16 + 0x26495c);\n  *puVar8 = uVar17;\n  pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this);\n  uVar9 = *(uint *)(this + 0x14);\n  *(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13;\n  *(uint *)((int)puVar8 + 0xc) = uVar9 >> 4;\n  return pOVar13;\n}\n\n" (ERROR "Output_reloc<4,false,64,false> *\nFUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" (binary_expression "Output_reloc<4,false,64,false> *\nFUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" (binary_expression "Output_reloc<4" identifier < number_literal) (ERROR ",false,64,false" , false , number_literal , false) > (pointer_expression "*\nFUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" * (call_expression "FUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" identifier (argument_list "(int param_1,int param_2,undefined4 param_3,uint param_4)" ( (ERROR "int" identifier) identifier , (ERROR "int" identifier) identifier , identifier (ERROR "param_3" identifier) , (ERROR "uint" identifier) identifier )))))) (compound_statement "{\n  int iVar1;\n  Output_reloc<4,false,64,false> *pOVar2;\n  int *piVar3;\n  uint extraout_v1;\n  int *piVar4;\n  Output_reloc<9,false,64,true> *this;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  Output_reloc<4,false,64,false> *unaff_s1;\n  Output_reloc<4,false,64,false> *pOVar10;\n  int iVar11;\n  Output_reloc<4,false,64,false> *unaff_s2;\n  Output_reloc<4,false,64,false> *unaff_s3;\n  int iVar12;\n  Output_reloc<4,false,64,false> *pOVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  undefined8 uVar17;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);\n    if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }\n  pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818);\n  pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n  puVar14 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3);\n  uVar9 = *(uint *)(pOVar13 + 0x10);\n  if ((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)) {\n    pOVar13 = unaff_s1;\n    uVar5 = 0x428;\n    goto LAB_001cff5c;\n  }\n  piVar4 = *(int **)pOVar13;\n  if (*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)) {\n    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }\n  }\n  else {\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }\n  pcVar15 = *(code **)(puVar14 + 0x262574);\n  iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8;\n  (*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c);\n  uVar6 = *(uint *)(iVar12 + 0x18);\n  uVar9 = *(uint *)(iVar12 + 0xc);\n  pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8);\n  piVar4 = *(int **)(iVar12 + 4);\n  if (uVar6 == 0xfffffffc) {\nLAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }\n    if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }\nLAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);\n  }\n  else {\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }\n  (**(code **)(pcVar15 + 0x2623ac))\n            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8);\nLAB_001d023c:\n  puVar8 = (undefined8 *)&DAT_000005c8;\n  pcVar16 = *(code **)(pcVar15 + 0x2623ac);\n  this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8);\n  (*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c);\n  uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this);\n  pcVar15 = *(code **)(pcVar16 + 0x26495c);\n  *puVar8 = uVar17;\n  pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this);\n  uVar9 = *(uint *)(this + 0x14);\n  *(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13;\n  *(uint *)((int)puVar8 + 0xc) = uVar9 >> 4;\n  return pOVar13;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "Output_reloc<4,false,64,false> *pOVar2;" (comma_expression "Output_reloc<4,false,64,false> *pOVar2" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *pOVar2" false , (comma_expression "64,false> *pOVar2" number_literal , (binary_expression "false> *pOVar2" false > (pointer_expression "*pOVar2" * identifier))))) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (expression_statement "Output_reloc<9,false,64,true> *this;" (comma_expression "Output_reloc<9,false,64,true> *this" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "false,64,true> *this" false , (comma_expression "64,true> *this" number_literal , (binary_expression "true> *this" true > (pointer_expression "*this" * identifier))))) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (expression_statement "Output_reloc<4,false,64,false> *unaff_s1;" (comma_expression "Output_reloc<4,false,64,false> *unaff_s1" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *unaff_s1" false , (comma_expression "64,false> *unaff_s1" number_literal , (binary_expression "false> *unaff_s1" false > (pointer_expression "*unaff_s1" * identifier))))) ;) (expression_statement "Output_reloc<4,false,64,false> *pOVar10;" (comma_expression "Output_reloc<4,false,64,false> *pOVar10" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *pOVar10" false , (comma_expression "64,false> *pOVar10" number_literal , (binary_expression "false> *pOVar10" false > (pointer_expression "*pOVar10" * identifier))))) ;) (declaration "int iVar11;" primitive_type identifier ;) (expression_statement "Output_reloc<4,false,64,false> *unaff_s2;" (comma_expression "Output_reloc<4,false,64,false> *unaff_s2" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *unaff_s2" false , (comma_expression "64,false> *unaff_s2" number_literal , (binary_expression "false> *unaff_s2" false > (pointer_expression "*unaff_s2" * identifier))))) ;) (expression_statement "Output_reloc<4,false,64,false> *unaff_s3;" (comma_expression "Output_reloc<4,false,64,false> *unaff_s3" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *unaff_s3" false , (comma_expression "64,false> *unaff_s3" number_literal , (binary_expression "false> *unaff_s3" false > (pointer_expression "*unaff_s3" * identifier))))) ;) (declaration "int iVar12;" primitive_type identifier ;) (expression_statement "Output_reloc<4,false,64,false> *pOVar13;" (comma_expression "Output_reloc<4,false,64,false> *pOVar13" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *pOVar13" false , (comma_expression "64,false> *pOVar13" number_literal , (binary_expression "false> *pOVar13" false > (pointer_expression "*pOVar13" * identifier))))) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined8 uVar17;" type_identifier identifier ;) (if_statement "if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);\n    if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) << 2 < 0)" ( (binary_expression "*(int *)(param_1 + 0x20) << 2 < 0" (binary_expression "*(int *)(param_1 + 0x20) << 2" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);\n    if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }" { (expression_statement "unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);" (assignment_expression "unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x1c)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x1c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) << 1 < 0)" ( (binary_expression "*(int *)(param_1 + 0x20) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }" { (expression_statement "iVar12 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);" (assignment_expression "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x14)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x14)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x18) < 0)" ( (binary_expression "*(int *)(param_1 + 0x18) < 0" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }" { (labeled_statement "LAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_004346b8 + 0x2b60))();" (call_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))()" (parenthesized_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))" ( (pointer_expression "*(code *)(PTR_LAB_004346b8 + 0x2b60)" * (cast_expression "(code *)(PTR_LAB_004346b8 + 0x2b60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_004346b8 + 0x2b60)" ( (binary_expression "PTR_LAB_004346b8 + 0x2b60" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;)) }) (else_clause "else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }" else (compound_statement "{\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }" { (expression_statement "iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);" (assignment_expression "iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18)" identifier = (binary_expression "(uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18)" (call_expression "(uint)(pOVar13 + (int)unaff_s3 < pOVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar13 + (int)unaff_s3 < pOVar13)" ( (binary_expression "pOVar13 + (int)unaff_s3 < pOVar13" (binary_expression "pOVar13 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) < identifier) ))) + (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;" if (parenthesized_expression "((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))" ( (binary_expression "(*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)))" (parenthesized_expression "(*(int *)(param_2 + 8) < iVar1)" ( (binary_expression "*(int *)(param_2 + 8) < iVar1" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) < identifier) )) || (parenthesized_expression "((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)))" ( (parenthesized_expression "(*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))" ( (binary_expression "*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)" (binary_expression "*(int *)(param_2 + 8) == iVar1" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) == identifier) && (parenthesized_expression "(*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)" ( (binary_expression "*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3" (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_2 + 0xc)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_2 + 0xc)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) < (binary_expression "pOVar13 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) ))) )) (goto_statement "goto LAB_001cfdf4;" goto statement_identifier ;)) (expression_statement "unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);" (assignment_expression "unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_2 + 0x10)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_2 + 0x10)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "unaff_s3 = unaff_s1 + (int)unaff_s3;" (assignment_expression "unaff_s3 = unaff_s1 + (int)unaff_s3" identifier = (binary_expression "unaff_s1 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }" if (parenthesized_expression "(*(char *)(param_1 + 0x34) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x34) == '\0'" (pointer_expression "*(char *)(param_1 + 0x34)" * (cast_expression "(char *)(param_1 + 0x34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }" { (expression_statement "unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);" (assignment_expression "unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (expression_statement "pOVar10 = unaff_s3;" (assignment_expression "pOVar10 = unaff_s3" identifier = identifier) ;) (if_statement "if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }" if (parenthesized_expression "(unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c))" ( (binary_expression "unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" identifier == (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) )) (compound_statement "{\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }" { (expression_statement "unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;" (assignment_expression "unaff_s1 = (Output_reloc<4,false,64,false> *)0x0" identifier = (parenthesized_expression "(Output_reloc<4,false,64,false> *)0x0" ( (comma_expression "Output_reloc<4,false,64,false> *)0x0" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0x0" false , (comma_expression "64,false> *)0x0" number_literal , (binary_expression "false> *)0x0" false > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))))) ))) ;) }) (else_clause "else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }" else (compound_statement "{\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }" { (do_statement "do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);" do (compound_statement "{\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            }" { (labeled_statement "gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);" statement_identifier : (ERROR ":" :) (expression_statement "Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);" (comma_expression "Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10)" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false>::write(unaff_s2,(uchar *)pOVar10)" false , (comma_expression "64,false>::write(unaff_s2,(uchar *)pOVar10)" number_literal , (binary_expression "false>::write(unaff_s2,(uchar *)pOVar10)" false > (ERROR "::" : :) (call_expression "write(unaff_s2,(uchar *)pOVar10)" identifier (argument_list "(unaff_s2,(uchar *)pOVar10)" ( identifier , (cast_expression "(uchar *)pOVar10" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))))))) ;)) (expression_statement "unaff_s2 = unaff_s2 + 0x28;" (assignment_expression "unaff_s2 = unaff_s2 + 0x28" identifier = (binary_expression "unaff_s2 + 0x28" identifier + number_literal)) ;) (expression_statement "pOVar10 = pOVar10 + 0x18;" (assignment_expression "pOVar10 = pOVar10 + 0x18" identifier = (binary_expression "pOVar10 + 0x18" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2)" ( (binary_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2" (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "unaff_s1 = pOVar10 + -(int)unaff_s3;" (assignment_expression "unaff_s1 = pOVar10 + -(int)unaff_s3" identifier = (binary_expression "pOVar10 + -(int)unaff_s3" identifier + (unary_expression "-(int)unaff_s3" - (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "iVar1 = (int)unaff_s1 >> 0x1f;" (assignment_expression "iVar1 = (int)unaff_s1 >> 0x1f" identifier = (binary_expression "(int)unaff_s1 >> 0x1f" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }))) (if_statement "if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }" if (parenthesized_expression "((iVar12 == iVar1) && (pOVar13 == unaff_s1))" ( (binary_expression "(iVar12 == iVar1) && (pOVar13 == unaff_s1)" (parenthesized_expression "(iVar12 == iVar1)" ( (binary_expression "iVar12 == iVar1" identifier == identifier) )) && (parenthesized_expression "(pOVar13 == unaff_s1)" ( (binary_expression "pOVar13 == unaff_s1" identifier == identifier) ))) )) (compound_statement "{\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }" { (expression_statement "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);" (assignment_expression "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }" if (parenthesized_expression "(pOVar13 != unaff_s2)" ( (binary_expression "pOVar13 != unaff_s2" identifier != identifier) )) (compound_statement "{\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }" { (expression_statement "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;" (assignment_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13" (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" * (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return pOVar13;" return identifier ;) })) })) }))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) ))) ;) })) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7894" identifier + number_literal) ))) ;) })) (expression_statement "pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818);" (assignment_expression "pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "(PTR_s_alize_xindex_004323b4 + 0x7818)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7818" identifier + number_literal) )))) ;) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0);" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) )))) ;) (expression_statement "puVar14 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar14 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pOVar13,0xe3)" ( identifier , number_literal ))) ;) (expression_statement "uVar9 = *(uint *)(pOVar13 + 0x10);" (assignment_expression "uVar9 = *(uint *)(pOVar13 + 0x10)" identifier = (pointer_expression "*(uint *)(pOVar13 + 0x10)" * (cast_expression "(uint *)(pOVar13 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar13 + 0x10)" ( (binary_expression "pOVar13 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)) {\n    pOVar13 = unaff_s1;\n    uVar5 = 0x428;\n    goto LAB_001cff5c;\n  }" if (parenthesized_expression "((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e))" ( (binary_expression "(0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)" (parenthesized_expression "(0xfffffffa < uVar9 - 1)" ( (binary_expression "0xfffffffa < uVar9 - 1" number_literal < (binary_expression "uVar9 - 1" identifier - number_literal)) )) || (parenthesized_expression "(unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)" ( (comma_expression "unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e" (assignment_expression "unaff_s1 = pOVar13" identifier = identifier) , (binary_expression "-1 < *(int *)(pOVar13 + 0x14) << 0x1e" number_literal < (binary_expression "*(int *)(pOVar13 + 0x14) << 0x1e" (pointer_expression "*(int *)(pOVar13 + 0x14)" * (cast_expression "(int *)(pOVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar13 + 0x14)" ( (binary_expression "pOVar13 + 0x14" identifier + number_literal) )))) << number_literal))) ))) )) (compound_statement "{\n    pOVar13 = unaff_s1;\n    uVar5 = 0x428;\n    goto LAB_001cff5c;\n  }" { (expression_statement "pOVar13 = unaff_s1;" (assignment_expression "pOVar13 = unaff_s1" identifier = identifier) ;) (expression_statement "uVar5 = 0x428;" (assignment_expression "uVar5 = 0x428" identifier = number_literal) ;) (goto_statement "goto LAB_001cff5c;" goto statement_identifier ;) })) (expression_statement "piVar4 = *(int **)pOVar13;" (assignment_expression "piVar4 = *(int **)pOVar13" identifier = (pointer_expression "*(int **)pOVar13" * (cast_expression "(int **)pOVar13" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)) {\n    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }\n  }\n  else {\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120))" ( (binary_expression "*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)" (pointer_expression "*(code **)(*piVar4 + 0x60)" * (cast_expression "(code **)(*piVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x60)" ( (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" * identifier) + number_literal) )))) == (pointer_expression "*(code **)(puVar14 + 0x264120)" * (cast_expression "(code **)(puVar14 + 0x264120)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x264120)" ( (binary_expression "puVar14 + 0x264120" identifier + number_literal) ))))) )) (compound_statement "{\n    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }\n  }" { (if_statement "if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }" if (parenthesized_expression "(uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2))" ( (binary_expression "uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)" identifier < (call_expression "(uint)(piVar4[0xf] - piVar4[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar4[0xf] - piVar4[0xe] >> 2)" ( (binary_expression "piVar4[0xf] - piVar4[0xe] >> 2" (binary_expression "piVar4[0xf] - piVar4[0xe]" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar4[0xe]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }" { (expression_statement "unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);" (assignment_expression "unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4)" * (call_expression "(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(piVar4[0xe] + uVar9 * 4)" ( (binary_expression "piVar4[0xe] + uVar9 * 4" (subscript_expression "piVar4[0xe]" identifier [ number_literal ]) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (goto_statement "goto LAB_001cfed4;" goto statement_identifier ;) })) }) (else_clause "else {\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }" else (compound_statement "{\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }" { (expression_statement "unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);" (assignment_expression "unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9)" (call_expression "(Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "(**(code **)(*piVar4 + 0x60))" ( (pointer_expression "**(code **)(*piVar4 + 0x60)" * (pointer_expression "*(code **)(*piVar4 + 0x60)" * (cast_expression "(code **)(*piVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x60)" ( (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ))) (argument_list "(piVar4,uVar9)" ( identifier , identifier )))) ;) (labeled_statement "LAB_001cfed4:\n    uVar5 = 0x42b;" statement_identifier : (expression_statement "uVar5 = 0x42b;" (assignment_expression "uVar5 = 0x42b" identifier = number_literal) ;)) (expression_statement "unaff_s2 = pOVar10;" (assignment_expression "unaff_s2 = pOVar10" identifier = identifier) ;) (if_statement "if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;" if (parenthesized_expression "(unaff_s3 == (Output_reloc<4,false,64,false> *)0x0)" ( (binary_expression "unaff_s3 == (Output_reloc<4,false,64,false> *)0x0)" identifier == (parenthesized_expression "(Output_reloc<4,false,64,false> *)0x0)" ( (comma_expression "Output_reloc<4,false,64,false> *)0x0" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0x0" false , (comma_expression "64,false> *)0x0" number_literal , (binary_expression "false> *)0x0" false > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))))) ))) )) (goto_statement "goto LAB_001cff5c;" goto statement_identifier ;)) (expression_statement "piVar4 = *(int **)pOVar13;" (assignment_expression "piVar4 = *(int **)pOVar13" identifier = (pointer_expression "*(int **)pOVar13" * (cast_expression "(int **)pOVar13" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }" if (parenthesized_expression "(uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3))" ( (binary_expression "uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)" identifier < (call_expression "(uint)(piVar4[0x22] - piVar4[0x21] >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar4[0x22] - piVar4[0x21] >> 3)" ( (binary_expression "piVar4[0x22] - piVar4[0x21] >> 3" (binary_expression "piVar4[0x22] - piVar4[0x21]" (subscript_expression "piVar4[0x22]" identifier [ number_literal ]) - (subscript_expression "piVar4[0x21]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }" { (expression_statement "piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);" (assignment_expression "piVar3 = (int *)(piVar4[0x21] + uVar9 * 8)" identifier = (cast_expression "(int *)(piVar4[0x21] + uVar9 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[0x21] + uVar9 * 8)" ( (binary_expression "piVar4[0x21] + uVar9 * 8" (subscript_expression "piVar4[0x21]" identifier [ number_literal ]) + (binary_expression "uVar9 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar12 = *piVar3;" (assignment_expression "iVar12 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar1 = piVar3[1];" (assignment_expression "iVar1 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (if_statement "if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }" if (parenthesized_expression "((iVar12 != -1) || (iVar1 != -1))" ( (binary_expression "(iVar12 != -1) || (iVar1 != -1)" (parenthesized_expression "(iVar12 != -1)" ( (binary_expression "iVar12 != -1" identifier != number_literal) )) || (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) ))) )) (compound_statement "{\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }" { (return_statement "return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;" return (binary_expression "pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12" (binary_expression "pOVar10 + (uint)(param_4 + iVar1 < param_4)" identifier + (call_expression "(uint)(param_4 + iVar1 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 + iVar1 < param_4)" ( (binary_expression "param_4 + iVar1 < param_4" (binary_expression "param_4 + iVar1" identifier + identifier) < identifier) )))) + identifier) ;) })) (expression_statement "pcVar15 = *(code **)(*piVar4 + 0xec);" (assignment_expression "pcVar15 = *(code **)(*piVar4 + 0xec)" identifier = (pointer_expression "*(code **)(*piVar4 + 0xec)" * (cast_expression "(code **)(*piVar4 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xec)" ( (binary_expression "*piVar4 + 0xec" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff" identifier = (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff" ( (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0xffffffff" false , (comma_expression "64,false> *)0xffffffff" number_literal , (binary_expression "false> *)0xffffffff" false > (pointer_expression "*)0xffffffff" * (ERROR ")" )) number_literal))))) ))) ;) (expression_statement "uVar6 = param_4;" (assignment_expression "uVar6 = param_4" identifier = identifier) ;) (if_statement "if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;" if (parenthesized_expression "(pcVar15 != *(code **)(puVar14 + 0x264a34))" ( (binary_expression "pcVar15 != *(code **)(puVar14 + 0x264a34)" identifier != (pointer_expression "*(code **)(puVar14 + 0x264a34)" * (cast_expression "(code **)(puVar14 + 0x264a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x264a34)" ( (binary_expression "puVar14 + 0x264a34" identifier + number_literal) ))))) )) (goto_statement "goto LAB_001cff74;" goto statement_identifier ;)) (do_statement "do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );" do (compound_statement "{\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      }" { (expression_statement "uVar5 = 0x432;" (assignment_expression "uVar5 = 0x432" identifier = number_literal) ;) (expression_statement "unaff_s2 = pOVar10;" (assignment_expression "unaff_s2 = pOVar10" identifier = identifier) ;) (labeled_statement "LAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);" statement_identifier : (expression_statement "iVar12 = *(int *)(puVar14 + 0x262564);" (assignment_expression "iVar12 = *(int *)(puVar14 + 0x262564)" identifier = (pointer_expression "*(int *)(puVar14 + 0x262564)" * (cast_expression "(int *)(puVar14 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x262564)" ( (binary_expression "puVar14 + 0x262564" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = param_4;" (assignment_expression "uVar6 = param_4" identifier = identifier) ;) (expression_statement "pOVar10 = unaff_s2;" (assignment_expression "pOVar10 = unaff_s2" identifier = identifier) ;) (while_statement "while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }" { (expression_statement "pcVar15 = *(code **)(puVar14 + 0x262574);" (assignment_expression "pcVar15 = *(code **)(puVar14 + 0x262574)" identifier = (pointer_expression "*(code **)(puVar14 + 0x262574)" * (cast_expression "(code **)(puVar14 + 0x262574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x262574)" ( (binary_expression "puVar14 + 0x262574" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);" (call_expression "(*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4)" ( (binary_expression "*(int *)(puVar14 + 0x262564) + 0x59f0" (pointer_expression "*(int *)(puVar14 + 0x262564)" * (cast_expression "(int *)(puVar14 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x262564)" ( (binary_expression "puVar14 + 0x262564" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "iVar12 + 0x69d4" identifier + number_literal) ))) ;) (labeled_statement "LAB_001cff74:\n          param_4 = uVar6;" statement_identifier : (expression_statement "param_4 = uVar6;" (assignment_expression "param_4 = uVar6" identifier = identifier) ;)) (expression_statement "iVar12 = (*pcVar15)();" (assignment_expression "iVar12 = (*pcVar15)()" identifier = (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);" (assignment_expression "uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6)" identifier = (call_expression "(**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6)" (parenthesized_expression "(**(code **)(puVar14 + 0x26457c))" ( (pointer_expression "**(code **)(puVar14 + 0x26457c)" * (pointer_expression "*(code **)(puVar14 + 0x26457c)" * (cast_expression "(code **)(puVar14 + 0x26457c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x26457c)" ( (binary_expression "puVar14 + 0x26457c" identifier + number_literal) ))))) )) (argument_list "(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);" (assignment_expression "pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "((ulonglong)uVar17 >> 0x20)" ( (binary_expression "(ulonglong)uVar17 >> 0x20" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }" if (parenthesized_expression "(pOVar2 != pOVar13)" ( (binary_expression "pOVar2 != pOVar13" identifier != identifier) )) (compound_statement "{\n            return pOVar2;\n          }" { (return_statement "return pOVar2;" return identifier ;) })) (expression_statement "uVar5 = 0x434;" (assignment_expression "uVar5 = 0x434" identifier = number_literal) ;) (if_statement "if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }" if (parenthesized_expression "((Output_reloc<4,false,64,false> *)uVar17 != pOVar2)" ( (parenthesized_expression "(Output_reloc<4,false,64,false> *)uVar17 != pOVar2)" ( (comma_expression "Output_reloc<4,false,64,false> *)uVar17 != pOVar2" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)uVar17 != pOVar2" false , (comma_expression "64,false> *)uVar17 != pOVar2" number_literal , (binary_expression "false> *)uVar17 != pOVar2" (binary_expression "false> *)uVar17" false > (pointer_expression "*)uVar17" * (ERROR ")" )) identifier)) != identifier)))) )) )) (compound_statement "{\n            return pOVar2;\n          }" { (return_statement "return pOVar2;" return identifier ;) })) (expression_statement "iVar12 = *(int *)(puVar14 + 0x262564);" (assignment_expression "iVar12 = *(int *)(puVar14 + 0x262564)" identifier = (pointer_expression "*(int *)(puVar14 + 0x262564)" * (cast_expression "(int *)(puVar14 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x262564)" ( (binary_expression "puVar14 + 0x262564" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "(**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);" (call_expression "(**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8)" (parenthesized_expression "(**(code **)(puVar14 + 0x262574))" ( (pointer_expression "**(code **)(puVar14 + 0x262574)" * (pointer_expression "*(code **)(puVar14 + 0x262574)" * (cast_expression "(code **)(puVar14 + 0x262574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x262574)" ( (binary_expression "puVar14 + 0x262574" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8)" ( (binary_expression "*(int *)(puVar14 + 0x2623bc) + 0x44a8" (pointer_expression "*(int *)(puVar14 + 0x2623bc)" * (cast_expression "(int *)(puVar14 + 0x2623bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x2623bc)" ( (binary_expression "puVar14 + 0x2623bc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar14 + 0x262564) + 0x69b8" (pointer_expression "*(int *)(puVar14 + 0x262564)" * (cast_expression "(int *)(puVar14 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x262564)" ( (binary_expression "puVar14 + 0x262564" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "pcVar15 = *(code **)(puVar14 + 0x262574);" (assignment_expression "pcVar15 = *(code **)(puVar14 + 0x262574)" identifier = (pointer_expression "*(code **)(puVar14 + 0x262574)" * (cast_expression "(code **)(puVar14 + 0x262574)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x262574)" ( (binary_expression "puVar14 + 0x262574" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8;" (assignment_expression "iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8" identifier = (binary_expression "*(int *)(puVar14 + 0x2623bc) + 0x44a8" (pointer_expression "*(int *)(puVar14 + 0x2623bc)" * (cast_expression "(int *)(puVar14 + 0x2623bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x2623bc)" ( (binary_expression "puVar14 + 0x2623bc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c);" (call_expression "(*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar14 + 0x262564) + 0x6e8c" (pointer_expression "*(int *)(puVar14 + 0x262564)" * (cast_expression "(int *)(puVar14 + 0x262564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x262564)" ( (binary_expression "puVar14 + 0x262564" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar6 = *(uint *)(iVar12 + 0x18);" (assignment_expression "uVar6 = *(uint *)(iVar12 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)(iVar12 + 0xc);" (assignment_expression "uVar9 = *(uint *)(iVar12 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar12 + 0xc)" * (cast_expression "(uint *)(iVar12 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8);" (assignment_expression "pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8)" identifier = (pointer_expression "*(Output_reloc<4,false,64,false> **)(iVar12 + 8)" * (call_expression "(Output_reloc<4,false,64,false> **)(iVar12 + 8)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(iVar12 + 4);" (assignment_expression "piVar4 = *(int **)(iVar12 + 4)" identifier = (pointer_expression "*(int **)(iVar12 + 4)" * (cast_expression "(int **)(iVar12 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar6 == 0xfffffffc) {\nLAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }\n    if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }\nLAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);\n  }\n  else {\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }" if (parenthesized_expression "(uVar6 == 0xfffffffc)" ( (binary_expression "uVar6 == 0xfffffffc" identifier == number_literal) )) (compound_statement "{\nLAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }\n    if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }\nLAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);\n  }" { (labeled_statement "LAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }" statement_identifier : (if_statement "if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return pOVar13;\n    }" { (return_statement "return pOVar13;" return identifier ;) }))) (if_statement "if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }" if (parenthesized_expression "(piVar4[8] < 0)" ( (binary_expression "piVar4[8] < 0" (subscript_expression "piVar4[8]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }" { (return_statement "return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];" return (binary_expression "pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2]" (binary_expression "pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9)" identifier + (call_expression "(uint)(uVar9 + piVar4[3] < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 + piVar4[3] < uVar9)" ( (binary_expression "uVar9 + piVar4[3] < uVar9" (binary_expression "uVar9 + piVar4[3]" identifier + (subscript_expression "piVar4[3]" identifier [ number_literal ])) < identifier) )))) + (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) })) (labeled_statement "LAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);" statement_identifier : (expression_statement "(**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);" (call_expression "(**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850)" (parenthesized_expression "(**(code **)(pcVar15 + 0x2623ac))" ( (pointer_expression "**(code **)(pcVar15 + 0x2623ac)" * (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" * (cast_expression "(code **)(pcVar15 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x2623ac)" ( (binary_expression "pcVar15 + 0x2623ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850)" ( (binary_expression "*(int *)(pcVar15 + 0x26239c) + -0x4fe0" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x7850" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) )))) + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }" else (compound_statement "{\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }" { (if_statement "if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58))" ( (binary_expression "*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)" (pointer_expression "*(code **)(*piVar4 + 0x60)" * (cast_expression "(code **)(*piVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x60)" ( (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" * identifier) + number_literal) )))) == (pointer_expression "*(code **)(pcVar15 + 0x263f58)" * (cast_expression "(code **)(pcVar15 + 0x263f58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x263f58)" ( (binary_expression "pcVar15 + 0x263f58" identifier + number_literal) ))))) )) (compound_statement "{\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }" { (if_statement "if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;" if (parenthesized_expression "((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6)" ( (binary_expression "(uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6" (call_expression "(uint)(piVar4[0xf] - piVar4[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar4[0xf] - piVar4[0xe] >> 2)" ( (binary_expression "piVar4[0xf] - piVar4[0xe] >> 2" (binary_expression "piVar4[0xf] - piVar4[0xe]" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar4[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (goto_statement "goto LAB_001d023c;" goto statement_identifier ;)) (expression_statement "iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);" (assignment_expression "iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4)" identifier = (pointer_expression "*(int *)(piVar4[0xe] + uVar6 * 4)" * (cast_expression "(int *)(piVar4[0xe] + uVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[0xe] + uVar6 * 4)" ( (binary_expression "piVar4[0xe] + uVar6 * 4" (subscript_expression "piVar4[0xe]" identifier [ number_literal ]) + (binary_expression "uVar6 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }" else (compound_statement "{\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }" { (expression_statement "iVar1 = (**(code **)(*piVar4 + 0x60))();" (assignment_expression "iVar1 = (**(code **)(*piVar4 + 0x60))()" identifier = (call_expression "(**(code **)(*piVar4 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar4 + 0x60))" ( (pointer_expression "**(code **)(*piVar4 + 0x60)" * (pointer_expression "*(code **)(*piVar4 + 0x60)" * (cast_expression "(code **)(*piVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x60)" ( (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar5 = 0x442;" (assignment_expression "uVar5 = 0x442" identifier = number_literal) ;) (if_statement "if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }" { (labeled_statement "LAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);" statement_identifier : (expression_statement "iVar12 = *(int *)(pcVar15 + 0x26239c);" (assignment_expression "iVar12 = *(int *)(pcVar15 + 0x26239c)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);" statement_identifier : (expression_statement "piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);" (assignment_expression "piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0)" identifier = (cast_expression "(int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar15 + 0x26239c) + 0x59f0)" ( (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x59f0" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "(**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);" (call_expression "(**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960)" (parenthesized_expression "(**(code **)(pcVar15 + 0x2623ac))" ( (pointer_expression "**(code **)(pcVar15 + 0x2623ac)" * (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" * (cast_expression "(code **)(pcVar15 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x2623ac)" ( (binary_expression "pcVar15 + 0x2623ac" identifier + number_literal) ))))) )) (argument_list "(piVar4,uVar5,iVar12 + 0x6960)" ( identifier , identifier , (binary_expression "iVar12 + 0x6960" identifier + number_literal) ))) ;) (expression_statement "uVar9 = extraout_v1;" (assignment_expression "uVar9 = extraout_v1" identifier = identifier) ;) (goto_statement "goto LAB_001d0158;" goto statement_identifier ;) })) (expression_statement "piVar4 = *(int **)(iVar12 + 4);" (assignment_expression "piVar4 = *(int **)(iVar12 + 4)" identifier = (pointer_expression "*(int **)(iVar12 + 4)" * (cast_expression "(int **)(iVar12 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }" if (parenthesized_expression "(*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3))" ( (binary_expression "*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)" (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) < (call_expression "(uint)(piVar4[0x22] - piVar4[0x21] >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar4[0x22] - piVar4[0x21] >> 3)" ( (binary_expression "piVar4[0x22] - piVar4[0x21] >> 3" (binary_expression "piVar4[0x22] - piVar4[0x21]" (subscript_expression "piVar4[0x22]" identifier [ number_literal ]) - (subscript_expression "piVar4[0x21]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }" { (expression_statement "piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);" (assignment_expression "piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8)" identifier = (cast_expression "(int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8)" ( (binary_expression "piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8" (subscript_expression "piVar4[0x21]" identifier [ number_literal ]) + (binary_expression "*(uint *)(iVar12 + 0x18) * 8" (pointer_expression "*(uint *)(iVar12 + 0x18)" * (cast_expression "(uint *)(iVar12 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "iVar7 = *piVar3;" (assignment_expression "iVar7 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar11 = piVar3[1];" (assignment_expression "iVar11 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (if_statement "if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }" if (parenthesized_expression "((iVar7 == -1) && (iVar11 == -1))" ( (binary_expression "(iVar7 == -1) && (iVar11 == -1)" (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) && (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }" { (if_statement "if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }" if (parenthesized_expression "((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0))" ( (binary_expression "(*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)" (parenthesized_expression "(*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c))" ( (binary_expression "*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)" (pointer_expression "*(code **)(*piVar4 + 0xec)" * (cast_expression "(code **)(*piVar4 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xec)" ( (binary_expression "*piVar4 + 0xec" (pointer_expression "*piVar4" * identifier) + number_literal) )))) == (pointer_expression "*(code **)(pcVar15 + 0x26486c)" * (cast_expression "(code **)(pcVar15 + 0x26486c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x26486c)" ( (binary_expression "pcVar15 + 0x26486c" identifier + number_literal) ))))) )) || (parenthesized_expression "(iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(*piVar4 + 0xec))()" identifier = (call_expression "(**(code **)(*piVar4 + 0xec))()" (parenthesized_expression "(**(code **)(*piVar4 + 0xec))" ( (pointer_expression "**(code **)(*piVar4 + 0xec)" * (pointer_expression "*(code **)(*piVar4 + 0xec)" * (cast_expression "(code **)(*piVar4 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xec)" ( (binary_expression "*piVar4 + 0xec" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }" { (expression_statement "uVar5 = 0x44a;" (assignment_expression "uVar5 = 0x44a" identifier = number_literal) ;) (goto_statement "goto LAB_001d0140;" goto statement_identifier ;) })) (expression_statement "uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));" (assignment_expression "uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18))" identifier = (call_expression "(**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18))" (parenthesized_expression "(**(code **)(pcVar15 + 0x2643b4))" ( (pointer_expression "**(code **)(pcVar15 + 0x2643b4)" * (pointer_expression "*(code **)(pcVar15 + 0x2643b4)" * (cast_expression "(code **)(pcVar15 + 0x2643b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x2643b4)" ( (binary_expression "pcVar15 + 0x2643b4" identifier + number_literal) ))))) )) (argument_list "(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "((ulonglong)uVar17 >> 0x20)" ( (binary_expression "(ulonglong)uVar17 >> 0x20" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }" if (parenthesized_expression "(pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff)" ( (binary_expression "pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff)" identifier != (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff)" ( (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0xffffffff" false , (comma_expression "64,false> *)0xffffffff" number_literal , (binary_expression "false> *)0xffffffff" false > (pointer_expression "*)0xffffffff" * (ERROR ")" )) number_literal))))) ))) )) (compound_statement "{\n          return pOVar13;\n        }" { (return_statement "return pOVar13;" return identifier ;) })) (expression_statement "uVar5 = 0x44c;" (assignment_expression "uVar5 = 0x44c" identifier = number_literal) ;) (if_statement "if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }" if (parenthesized_expression "((int)uVar17 != -1)" ( (binary_expression "(int)uVar17 != -1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }" { (return_statement "return (Output_reloc<4,false,64,false> *)0xffffffff;" return (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff" ( (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0xffffffff" false , (comma_expression "64,false> *)0xffffffff" number_literal , (binary_expression "false> *)0xffffffff" false > (pointer_expression "*)0xffffffff" * (ERROR ")" )) number_literal))))) )) ;) })) (expression_statement "iVar12 = *(int *)(pcVar15 + 0x26239c);" (assignment_expression "iVar12 = *(int *)(pcVar15 + 0x26239c)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) ))))) ;) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff" identifier = (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff" ( (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *)0xffffffff" false , (comma_expression "64,false> *)0xffffffff" number_literal , (binary_expression "false> *)0xffffffff" false > (pointer_expression "*)0xffffffff" * (ERROR ")" )) number_literal))))) ))) ;) (goto_statement "goto LAB_001d0144;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }" if (parenthesized_expression "(*(int *)(iVar1 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar1 + 0x20) < 0" (pointer_expression "*(int *)(iVar1 + 0x20)" * (cast_expression "(int *)(iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }" { (expression_statement "uVar6 = uVar9 + iVar11;" (assignment_expression "uVar6 = uVar9 + iVar11" identifier = (binary_expression "uVar9 + iVar11" identifier + identifier)) ;) (return_statement "return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;" return (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7" (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9)" (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8)" (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6)" identifier + (call_expression "(uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 + *(int *)(iVar1 + 0xc) < uVar6)" ( (binary_expression "uVar6 + *(int *)(iVar1 + 0xc) < uVar6" (binary_expression "uVar6 + *(int *)(iVar1 + 0xc)" identifier + (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) ))))) < identifier) )))) + (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) + (call_expression "(uint)(uVar6 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 < uVar9)" ( (binary_expression "uVar6 < uVar9" identifier < identifier) )))) + identifier) ;) })) (goto_statement "goto LAB_001d0204;" goto statement_identifier ;) })) }))) (expression_statement "(**(code **)(pcVar15 + 0x2623ac))\n            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8);" (call_expression "(**(code **)(pcVar15 + 0x2623ac))\n            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8)" (parenthesized_expression "(**(code **)(pcVar15 + 0x2623ac))" ( (pointer_expression "**(code **)(pcVar15 + 0x2623ac)" * (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" * (cast_expression "(code **)(pcVar15 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x2623ac)" ( (binary_expression "pcVar15 + 0x2623ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8)" ( (binary_expression "*(int *)(pcVar15 + 0x2621f4) + 0x44a8" (pointer_expression "*(int *)(pcVar15 + 0x2621f4)" * (cast_expression "(int *)(pcVar15 + 0x2621f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x2621f4)" ( (binary_expression "pcVar15 + 0x2621f4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x69b8" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_001d023c:\n  puVar8 = (undefined8 *)&DAT_000005c8;" statement_identifier : (expression_statement "puVar8 = (undefined8 *)&DAT_000005c8;" (assignment_expression "puVar8 = (undefined8 *)&DAT_000005c8" identifier = (cast_expression "(undefined8 *)&DAT_000005c8" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000005c8" & identifier))) ;)) (expression_statement "pcVar16 = *(code **)(pcVar15 + 0x2623ac);" (assignment_expression "pcVar16 = *(code **)(pcVar15 + 0x2623ac)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" * (cast_expression "(code **)(pcVar15 + 0x2623ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x2623ac)" ( (binary_expression "pcVar15 + 0x2623ac" identifier + number_literal) ))))) ;) (expression_statement "this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8);" (assignment_expression "this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8)" identifier = (call_expression "(Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8)" (parenthesized_expression "(Output_reloc<9,false,64,true> *)" ( (comma_expression "Output_reloc<9,false,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "false,64,true> *" false , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(*(int *)(pcVar15 + 0x2621f4) + 0x44a8)" ( (binary_expression "*(int *)(pcVar15 + 0x2621f4) + 0x44a8" (pointer_expression "*(int *)(pcVar15 + 0x2621f4)" * (cast_expression "(int *)(pcVar15 + 0x2621f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x2621f4)" ( (binary_expression "pcVar15 + 0x2621f4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c);" (call_expression "(*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x6e8c" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" * (cast_expression "(int *)(pcVar15 + 0x26239c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x26239c)" ( (binary_expression "pcVar15 + 0x26239c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this);" (comma_expression "uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this)" (binary_expression "uVar17 = gold::Output_reloc<9" (assignment_expression "uVar17 = gold" identifier = identifier) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "false,64,true>::get_address(this)" false , (comma_expression "64,true>::get_address(this)" number_literal , (binary_expression "true>::get_address(this)" true > (ERROR "::" : :) (call_expression "get_address(this)" identifier (argument_list "(this)" ( identifier ))))))) ;) (expression_statement "pcVar15 = *(code **)(pcVar16 + 0x26495c);" (assignment_expression "pcVar15 = *(code **)(pcVar16 + 0x26495c)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x26495c)" * (cast_expression "(code **)(pcVar16 + 0x26495c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x26495c)" ( (binary_expression "pcVar16 + 0x26495c" identifier + number_literal) ))))) ;) (expression_statement "*puVar8 = uVar17;" (assignment_expression "*puVar8 = uVar17" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this);" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this)" identifier = (call_expression "(Output_reloc<4,false,64,false> *)(*pcVar15)(this)" (call_expression "(Output_reloc<4,false,64,false> *)(*pcVar15)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" ( (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> *" false , (comma_expression "64,false> *" number_literal , (binary_expression "false> *" false > (pointer_expression "*" * identifier))))) )) (argument_list "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) ))) (argument_list "(this)" ( identifier )))) ;) (expression_statement "uVar9 = *(uint *)(this + 0x14);" (assignment_expression "uVar9 = *(uint *)(this + 0x14)" identifier = (pointer_expression "*(uint *)(this + 0x14)" * (cast_expression "(uint *)(this + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13;" (assignment_expression "*(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13" (pointer_expression "*(Output_reloc<4,false,64,false> **)(puVar8 + 1)" * (call_expression "(Output_reloc<4,false,64,false> **)(puVar8 + 1)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" ( (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "false,64,false> **" false , (comma_expression "64,false> **" number_literal , (binary_expression "false> **" false > (pointer_expression "**" * (pointer_expression "*" * identifier)))))) )) (argument_list "(puVar8 + 1)" ( (binary_expression "puVar8 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)puVar8 + 0xc) = uVar9 >> 4;" (assignment_expression "*(uint *)((int)puVar8 + 0xc) = uVar9 >> 4" (pointer_expression "*(uint *)((int)puVar8 + 0xc)" * (cast_expression "(uint *)((int)puVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xc)" ( (binary_expression "(int)puVar8 + 0xc" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar9 >> 4" identifier >> number_literal)) ;) (return_statement "return pOVar13;" return identifier ;) }))
(translation_unit (ERROR (binary_expression (binary_expression IDENT < LIT) (ERROR , BOOL , LIT , BOOL) > (pointer_expression * (call_expression IDENT (argument_list ( (ERROR IDENT) IDENT , (ERROR IDENT) IDENT , IDENT (ERROR IDENT) , (ERROR IDENT) IDENT )))))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) ;) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) ;) (declaration TYPE IDENT ;) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) ;) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) ;) (declaration TYPE IDENT ;) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) )) (compound_statement { (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 * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( ))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) < IDENT) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (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) )))) < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) && (parenthesized_expression ( (binary_expression (pointer_expression * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression IDENT + LIT) )))) < (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) )) (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 )) LIT))))) ))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (ERROR : :) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (return_statement return IDENT ;) })) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (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 + 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 + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ))) (argument_list ( IDENT , IDENT )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (ERROR )) LIT))))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (return_statement return (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )))) + IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (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 )) LIT))))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression (binary_expression BOOL > (pointer_expression * (ERROR )) IDENT)) != IDENT)))) )) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (return_statement return (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) < IDENT) )))) + (subscript_expression IDENT [ LIT ])) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (ERROR )) LIT))))) ))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (compound_statement { (return_statement return (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (ERROR )) 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 = (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (ERROR )) LIT))))) ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (return_statement return (binary_expression (binary_expression (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < IDENT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) + IDENT) ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (comma_expression (binary_expression (assignment_expression IDENT = IDENT) (ERROR : : IDENT) < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (ERROR : :) (call_expression IDENT (argument_list ( IDENT ))))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) )) (argument_list ( (pointer_expression * IDENT) ))) (argument_list ( IDENT )))) ;) (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 * (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * (pointer_expression * IDENT)))))) )) (argument_list ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (return_statement return IDENT ;) }))
(ERROR "Output_reloc<4,false,64,false> *\nFUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" (binary_expression "Output_reloc<4,false,64,false> *\nFUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (ERROR ",false,64,false" (, ",") (false "false") (, ",") (number_literal "64") (, ",") (false "false")) (> ">") (pointer_expression "*\nFUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" (* "*") (call_expression "FUN_001cfcb4(int param_1,int param_2,undefined4 param_3,uint param_4)" (identifier "FUN_001cfcb4") (argument_list "(int param_1,int param_2,undefined4 param_3,uint param_4)" (( "(") (ERROR "int" (identifier "int")) (identifier "param_1") (, ",") (ERROR "int" (identifier "int")) (identifier "param_2") (, ",") (identifier "undefined4") (ERROR "param_3" (identifier "param_3")) (, ",") (ERROR "uint" (identifier "uint")) (identifier "param_4") () ")")))))) (compound_statement "{\n  int iVar1;\n  Output_reloc<4,false,64,false> *pOVar2;\n  int *piVar3;\n  uint extraout_v1;\n  int *piVar4;\n  Output_reloc<9,false,64,true> *this;\n  undefined4 uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  Output_reloc<4,false,64,false> *unaff_s1;\n  Output_reloc<4,false,64,false> *pOVar10;\n  int iVar11;\n  Output_reloc<4,false,64,false> *unaff_s2;\n  Output_reloc<4,false,64,false> *unaff_s3;\n  int iVar12;\n  Output_reloc<4,false,64,false> *pOVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  undefined8 uVar17;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);\n    if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }\n  pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818);\n  pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n  puVar14 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3);\n  uVar9 = *(uint *)(pOVar13 + 0x10);\n  if ((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)) {\n    pOVar13 = unaff_s1;\n    uVar5 = 0x428;\n    goto LAB_001cff5c;\n  }\n  piVar4 = *(int **)pOVar13;\n  if (*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)) {\n    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }\n  }\n  else {\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }\n  pcVar15 = *(code **)(puVar14 + 0x262574);\n  iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8;\n  (*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c);\n  uVar6 = *(uint *)(iVar12 + 0x18);\n  uVar9 = *(uint *)(iVar12 + 0xc);\n  pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8);\n  piVar4 = *(int **)(iVar12 + 4);\n  if (uVar6 == 0xfffffffc) {\nLAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }\n    if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }\nLAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);\n  }\n  else {\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }\n  (**(code **)(pcVar15 + 0x2623ac))\n            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8);\nLAB_001d023c:\n  puVar8 = (undefined8 *)&DAT_000005c8;\n  pcVar16 = *(code **)(pcVar15 + 0x2623ac);\n  this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8);\n  (*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c);\n  uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this);\n  pcVar15 = *(code **)(pcVar16 + 0x26495c);\n  *puVar8 = uVar17;\n  pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this);\n  uVar9 = *(uint *)(this + 0x14);\n  *(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13;\n  *(uint *)((int)puVar8 + 0xc) = uVar9 >> 4;\n  return pOVar13;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (expression_statement "Output_reloc<4,false,64,false> *pOVar2;" (comma_expression "Output_reloc<4,false,64,false> *pOVar2" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *pOVar2" (false "false") (, ",") (comma_expression "64,false> *pOVar2" (number_literal "64") (, ",") (binary_expression "false> *pOVar2" (false "false") (> ">") (pointer_expression "*pOVar2" (* "*") (identifier "pOVar2")))))) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "uint extraout_v1;" (type_identifier "uint") (identifier "extraout_v1") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (expression_statement "Output_reloc<9,false,64,true> *this;" (comma_expression "Output_reloc<9,false,64,true> *this" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "false,64,true> *this" (false "false") (, ",") (comma_expression "64,true> *this" (number_literal "64") (, ",") (binary_expression "true> *this" (true "true") (> ">") (pointer_expression "*this" (* "*") (identifier "this")))))) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined8 *puVar8;" (type_identifier "undefined8") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (expression_statement "Output_reloc<4,false,64,false> *unaff_s1;" (comma_expression "Output_reloc<4,false,64,false> *unaff_s1" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *unaff_s1" (false "false") (, ",") (comma_expression "64,false> *unaff_s1" (number_literal "64") (, ",") (binary_expression "false> *unaff_s1" (false "false") (> ">") (pointer_expression "*unaff_s1" (* "*") (identifier "unaff_s1")))))) (; ";")) (expression_statement "Output_reloc<4,false,64,false> *pOVar10;" (comma_expression "Output_reloc<4,false,64,false> *pOVar10" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *pOVar10" (false "false") (, ",") (comma_expression "64,false> *pOVar10" (number_literal "64") (, ",") (binary_expression "false> *pOVar10" (false "false") (> ">") (pointer_expression "*pOVar10" (* "*") (identifier "pOVar10")))))) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (expression_statement "Output_reloc<4,false,64,false> *unaff_s2;" (comma_expression "Output_reloc<4,false,64,false> *unaff_s2" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *unaff_s2" (false "false") (, ",") (comma_expression "64,false> *unaff_s2" (number_literal "64") (, ",") (binary_expression "false> *unaff_s2" (false "false") (> ">") (pointer_expression "*unaff_s2" (* "*") (identifier "unaff_s2")))))) (; ";")) (expression_statement "Output_reloc<4,false,64,false> *unaff_s3;" (comma_expression "Output_reloc<4,false,64,false> *unaff_s3" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *unaff_s3" (false "false") (, ",") (comma_expression "64,false> *unaff_s3" (number_literal "64") (, ",") (binary_expression "false> *unaff_s3" (false "false") (> ">") (pointer_expression "*unaff_s3" (* "*") (identifier "unaff_s3")))))) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (expression_statement "Output_reloc<4,false,64,false> *pOVar13;" (comma_expression "Output_reloc<4,false,64,false> *pOVar13" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *pOVar13" (false "false") (, ",") (comma_expression "64,false> *pOVar13" (number_literal "64") (, ",") (binary_expression "false> *pOVar13" (false "false") (> ">") (pointer_expression "*pOVar13" (* "*") (identifier "pOVar13")))))) (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "code *pcVar15;" (type_identifier "code") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "code *pcVar16;" (type_identifier "code") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "undefined8 uVar17;" (type_identifier "undefined8") (identifier "uVar17") (; ";")) (if_statement "if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);\n    if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x20) << 2 < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) << 2 < 0" (binary_expression "*(int *)(param_1 + 0x20) << 2" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "2")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);\n    if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);\n  }" ({ "{") (expression_statement "unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);" (assignment_expression "unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c)" (identifier "unaff_s3") (= "=") (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x1c)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x1c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x20) << 1 < 0) {\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x20) << 1 < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar12 = *(int *)(param_1 + 0x10);\n      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);\n      if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }\n      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);\n    }" ({ "{") (expression_statement "iVar12 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x10)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);" (assignment_expression "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14)" (identifier "pOVar13") (= "=") (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x14)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x14)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x18) < 0) {\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }\n      else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x18) < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x18) < 0" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n      }" ({ "{") (labeled_statement "LAB_001cfdf4:\n        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();" (statement_identifier "LAB_001cfdf4") (: ":") (expression_statement "(*(code *)(PTR_LAB_004346b8 + 0x2b60))();" (call_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))()" (parenthesized_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))" (( "(") (pointer_expression "*(code *)(PTR_LAB_004346b8 + 0x2b60)" (* "*") (cast_expression "(code *)(PTR_LAB_004346b8 + 0x2b60)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_004346b8 + 0x2b60)" (( "(") (binary_expression "PTR_LAB_004346b8 + 0x2b60" (identifier "PTR_LAB_004346b8") (+ "+") (number_literal "0x2b60")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }" (else "else") (compound_statement "{\n        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);\n        if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;\n        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);\n        unaff_s3 = unaff_s1 + (int)unaff_s3;\n        if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);" (assignment_expression "iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18)" (identifier "iVar1") (= "=") (binary_expression "(uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18)" (call_expression "(uint)(pOVar13 + (int)unaff_s3 < pOVar13)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pOVar13 + (int)unaff_s3 < pOVar13)" (( "(") (binary_expression "pOVar13 + (int)unaff_s3 < pOVar13" (binary_expression "pOVar13 + (int)unaff_s3" (identifier "pOVar13") (+ "+") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3"))) (< "<") (identifier "pOVar13")) () ")"))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (if_statement "if ((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))\n        goto LAB_001cfdf4;" (if "if") (parenthesized_expression "((*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))" (( "(") (binary_expression "(*(int *)(param_2 + 8) < iVar1) ||\n           ((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)))" (parenthesized_expression "(*(int *)(param_2 + 8) < iVar1)" (( "(") (binary_expression "*(int *)(param_2 + 8) < iVar1" (pointer_expression "*(int *)(param_2 + 8)" (* "*") (cast_expression "(int *)(param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (< "<") (identifier "iVar1")) () ")")) (|| "||") (parenthesized_expression "((*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)))" (( "(") (parenthesized_expression "(*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))" (( "(") (binary_expression "*(int *)(param_2 + 8) == iVar1 &&\n            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)" (binary_expression "*(int *)(param_2 + 8) == iVar1" (pointer_expression "*(int *)(param_2 + 8)" (* "*") (cast_expression "(int *)(param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (== "==") (identifier "iVar1")) (&& "&&") (parenthesized_expression "(*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3)" (( "(") (binary_expression "*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3" (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_2 + 0xc)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(param_2 + 0xc)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (< "<") (binary_expression "pOVar13 + (int)unaff_s3" (identifier "pOVar13") (+ "+") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_001cfdf4;" (goto "goto") (statement_identifier "LAB_001cfdf4") (; ";"))) (expression_statement "unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);" (assignment_expression "unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10)" (identifier "unaff_s1") (= "=") (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_2 + 0x10)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(param_2 + 0x10)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "unaff_s3 = unaff_s1 + (int)unaff_s3;" (assignment_expression "unaff_s3 = unaff_s1 + (int)unaff_s3" (identifier "unaff_s3") (= "=") (binary_expression "unaff_s1 + (int)unaff_s3" (identifier "unaff_s1") (+ "+") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")))) (; ";")) (if_statement "if (*(char *)(param_1 + 0x34) == '\0') {\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x34) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x34) == '\0'" (pointer_expression "*(char *)(param_1 + 0x34)" (* "*") (cast_expression "(char *)(param_1 + 0x34)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n          iVar1 = 0;\n          pOVar10 = unaff_s3;\n          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }\n          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }\n        }" ({ "{") (expression_statement "unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);" (assignment_expression "unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" (identifier "unaff_s2") (= "=") (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "pOVar10 = unaff_s3;" (assignment_expression "pOVar10 = unaff_s3" (identifier "pOVar10") (= "=") (identifier "unaff_s3")) (; ";")) (if_statement "if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }\n          else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }" (if "if") (parenthesized_expression "(unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c))" (( "(") (binary_expression "unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (identifier "unaff_s2") (== "==") (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (compound_statement "{\n            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;\n          }" ({ "{") (expression_statement "unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;" (assignment_expression "unaff_s1 = (Output_reloc<4,false,64,false> *)0x0" (identifier "unaff_s1") (= "=") (parenthesized_expression "(Output_reloc<4,false,64,false> *)0x0" (( "(") (comma_expression "Output_reloc<4,false,64,false> *)0x0" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *)0x0" (false "false") (, ",") (comma_expression "64,false> *)0x0" (number_literal "64") (, ",") (binary_expression "false> *)0x0" (false "false") (> ">") (pointer_expression "*)0x0" (* "*") (ERROR ")" () ")")) (number_literal "0x0")))))) () ""))) (; ";")) (} "}")) (else_clause "else {\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }" (else "else") (compound_statement "{\n            do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);\n            unaff_s1 = pOVar10 + -(int)unaff_s3;\n            iVar1 = (int)unaff_s1 >> 0x1f;\n          }" ({ "{") (do_statement "do {\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);" (do "do") (compound_statement "{\n              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);\n              unaff_s2 = unaff_s2 + 0x28;\n              pOVar10 = pOVar10 + 0x18;\n            }" ({ "{") (labeled_statement "gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (expression_statement "Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);" (comma_expression "Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10)" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false>::write(unaff_s2,(uchar *)pOVar10)" (false "false") (, ",") (comma_expression "64,false>::write(unaff_s2,(uchar *)pOVar10)" (number_literal "64") (, ",") (binary_expression "false>::write(unaff_s2,(uchar *)pOVar10)" (false "false") (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "write(unaff_s2,(uchar *)pOVar10)" (identifier "write") (argument_list "(unaff_s2,(uchar *)pOVar10)" (( "(") (identifier "unaff_s2") (, ",") (cast_expression "(uchar *)pOVar10" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar10")) () ")"))))))) (; ";"))) (expression_statement "unaff_s2 = unaff_s2 + 0x28;" (assignment_expression "unaff_s2 = unaff_s2 + 0x28" (identifier "unaff_s2") (= "=") (binary_expression "unaff_s2 + 0x28" (identifier "unaff_s2") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "pOVar10 = pOVar10 + 0x18;" (assignment_expression "pOVar10 = pOVar10 + 0x18" (identifier "pOVar10") (= "=") (binary_expression "pOVar10 + 0x18" (identifier "pOVar10") (+ "+") (number_literal "0x18"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2)" (( "(") (binary_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2" (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (!= "!=") (identifier "unaff_s2")) () ")")) (; ";")) (expression_statement "unaff_s1 = pOVar10 + -(int)unaff_s3;" (assignment_expression "unaff_s1 = pOVar10 + -(int)unaff_s3" (identifier "unaff_s1") (= "=") (binary_expression "pOVar10 + -(int)unaff_s3" (identifier "pOVar10") (+ "+") (unary_expression "-(int)unaff_s3" (- "-") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3"))))) (; ";")) (expression_statement "iVar1 = (int)unaff_s1 >> 0x1f;" (assignment_expression "iVar1 = (int)unaff_s1 >> 0x1f" (identifier "iVar1") (= "=") (binary_expression "(int)unaff_s1 >> 0x1f" (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1")) (>> ">>") (number_literal "0x1f"))) (; ";")) (} "}")))) (if_statement "if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }" (if "if") (parenthesized_expression "((iVar12 == iVar1) && (pOVar13 == unaff_s1))" (( "(") (binary_expression "(iVar12 == iVar1) && (pOVar13 == unaff_s1)" (parenthesized_expression "(iVar12 == iVar1)" (( "(") (binary_expression "iVar12 == iVar1" (identifier "iVar12") (== "==") (identifier "iVar1")) () ")")) (&& "&&") (parenthesized_expression "(pOVar13 == unaff_s1)" (( "(") (binary_expression "pOVar13 == unaff_s1" (identifier "pOVar13") (== "==") (identifier "unaff_s1")) () ")"))) () ")")) (compound_statement "{\n            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);\n            if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }\n            return pOVar13;\n          }" ({ "{") (expression_statement "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);" (assignment_expression "pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" (identifier "pOVar13") (= "=") (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x38)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if (pOVar13 != unaff_s2) {\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }" (if "if") (parenthesized_expression "(pOVar13 != unaff_s2)" (( "(") (binary_expression "pOVar13 != unaff_s2" (identifier "pOVar13") (!= "!=") (identifier "unaff_s2")) () ")")) (compound_statement "{\n              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;\n            }" ({ "{") (expression_statement "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;" (assignment_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13" (pointer_expression "*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "pOVar13")) (; ";")) (} "}"))) (return_statement "return pOVar13;" (return "return") (identifier "pOVar13") (; ";")) (} "}"))) (} "}"))) (} "}")))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x4fe0")) () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xcf") (, ",") (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7894" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "0x7894")) () ")"))) (; ";")) (} "}"))) (expression_statement "pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818);" (assignment_expression "pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818)" (identifier "pOVar10") (= "=") (call_expression "(Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" (( "(") (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *" (false "false") (, ",") (comma_expression "64,false> *" (number_literal "64") (, ",") (binary_expression "false> *" (false "false") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + 0x7818)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7818" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "0x7818")) () ")")))) (; ";")) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0);" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0)" (identifier "pOVar13") (= "=") (call_expression "(Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" (( "(") (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *" (false "false") (, ",") (comma_expression "64,false> *" (number_literal "64") (, ",") (binary_expression "false> *" (false "false") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x4fe0")) () ")")))) (; ";")) (expression_statement "puVar14 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar14 = PTR_do_gold_unreachable_004323c4" (identifier "puVar14") (= "=") (identifier "PTR_do_gold_unreachable_004323c4")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(pOVar13,0xe3)" (( "(") (identifier "pOVar13") (, ",") (number_literal "0xe3") () ")"))) (; ";")) (expression_statement "uVar9 = *(uint *)(pOVar13 + 0x10);" (assignment_expression "uVar9 = *(uint *)(pOVar13 + 0x10)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(pOVar13 + 0x10)" (* "*") (cast_expression "(uint *)(pOVar13 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar13 + 0x10)" (( "(") (binary_expression "pOVar13 + 0x10" (identifier "pOVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)) {\n    pOVar13 = unaff_s1;\n    uVar5 = 0x428;\n    goto LAB_001cff5c;\n  }" (if "if") (parenthesized_expression "((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e))" (( "(") (binary_expression "(0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)" (parenthesized_expression "(0xfffffffa < uVar9 - 1)" (( "(") (binary_expression "0xfffffffa < uVar9 - 1" (number_literal "0xfffffffa") (< "<") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) () ")")) (|| "||") (parenthesized_expression "(unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)" (( "(") (comma_expression "unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e" (assignment_expression "unaff_s1 = pOVar13" (identifier "unaff_s1") (= "=") (identifier "pOVar13")) (, ",") (binary_expression "-1 < *(int *)(pOVar13 + 0x14) << 0x1e" (number_literal "-1") (< "<") (binary_expression "*(int *)(pOVar13 + 0x14) << 0x1e" (pointer_expression "*(int *)(pOVar13 + 0x14)" (* "*") (cast_expression "(int *)(pOVar13 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar13 + 0x14)" (( "(") (binary_expression "pOVar13 + 0x14" (identifier "pOVar13") (+ "+") (number_literal "0x14")) () ")")))) (<< "<<") (number_literal "0x1e")))) () ")"))) () ")")) (compound_statement "{\n    pOVar13 = unaff_s1;\n    uVar5 = 0x428;\n    goto LAB_001cff5c;\n  }" ({ "{") (expression_statement "pOVar13 = unaff_s1;" (assignment_expression "pOVar13 = unaff_s1" (identifier "pOVar13") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "uVar5 = 0x428;" (assignment_expression "uVar5 = 0x428" (identifier "uVar5") (= "=") (number_literal "0x428")) (; ";")) (goto_statement "goto LAB_001cff5c;" (goto "goto") (statement_identifier "LAB_001cff5c") (; ";")) (} "}"))) (expression_statement "piVar4 = *(int **)pOVar13;" (assignment_expression "piVar4 = *(int **)pOVar13" (identifier "piVar4") (= "=") (pointer_expression "*(int **)pOVar13" (* "*") (cast_expression "(int **)pOVar13" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pOVar13")))) (; ";")) (if_statement "if (*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)) {\n    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }\n  }\n  else {\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }" (if "if") (parenthesized_expression "(*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120))" (( "(") (binary_expression "*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)" (pointer_expression "*(code **)(*piVar4 + 0x60)" (* "*") (cast_expression "(code **)(*piVar4 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x60)" (( "(") (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (pointer_expression "*(code **)(puVar14 + 0x264120)" (* "*") (cast_expression "(code **)(puVar14 + 0x264120)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x264120)" (( "(") (binary_expression "puVar14 + 0x264120" (identifier "puVar14") (+ "+") (number_literal "0x264120")) () ")"))))) () ")")) (compound_statement "{\n    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }\n  }" ({ "{") (if_statement "if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }" (if "if") (parenthesized_expression "(uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2))" (( "(") (binary_expression "uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)" (identifier "uVar9") (< "<") (call_expression "(uint)(piVar4[0xf] - piVar4[0xe] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar4[0xf] - piVar4[0xe] >> 2)" (( "(") (binary_expression "piVar4[0xf] - piVar4[0xe] >> 2" (binary_expression "piVar4[0xf] - piVar4[0xe]" (subscript_expression "piVar4[0xf]" (identifier "piVar4") ([ "[") (number_literal "0xf") (] "]")) (- "-") (subscript_expression "piVar4[0xe]" (identifier "piVar4") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);\n      goto LAB_001cfed4;\n    }" ({ "{") (expression_statement "unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);" (assignment_expression "unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4)" (identifier "unaff_s3") (= "=") (pointer_expression "*(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(piVar4[0xe] + uVar9 * 4)" (( "(") (binary_expression "piVar4[0xe] + uVar9 * 4" (subscript_expression "piVar4[0xe]" (identifier "piVar4") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (goto_statement "goto LAB_001cfed4;" (goto "goto") (statement_identifier "LAB_001cfed4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }" (else "else") (compound_statement "{\n    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);\nLAB_001cfed4:\n    uVar5 = 0x42b;\n    unaff_s2 = pOVar10;\n    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;\n    piVar4 = *(int **)pOVar13;\n    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }\n    (**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);\n  }" ({ "{") (expression_statement "unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);" (assignment_expression "unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9)" (identifier "unaff_s3") (= "=") (call_expression "(Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9)" (call_expression "(Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" (( "(") (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *" (false "false") (, ",") (comma_expression "64,false> *" (number_literal "64") (, ",") (binary_expression "false> *" (false "false") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(**(code **)(*piVar4 + 0x60))" (( "(") (pointer_expression "**(code **)(*piVar4 + 0x60)" (* "*") (pointer_expression "*(code **)(*piVar4 + 0x60)" (* "*") (cast_expression "(code **)(*piVar4 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x60)" (( "(") (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x60")) () ")"))))) () ")"))) (argument_list "(piVar4,uVar9)" (( "(") (identifier "piVar4") (, ",") (identifier "uVar9") () ")")))) (; ";")) (labeled_statement "LAB_001cfed4:\n    uVar5 = 0x42b;" (statement_identifier "LAB_001cfed4") (: ":") (expression_statement "uVar5 = 0x42b;" (assignment_expression "uVar5 = 0x42b" (identifier "uVar5") (= "=") (number_literal "0x42b")) (; ";"))) (expression_statement "unaff_s2 = pOVar10;" (assignment_expression "unaff_s2 = pOVar10" (identifier "unaff_s2") (= "=") (identifier "pOVar10")) (; ";")) (if_statement "if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;" (if "if") (parenthesized_expression "(unaff_s3 == (Output_reloc<4,false,64,false> *)0x0)" (( "(") (binary_expression "unaff_s3 == (Output_reloc<4,false,64,false> *)0x0)" (identifier "unaff_s3") (== "==") (parenthesized_expression "(Output_reloc<4,false,64,false> *)0x0)" (( "(") (comma_expression "Output_reloc<4,false,64,false> *)0x0" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *)0x0" (false "false") (, ",") (comma_expression "64,false> *)0x0" (number_literal "64") (, ",") (binary_expression "false> *)0x0" (false "false") (> ">") (pointer_expression "*)0x0" (* "*") (ERROR ")" () ")")) (number_literal "0x0")))))) () ")"))) () "")) (goto_statement "goto LAB_001cff5c;" (goto "goto") (statement_identifier "LAB_001cff5c") (; ";"))) (expression_statement "piVar4 = *(int **)pOVar13;" (assignment_expression "piVar4 = *(int **)pOVar13" (identifier "piVar4") (= "=") (pointer_expression "*(int **)pOVar13" (* "*") (cast_expression "(int **)pOVar13" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pOVar13")))) (; ";")) (if_statement "if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }" (if "if") (parenthesized_expression "(uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3))" (( "(") (binary_expression "uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)" (identifier "uVar9") (< "<") (call_expression "(uint)(piVar4[0x22] - piVar4[0x21] >> 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar4[0x22] - piVar4[0x21] >> 3)" (( "(") (binary_expression "piVar4[0x22] - piVar4[0x21] >> 3" (binary_expression "piVar4[0x22] - piVar4[0x21]" (subscript_expression "piVar4[0x22]" (identifier "piVar4") ([ "[") (number_literal "0x22") (] "]")) (- "-") (subscript_expression "piVar4[0x21]" (identifier "piVar4") ([ "[") (number_literal "0x21") (] "]"))) (>> ">>") (number_literal "3")) () ")")))) () ")")) (compound_statement "{\n      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);\n      iVar12 = *piVar3;\n      iVar1 = piVar3[1];\n      if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }\n      pcVar15 = *(code **)(*piVar4 + 0xec);\n      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n      uVar6 = param_4;\n      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;\n      do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );\n    }" ({ "{") (expression_statement "piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);" (assignment_expression "piVar3 = (int *)(piVar4[0x21] + uVar9 * 8)" (identifier "piVar3") (= "=") (cast_expression "(int *)(piVar4[0x21] + uVar9 * 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[0x21] + uVar9 * 8)" (( "(") (binary_expression "piVar4[0x21] + uVar9 * 8" (subscript_expression "piVar4[0x21]" (identifier "piVar4") ([ "[") (number_literal "0x21") (] "]")) (+ "+") (binary_expression "uVar9 * 8" (identifier "uVar9") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar12 = *piVar3;" (assignment_expression "iVar12 = *piVar3" (identifier "iVar12") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "iVar1 = piVar3[1];" (assignment_expression "iVar1 = piVar3[1]" (identifier "iVar1") (= "=") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((iVar12 != -1) || (iVar1 != -1)) {\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }" (if "if") (parenthesized_expression "((iVar12 != -1) || (iVar1 != -1))" (( "(") (binary_expression "(iVar12 != -1) || (iVar1 != -1)" (parenthesized_expression "(iVar12 != -1)" (( "(") (binary_expression "iVar12 != -1" (identifier "iVar12") (!= "!=") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "(iVar1 != -1)" (( "(") (binary_expression "iVar1 != -1" (identifier "iVar1") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;\n      }" ({ "{") (return_statement "return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;" (return "return") (binary_expression "pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12" (binary_expression "pOVar10 + (uint)(param_4 + iVar1 < param_4)" (identifier "pOVar10") (+ "+") (call_expression "(uint)(param_4 + iVar1 < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 + iVar1 < param_4)" (( "(") (binary_expression "param_4 + iVar1 < param_4" (binary_expression "param_4 + iVar1" (identifier "param_4") (+ "+") (identifier "iVar1")) (< "<") (identifier "param_4")) () ")")))) (+ "+") (identifier "iVar12")) (; ";")) (} "}"))) (expression_statement "pcVar15 = *(code **)(*piVar4 + 0xec);" (assignment_expression "pcVar15 = *(code **)(*piVar4 + 0xec)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(*piVar4 + 0xec)" (* "*") (cast_expression "(code **)(*piVar4 + 0xec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0xec)" (( "(") (binary_expression "*piVar4 + 0xec" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0xec")) () ")"))))) (; ";")) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff" (identifier "pOVar13") (= "=") (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff" (( "(") (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *)0xffffffff" (false "false") (, ",") (comma_expression "64,false> *)0xffffffff" (number_literal "64") (, ",") (binary_expression "false> *)0xffffffff" (false "false") (> ">") (pointer_expression "*)0xffffffff" (* "*") (ERROR ")" () ")")) (number_literal "0xffffffff")))))) () ""))) (; ";")) (expression_statement "uVar6 = param_4;" (assignment_expression "uVar6 = param_4" (identifier "uVar6") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;" (if "if") (parenthesized_expression "(pcVar15 != *(code **)(puVar14 + 0x264a34))" (( "(") (binary_expression "pcVar15 != *(code **)(puVar14 + 0x264a34)" (identifier "pcVar15") (!= "!=") (pointer_expression "*(code **)(puVar14 + 0x264a34)" (* "*") (cast_expression "(code **)(puVar14 + 0x264a34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x264a34)" (( "(") (binary_expression "puVar14 + 0x264a34" (identifier "puVar14") (+ "+") (number_literal "0x264a34")) () ")"))))) () ")")) (goto_statement "goto LAB_001cff74;" (goto "goto") (statement_identifier "LAB_001cff74") (; ";"))) (do_statement "do {\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      } while( true );" (do "do") (compound_statement "{\n        uVar5 = 0x432;\n        unaff_s2 = pOVar10;\nLAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);\n        uVar6 = param_4;\n        pOVar10 = unaff_s2;\n        while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }\n      }" ({ "{") (expression_statement "uVar5 = 0x432;" (assignment_expression "uVar5 = 0x432" (identifier "uVar5") (= "=") (number_literal "0x432")) (; ";")) (expression_statement "unaff_s2 = pOVar10;" (assignment_expression "unaff_s2 = pOVar10" (identifier "unaff_s2") (= "=") (identifier "pOVar10")) (; ";")) (labeled_statement "LAB_001cff5c:\n        iVar12 = *(int *)(puVar14 + 0x262564);" (statement_identifier "LAB_001cff5c") (: ":") (expression_statement "iVar12 = *(int *)(puVar14 + 0x262564);" (assignment_expression "iVar12 = *(int *)(puVar14 + 0x262564)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(puVar14 + 0x262564)" (* "*") (cast_expression "(int *)(puVar14 + 0x262564)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x262564)" (( "(") (binary_expression "puVar14 + 0x262564" (identifier "puVar14") (+ "+") (number_literal "0x262564")) () ")"))))) (; ";"))) (expression_statement "uVar6 = param_4;" (assignment_expression "uVar6 = param_4" (identifier "uVar6") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pOVar10 = unaff_s2;" (assignment_expression "pOVar10 = unaff_s2" (identifier "pOVar10") (= "=") (identifier "unaff_s2")) (; ";")) (while_statement "while( true ) {\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          pcVar15 = *(code **)(puVar14 + 0x262574);\n          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);\nLAB_001cff74:\n          param_4 = uVar6;\n          iVar12 = (*pcVar15)();\n          if (iVar12 == 0) break;\n          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);\n          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n          if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }\n          uVar5 = 0x434;\n          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }\n          iVar12 = *(int *)(puVar14 + 0x262564);\n        }" ({ "{") (expression_statement "pcVar15 = *(code **)(puVar14 + 0x262574);" (assignment_expression "pcVar15 = *(code **)(puVar14 + 0x262574)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(puVar14 + 0x262574)" (* "*") (cast_expression "(code **)(puVar14 + 0x262574)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x262574)" (( "(") (binary_expression "puVar14 + 0x262574" (identifier "puVar14") (+ "+") (number_literal "0x262574")) () ")"))))) (; ";")) (expression_statement "(*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);" (call_expression "(*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4)" (( "(") (binary_expression "*(int *)(puVar14 + 0x262564) + 0x59f0" (pointer_expression "*(int *)(puVar14 + 0x262564)" (* "*") (cast_expression "(int *)(puVar14 + 0x262564)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x262564)" (( "(") (binary_expression "puVar14 + 0x262564" (identifier "puVar14") (+ "+") (number_literal "0x262564")) () ")")))) (+ "+") (number_literal "0x59f0")) (, ",") (identifier "uVar5") (, ",") (binary_expression "iVar12 + 0x69d4" (identifier "iVar12") (+ "+") (number_literal "0x69d4")) () ")"))) (; ";")) (labeled_statement "LAB_001cff74:\n          param_4 = uVar6;" (statement_identifier "LAB_001cff74") (: ":") (expression_statement "param_4 = uVar6;" (assignment_expression "param_4 = uVar6" (identifier "param_4") (= "=") (identifier "uVar6")) (; ";"))) (expression_statement "iVar12 = (*pcVar15)();" (assignment_expression "iVar12 = (*pcVar15)()" (identifier "iVar12") (= "=") (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);" (assignment_expression "uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6)" (identifier "uVar17") (= "=") (call_expression "(**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6)" (parenthesized_expression "(**(code **)(puVar14 + 0x26457c))" (( "(") (pointer_expression "**(code **)(puVar14 + 0x26457c)" (* "*") (pointer_expression "*(code **)(puVar14 + 0x26457c)" (* "*") (cast_expression "(code **)(puVar14 + 0x26457c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x26457c)" (( "(") (binary_expression "puVar14 + 0x26457c" (identifier "puVar14") (+ "+") (number_literal "0x26457c")) () ")"))))) () ")")) (argument_list "(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6)" (( "(") (identifier "unaff_s3") (, ",") (identifier "iVar12") (, ",") (identifier "uVar9") (, ",") (identifier "uVar6") (, ",") (identifier "pOVar10") (, ",") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);" (assignment_expression "pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" (identifier "pOVar2") (= "=") (call_expression "(Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" (( "(") (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *" (false "false") (, ",") (comma_expression "64,false> *" (number_literal "64") (, ",") (binary_expression "false> *" (false "false") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "((ulonglong)uVar17 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar17 >> 0x20" (cast_expression "(ulonglong)uVar17" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (pOVar2 != pOVar13) {\n            return pOVar2;\n          }" (if "if") (parenthesized_expression "(pOVar2 != pOVar13)" (( "(") (binary_expression "pOVar2 != pOVar13" (identifier "pOVar2") (!= "!=") (identifier "pOVar13")) () ")")) (compound_statement "{\n            return pOVar2;\n          }" ({ "{") (return_statement "return pOVar2;" (return "return") (identifier "pOVar2") (; ";")) (} "}"))) (expression_statement "uVar5 = 0x434;" (assignment_expression "uVar5 = 0x434" (identifier "uVar5") (= "=") (number_literal "0x434")) (; ";")) (if_statement "if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {\n            return pOVar2;\n          }" (if "if") (parenthesized_expression "((Output_reloc<4,false,64,false> *)uVar17 != pOVar2)" (( "(") (parenthesized_expression "(Output_reloc<4,false,64,false> *)uVar17 != pOVar2)" (( "(") (comma_expression "Output_reloc<4,false,64,false> *)uVar17 != pOVar2" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *)uVar17 != pOVar2" (false "false") (, ",") (comma_expression "64,false> *)uVar17 != pOVar2" (number_literal "64") (, ",") (binary_expression "false> *)uVar17 != pOVar2" (binary_expression "false> *)uVar17" (false "false") (> ">") (pointer_expression "*)uVar17" (* "*") (ERROR ")" () ")")) (identifier "uVar17"))) (!= "!=") (identifier "pOVar2"))))) () ")")) () "")) (compound_statement "{\n            return pOVar2;\n          }" ({ "{") (return_statement "return pOVar2;" (return "return") (identifier "pOVar2") (; ";")) (} "}"))) (expression_statement "iVar12 = *(int *)(puVar14 + 0x262564);" (assignment_expression "iVar12 = *(int *)(puVar14 + 0x262564)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(puVar14 + 0x262564)" (* "*") (cast_expression "(int *)(puVar14 + 0x262564)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x262564)" (( "(") (binary_expression "puVar14 + 0x262564" (identifier "puVar14") (+ "+") (number_literal "0x262564")) () ")"))))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);" (call_expression "(**(code **)(puVar14 + 0x262574))\n              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8)" (parenthesized_expression "(**(code **)(puVar14 + 0x262574))" (( "(") (pointer_expression "**(code **)(puVar14 + 0x262574)" (* "*") (pointer_expression "*(code **)(puVar14 + 0x262574)" (* "*") (cast_expression "(code **)(puVar14 + 0x262574)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x262574)" (( "(") (binary_expression "puVar14 + 0x262574" (identifier "puVar14") (+ "+") (number_literal "0x262574")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8)" (( "(") (binary_expression "*(int *)(puVar14 + 0x2623bc) + 0x44a8" (pointer_expression "*(int *)(puVar14 + 0x2623bc)" (* "*") (cast_expression "(int *)(puVar14 + 0x2623bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x2623bc)" (( "(") (binary_expression "puVar14 + 0x2623bc" (identifier "puVar14") (+ "+") (number_literal "0x2623bc")) () ")")))) (+ "+") (number_literal "0x44a8")) (, ",") (number_literal "0x7f7") (, ",") (binary_expression "*(int *)(puVar14 + 0x262564) + 0x69b8" (pointer_expression "*(int *)(puVar14 + 0x262564)" (* "*") (cast_expression "(int *)(puVar14 + 0x262564)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x262564)" (( "(") (binary_expression "puVar14 + 0x262564" (identifier "puVar14") (+ "+") (number_literal "0x262564")) () ")")))) (+ "+") (number_literal "0x69b8")) () ")"))) (; ";")) (} "}")))) (expression_statement "pcVar15 = *(code **)(puVar14 + 0x262574);" (assignment_expression "pcVar15 = *(code **)(puVar14 + 0x262574)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(puVar14 + 0x262574)" (* "*") (cast_expression "(code **)(puVar14 + 0x262574)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x262574)" (( "(") (binary_expression "puVar14 + 0x262574" (identifier "puVar14") (+ "+") (number_literal "0x262574")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8;" (assignment_expression "iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8" (identifier "iVar12") (= "=") (binary_expression "*(int *)(puVar14 + 0x2623bc) + 0x44a8" (pointer_expression "*(int *)(puVar14 + 0x2623bc)" (* "*") (cast_expression "(int *)(puVar14 + 0x2623bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x2623bc)" (( "(") (binary_expression "puVar14 + 0x2623bc" (identifier "puVar14") (+ "+") (number_literal "0x2623bc")) () ")")))) (+ "+") (number_literal "0x44a8"))) (; ";")) (expression_statement "(*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c);" (call_expression "(*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c)" (( "(") (identifier "iVar12") (, ",") (number_literal "0x5c8") (, ",") (binary_expression "*(int *)(puVar14 + 0x262564) + 0x6e8c" (pointer_expression "*(int *)(puVar14 + 0x262564)" (* "*") (cast_expression "(int *)(puVar14 + 0x262564)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x262564)" (( "(") (binary_expression "puVar14 + 0x262564" (identifier "puVar14") (+ "+") (number_literal "0x262564")) () ")")))) (+ "+") (number_literal "0x6e8c")) () ")"))) (; ";")) (expression_statement "uVar6 = *(uint *)(iVar12 + 0x18);" (assignment_expression "uVar6 = *(uint *)(iVar12 + 0x18)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x18)" (* "*") (cast_expression "(uint *)(iVar12 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(uint *)(iVar12 + 0xc);" (assignment_expression "uVar9 = *(uint *)(iVar12 + 0xc)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(iVar12 + 0xc)" (* "*") (cast_expression "(uint *)(iVar12 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8);" (assignment_expression "pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8)" (identifier "pOVar13") (= "=") (pointer_expression "*(Output_reloc<4,false,64,false> **)(iVar12 + 8)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(iVar12 + 8)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "piVar4 = *(int **)(iVar12 + 4);" (assignment_expression "piVar4 = *(int **)(iVar12 + 4)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(iVar12 + 4)" (* "*") (cast_expression "(int **)(iVar12 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar6 == 0xfffffffc) {\nLAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }\n    if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }\nLAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);\n  }\n  else {\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }" (if "if") (parenthesized_expression "(uVar6 == 0xfffffffc)" (( "(") (binary_expression "uVar6 == 0xfffffffc" (identifier "uVar6") (== "==") (number_literal "0xfffffffc")) () ")")) (compound_statement "{\nLAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }\n    if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }\nLAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);\n  }" ({ "{") (labeled_statement "LAB_001d0158:\n    if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }" (statement_identifier "LAB_001d0158") (: ":") (if_statement "if (piVar4 == (int *)0x0) {\n      return pOVar13;\n    }" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return pOVar13;\n    }" ({ "{") (return_statement "return pOVar13;" (return "return") (identifier "pOVar13") (; ";")) (} "}")))) (if_statement "if (piVar4[8] < 0) {\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }" (if "if") (parenthesized_expression "(piVar4[8] < 0)" (( "(") (binary_expression "piVar4[8] < 0" (subscript_expression "piVar4[8]" (identifier "piVar4") ([ "[") (number_literal "8") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];\n    }" ({ "{") (return_statement "return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];" (return "return") (binary_expression "pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2]" (binary_expression "pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9)" (identifier "pOVar13") (+ "+") (call_expression "(uint)(uVar9 + piVar4[3] < uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 + piVar4[3] < uVar9)" (( "(") (binary_expression "uVar9 + piVar4[3] < uVar9" (binary_expression "uVar9 + piVar4[3]" (identifier "uVar9") (+ "+") (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]"))) (< "<") (identifier "uVar9")) () ")")))) (+ "+") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (labeled_statement "LAB_001d0204:\n    (**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);" (statement_identifier "LAB_001d0204") (: ":") (expression_statement "(**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);" (call_expression "(**(code **)(pcVar15 + 0x2623ac))\n              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850)" (parenthesized_expression "(**(code **)(pcVar15 + 0x2623ac))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x2623ac)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" (* "*") (cast_expression "(code **)(pcVar15 + 0x2623ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x2623ac)" (( "(") (binary_expression "pcVar15 + 0x2623ac" (identifier "pcVar15") (+ "+") (number_literal "0x2623ac")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850)" (( "(") (binary_expression "*(int *)(pcVar15 + 0x26239c) + -0x4fe0" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" (* "*") (cast_expression "(int *)(pcVar15 + 0x26239c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x26239c)" (( "(") (binary_expression "pcVar15 + 0x26239c" (identifier "pcVar15") (+ "+") (number_literal "0x26239c")) () ")")))) (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xc5") (, ",") (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x7850" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" (* "*") (cast_expression "(int *)(pcVar15 + 0x26239c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x26239c)" (( "(") (binary_expression "pcVar15 + 0x26239c" (identifier "pcVar15") (+ "+") (number_literal "0x26239c")) () ")")))) (+ "+") (number_literal "0x7850")) () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }" (else "else") (compound_statement "{\n    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }\n    piVar4 = *(int **)(iVar12 + 4);\n    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }\n  }" ({ "{") (if_statement "if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }\n    else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }" (if "if") (parenthesized_expression "(*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58))" (( "(") (binary_expression "*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)" (pointer_expression "*(code **)(*piVar4 + 0x60)" (* "*") (cast_expression "(code **)(*piVar4 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x60)" (( "(") (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (pointer_expression "*(code **)(pcVar15 + 0x263f58)" (* "*") (cast_expression "(code **)(pcVar15 + 0x263f58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x263f58)" (( "(") (binary_expression "pcVar15 + 0x263f58" (identifier "pcVar15") (+ "+") (number_literal "0x263f58")) () ")"))))) () ")")) (compound_statement "{\n      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;\n      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);\n    }" ({ "{") (if_statement "if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;" (if "if") (parenthesized_expression "((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6)" (( "(") (binary_expression "(uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6" (call_expression "(uint)(piVar4[0xf] - piVar4[0xe] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar4[0xf] - piVar4[0xe] >> 2)" (( "(") (binary_expression "piVar4[0xf] - piVar4[0xe] >> 2" (binary_expression "piVar4[0xf] - piVar4[0xe]" (subscript_expression "piVar4[0xf]" (identifier "piVar4") ([ "[") (number_literal "0xf") (] "]")) (- "-") (subscript_expression "piVar4[0xe]" (identifier "piVar4") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar6")) () ")")) (goto_statement "goto LAB_001d023c;" (goto "goto") (statement_identifier "LAB_001d023c") (; ";"))) (expression_statement "iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);" (assignment_expression "iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(piVar4[0xe] + uVar6 * 4)" (* "*") (cast_expression "(int *)(piVar4[0xe] + uVar6 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[0xe] + uVar6 * 4)" (( "(") (binary_expression "piVar4[0xe] + uVar6 * 4" (subscript_expression "piVar4[0xe]" (identifier "piVar4") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "uVar6 * 4" (identifier "uVar6") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }" (else "else") (compound_statement "{\n      iVar1 = (**(code **)(*piVar4 + 0x60))();\n    }" ({ "{") (expression_statement "iVar1 = (**(code **)(*piVar4 + 0x60))();" (assignment_expression "iVar1 = (**(code **)(*piVar4 + 0x60))()" (identifier "iVar1") (= "=") (call_expression "(**(code **)(*piVar4 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar4 + 0x60))" (( "(") (pointer_expression "**(code **)(*piVar4 + 0x60)" (* "*") (pointer_expression "*(code **)(*piVar4 + 0x60)" (* "*") (cast_expression "(code **)(*piVar4 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x60)" (( "(") (binary_expression "*piVar4 + 0x60" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar5 = 0x442;" (assignment_expression "uVar5 = 0x442" (identifier "uVar5") (= "=") (number_literal "0x442")) (; ";")) (if_statement "if (iVar1 == 0) {\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);\nLAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);\n      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);\n      uVar9 = extraout_v1;\n      goto LAB_001d0158;\n    }" ({ "{") (labeled_statement "LAB_001d0140:\n      iVar12 = *(int *)(pcVar15 + 0x26239c);" (statement_identifier "LAB_001d0140") (: ":") (expression_statement "iVar12 = *(int *)(pcVar15 + 0x26239c);" (assignment_expression "iVar12 = *(int *)(pcVar15 + 0x26239c)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(pcVar15 + 0x26239c)" (* "*") (cast_expression "(int *)(pcVar15 + 0x26239c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x26239c)" (( "(") (binary_expression "pcVar15 + 0x26239c" (identifier "pcVar15") (+ "+") (number_literal "0x26239c")) () ")"))))) (; ";"))) (labeled_statement "LAB_001d0144:\n      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);" (statement_identifier "LAB_001d0144") (: ":") (expression_statement "piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);" (assignment_expression "piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0)" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar15 + 0x26239c) + 0x59f0)" (( "(") (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x59f0" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" (* "*") (cast_expression "(int *)(pcVar15 + 0x26239c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x26239c)" (( "(") (binary_expression "pcVar15 + 0x26239c" (identifier "pcVar15") (+ "+") (number_literal "0x26239c")) () ")")))) (+ "+") (number_literal "0x59f0")) () ")")))) (; ";"))) (expression_statement "(**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);" (call_expression "(**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960)" (parenthesized_expression "(**(code **)(pcVar15 + 0x2623ac))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x2623ac)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" (* "*") (cast_expression "(code **)(pcVar15 + 0x2623ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x2623ac)" (( "(") (binary_expression "pcVar15 + 0x2623ac" (identifier "pcVar15") (+ "+") (number_literal "0x2623ac")) () ")"))))) () ")")) (argument_list "(piVar4,uVar5,iVar12 + 0x6960)" (( "(") (identifier "piVar4") (, ",") (identifier "uVar5") (, ",") (binary_expression "iVar12 + 0x6960" (identifier "iVar12") (+ "+") (number_literal "0x6960")) () ")"))) (; ";")) (expression_statement "uVar9 = extraout_v1;" (assignment_expression "uVar9 = extraout_v1" (identifier "uVar9") (= "=") (identifier "extraout_v1")) (; ";")) (goto_statement "goto LAB_001d0158;" (goto "goto") (statement_identifier "LAB_001d0158") (; ";")) (} "}"))) (expression_statement "piVar4 = *(int **)(iVar12 + 4);" (assignment_expression "piVar4 = *(int **)(iVar12 + 4)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(iVar12 + 4)" (* "*") (cast_expression "(int **)(iVar12 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }" (if "if") (parenthesized_expression "(*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3))" (( "(") (binary_expression "*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)" (pointer_expression "*(uint *)(iVar12 + 0x18)" (* "*") (cast_expression "(uint *)(iVar12 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")")))) (< "<") (call_expression "(uint)(piVar4[0x22] - piVar4[0x21] >> 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar4[0x22] - piVar4[0x21] >> 3)" (( "(") (binary_expression "piVar4[0x22] - piVar4[0x21] >> 3" (binary_expression "piVar4[0x22] - piVar4[0x21]" (subscript_expression "piVar4[0x22]" (identifier "piVar4") ([ "[") (number_literal "0x22") (] "]")) (- "-") (subscript_expression "piVar4[0x21]" (identifier "piVar4") ([ "[") (number_literal "0x21") (] "]"))) (>> ">>") (number_literal "3")) () ")")))) () ")")) (compound_statement "{\n      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);\n      iVar7 = *piVar3;\n      iVar11 = piVar3[1];\n      if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }\n      if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }\n      goto LAB_001d0204;\n    }" ({ "{") (expression_statement "piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);" (assignment_expression "piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8)" (identifier "piVar3") (= "=") (cast_expression "(int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8)" (( "(") (binary_expression "piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8" (subscript_expression "piVar4[0x21]" (identifier "piVar4") ([ "[") (number_literal "0x21") (] "]")) (+ "+") (binary_expression "*(uint *)(iVar12 + 0x18) * 8" (pointer_expression "*(uint *)(iVar12 + 0x18)" (* "*") (cast_expression "(uint *)(iVar12 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar7 = *piVar3;" (assignment_expression "iVar7 = *piVar3" (identifier "iVar7") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "iVar11 = piVar3[1];" (assignment_expression "iVar11 = piVar3[1]" (identifier "iVar11") (= "=") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((iVar7 == -1) && (iVar11 == -1)) {\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }" (if "if") (parenthesized_expression "((iVar7 == -1) && (iVar11 == -1))" (( "(") (binary_expression "(iVar7 == -1) && (iVar11 == -1)" (parenthesized_expression "(iVar7 == -1)" (( "(") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(iVar11 == -1)" (( "(") (binary_expression "iVar11 == -1" (identifier "iVar11") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }\n        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));\n        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);\n        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }\n        uVar5 = 0x44c;\n        if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }\n        iVar12 = *(int *)(pcVar15 + 0x26239c);\n        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;\n        goto LAB_001d0144;\n      }" ({ "{") (if_statement "if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }" (if "if") (parenthesized_expression "((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0))" (( "(") (binary_expression "(*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||\n           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)" (parenthesized_expression "(*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c))" (( "(") (binary_expression "*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)" (pointer_expression "*(code **)(*piVar4 + 0xec)" (* "*") (cast_expression "(code **)(*piVar4 + 0xec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0xec)" (( "(") (binary_expression "*piVar4 + 0xec" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0xec")) () ")")))) (== "==") (pointer_expression "*(code **)(pcVar15 + 0x26486c)" (* "*") (cast_expression "(code **)(pcVar15 + 0x26486c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x26486c)" (( "(") (binary_expression "pcVar15 + 0x26486c" (identifier "pcVar15") (+ "+") (number_literal "0x26486c")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)" (( "(") (comma_expression "iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(*piVar4 + 0xec))()" (identifier "iVar7") (= "=") (call_expression "(**(code **)(*piVar4 + 0xec))()" (parenthesized_expression "(**(code **)(*piVar4 + 0xec))" (( "(") (pointer_expression "**(code **)(*piVar4 + 0xec)" (* "*") (pointer_expression "*(code **)(*piVar4 + 0xec)" (* "*") (cast_expression "(code **)(*piVar4 + 0xec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0xec)" (( "(") (binary_expression "*piVar4 + 0xec" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0xec")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          uVar5 = 0x44a;\n          goto LAB_001d0140;\n        }" ({ "{") (expression_statement "uVar5 = 0x44a;" (assignment_expression "uVar5 = 0x44a" (identifier "uVar5") (= "=") (number_literal "0x44a")) (; ";")) (goto_statement "goto LAB_001d0140;" (goto "goto") (statement_identifier "LAB_001d0140") (; ";")) (} "}"))) (expression_statement "uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));" (assignment_expression "uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18))" (identifier "uVar17") (= "=") (call_expression "(**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18))" (parenthesized_expression "(**(code **)(pcVar15 + 0x2643b4))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x2643b4)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x2643b4)" (* "*") (cast_expression "(code **)(pcVar15 + 0x2643b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x2643b4)" (( "(") (binary_expression "pcVar15 + 0x2643b4" (identifier "pcVar15") (+ "+") (number_literal "0x2643b4")) () ")"))))) () ")")) (argument_list "(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18))" (( "(") (identifier "iVar1") (, ",") (identifier "iVar7") (, ",") (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" (identifier "pOVar13") (= "=") (call_expression "(Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" (( "(") (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *" (false "false") (, ",") (comma_expression "64,false> *" (number_literal "64") (, ",") (binary_expression "false> *" (false "false") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "((ulonglong)uVar17 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar17 >> 0x20" (cast_expression "(ulonglong)uVar17" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {\n          return pOVar13;\n        }" (if "if") (parenthesized_expression "(pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff)" (( "(") (binary_expression "pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff)" (identifier "pOVar13") (!= "!=") (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff)" (( "(") (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *)0xffffffff" (false "false") (, ",") (comma_expression "64,false> *)0xffffffff" (number_literal "64") (, ",") (binary_expression "false> *)0xffffffff" (false "false") (> ">") (pointer_expression "*)0xffffffff" (* "*") (ERROR ")" () ")")) (number_literal "0xffffffff")))))) () ")"))) () "")) (compound_statement "{\n          return pOVar13;\n        }" ({ "{") (return_statement "return pOVar13;" (return "return") (identifier "pOVar13") (; ";")) (} "}"))) (expression_statement "uVar5 = 0x44c;" (assignment_expression "uVar5 = 0x44c" (identifier "uVar5") (= "=") (number_literal "0x44c")) (; ";")) (if_statement "if ((int)uVar17 != -1) {\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }" (if "if") (parenthesized_expression "((int)uVar17 != -1)" (( "(") (binary_expression "(int)uVar17 != -1" (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n          return (Output_reloc<4,false,64,false> *)0xffffffff;\n        }" ({ "{") (return_statement "return (Output_reloc<4,false,64,false> *)0xffffffff;" (return "return") (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff" (( "(") (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *)0xffffffff" (false "false") (, ",") (comma_expression "64,false> *)0xffffffff" (number_literal "64") (, ",") (binary_expression "false> *)0xffffffff" (false "false") (> ">") (pointer_expression "*)0xffffffff" (* "*") (ERROR ")" () ")")) (number_literal "0xffffffff")))))) () "")) (; ";")) (} "}"))) (expression_statement "iVar12 = *(int *)(pcVar15 + 0x26239c);" (assignment_expression "iVar12 = *(int *)(pcVar15 + 0x26239c)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(pcVar15 + 0x26239c)" (* "*") (cast_expression "(int *)(pcVar15 + 0x26239c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x26239c)" (( "(") (binary_expression "pcVar15 + 0x26239c" (identifier "pcVar15") (+ "+") (number_literal "0x26239c")) () ")"))))) (; ";")) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff" (identifier "pOVar13") (= "=") (parenthesized_expression "(Output_reloc<4,false,64,false> *)0xffffffff" (( "(") (comma_expression "Output_reloc<4,false,64,false> *)0xffffffff" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *)0xffffffff" (false "false") (, ",") (comma_expression "64,false> *)0xffffffff" (number_literal "64") (, ",") (binary_expression "false> *)0xffffffff" (false "false") (> ">") (pointer_expression "*)0xffffffff" (* "*") (ERROR ")" () ")")) (number_literal "0xffffffff")))))) () ""))) (; ";")) (goto_statement "goto LAB_001d0144;" (goto "goto") (statement_identifier "LAB_001d0144") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar1 + 0x20) < 0) {\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x20) < 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x20) < 0" (pointer_expression "*(int *)(iVar1 + 0x20)" (* "*") (cast_expression "(int *)(iVar1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x20)" (( "(") (binary_expression "iVar1 + 0x20" (identifier "iVar1") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        uVar6 = uVar9 + iVar11;\n        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;\n      }" ({ "{") (expression_statement "uVar6 = uVar9 + iVar11;" (assignment_expression "uVar6 = uVar9 + iVar11" (identifier "uVar6") (= "=") (binary_expression "uVar9 + iVar11" (identifier "uVar9") (+ "+") (identifier "iVar11"))) (; ";")) (return_statement "return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;" (return "return") (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7" (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9)" (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +\n                         *(int *)(iVar1 + 8)" (binary_expression "pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6)" (identifier "pOVar13") (+ "+") (call_expression "(uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar6 + *(int *)(iVar1 + 0xc) < uVar6)" (( "(") (binary_expression "uVar6 + *(int *)(iVar1 + 0xc) < uVar6" (binary_expression "uVar6 + *(int *)(iVar1 + 0xc)" (identifier "uVar6") (+ "+") (pointer_expression "*(int *)(iVar1 + 0xc)" (* "*") (cast_expression "(int *)(iVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")"))))) (< "<") (identifier "uVar6")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar1 + 8)" (* "*") (cast_expression "(int *)(iVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (call_expression "(uint)(uVar6 < uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar6 < uVar9)" (( "(") (binary_expression "uVar6 < uVar9" (identifier "uVar6") (< "<") (identifier "uVar9")) () ")")))) (+ "+") (identifier "iVar7")) (; ";")) (} "}"))) (goto_statement "goto LAB_001d0204;" (goto "goto") (statement_identifier "LAB_001d0204") (; ";")) (} "}"))) (} "}")))) (expression_statement "(**(code **)(pcVar15 + 0x2623ac))\n            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8);" (call_expression "(**(code **)(pcVar15 + 0x2623ac))\n            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8)" (parenthesized_expression "(**(code **)(pcVar15 + 0x2623ac))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x2623ac)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" (* "*") (cast_expression "(code **)(pcVar15 + 0x2623ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x2623ac)" (( "(") (binary_expression "pcVar15 + 0x2623ac" (identifier "pcVar15") (+ "+") (number_literal "0x2623ac")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8)" (( "(") (binary_expression "*(int *)(pcVar15 + 0x2621f4) + 0x44a8" (pointer_expression "*(int *)(pcVar15 + 0x2621f4)" (* "*") (cast_expression "(int *)(pcVar15 + 0x2621f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x2621f4)" (( "(") (binary_expression "pcVar15 + 0x2621f4" (identifier "pcVar15") (+ "+") (number_literal "0x2621f4")) () ")")))) (+ "+") (number_literal "0x44a8")) (, ",") (number_literal "0x7f7") (, ",") (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x69b8" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" (* "*") (cast_expression "(int *)(pcVar15 + 0x26239c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x26239c)" (( "(") (binary_expression "pcVar15 + 0x26239c" (identifier "pcVar15") (+ "+") (number_literal "0x26239c")) () ")")))) (+ "+") (number_literal "0x69b8")) () ")"))) (; ";")) (labeled_statement "LAB_001d023c:\n  puVar8 = (undefined8 *)&DAT_000005c8;" (statement_identifier "LAB_001d023c") (: ":") (expression_statement "puVar8 = (undefined8 *)&DAT_000005c8;" (assignment_expression "puVar8 = (undefined8 *)&DAT_000005c8" (identifier "puVar8") (= "=") (cast_expression "(undefined8 *)&DAT_000005c8" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000005c8" (& "&") (identifier "DAT_000005c8")))) (; ";"))) (expression_statement "pcVar16 = *(code **)(pcVar15 + 0x2623ac);" (assignment_expression "pcVar16 = *(code **)(pcVar15 + 0x2623ac)" (identifier "pcVar16") (= "=") (pointer_expression "*(code **)(pcVar15 + 0x2623ac)" (* "*") (cast_expression "(code **)(pcVar15 + 0x2623ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x2623ac)" (( "(") (binary_expression "pcVar15 + 0x2623ac" (identifier "pcVar15") (+ "+") (number_literal "0x2623ac")) () ")"))))) (; ";")) (expression_statement "this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8);" (assignment_expression "this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8)" (identifier "this") (= "=") (call_expression "(Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8)" (parenthesized_expression "(Output_reloc<9,false,64,true> *)" (( "(") (comma_expression "Output_reloc<9,false,64,true> *" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "false,64,true> *" (false "false") (, ",") (comma_expression "64,true> *" (number_literal "64") (, ",") (binary_expression "true> *" (true "true") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(*(int *)(pcVar15 + 0x2621f4) + 0x44a8)" (( "(") (binary_expression "*(int *)(pcVar15 + 0x2621f4) + 0x44a8" (pointer_expression "*(int *)(pcVar15 + 0x2621f4)" (* "*") (cast_expression "(int *)(pcVar15 + 0x2621f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x2621f4)" (( "(") (binary_expression "pcVar15 + 0x2621f4" (identifier "pcVar15") (+ "+") (number_literal "0x2621f4")) () ")")))) (+ "+") (number_literal "0x44a8")) () ")")))) (; ";")) (expression_statement "(*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c);" (call_expression "(*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c)" (parenthesized_expression "(*pcVar16)" (( "(") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) () ")")) (argument_list "(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c)" (( "(") (identifier "this") (, ",") (number_literal "0x5c8") (, ",") (binary_expression "*(int *)(pcVar15 + 0x26239c) + 0x6e8c" (pointer_expression "*(int *)(pcVar15 + 0x26239c)" (* "*") (cast_expression "(int *)(pcVar15 + 0x26239c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x26239c)" (( "(") (binary_expression "pcVar15 + 0x26239c" (identifier "pcVar15") (+ "+") (number_literal "0x26239c")) () ")")))) (+ "+") (number_literal "0x6e8c")) () ")"))) (; ";")) (expression_statement "uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this);" (comma_expression "uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this)" (binary_expression "uVar17 = gold::Output_reloc<9" (assignment_expression "uVar17 = gold" (identifier "uVar17") (= "=") (identifier "gold")) (ERROR "::Output_reloc" (: ":") (: ":") (identifier "Output_reloc")) (< "<") (number_literal "9")) (, ",") (comma_expression "false,64,true>::get_address(this)" (false "false") (, ",") (comma_expression "64,true>::get_address(this)" (number_literal "64") (, ",") (binary_expression "true>::get_address(this)" (true "true") (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "get_address(this)" (identifier "get_address") (argument_list "(this)" (( "(") (identifier "this") () ")"))))))) (; ";")) (expression_statement "pcVar15 = *(code **)(pcVar16 + 0x26495c);" (assignment_expression "pcVar15 = *(code **)(pcVar16 + 0x26495c)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar16 + 0x26495c)" (* "*") (cast_expression "(code **)(pcVar16 + 0x26495c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x26495c)" (( "(") (binary_expression "pcVar16 + 0x26495c" (identifier "pcVar16") (+ "+") (number_literal "0x26495c")) () ")"))))) (; ";")) (expression_statement "*puVar8 = uVar17;" (assignment_expression "*puVar8 = uVar17" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this);" (assignment_expression "pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this)" (identifier "pOVar13") (= "=") (call_expression "(Output_reloc<4,false,64,false> *)(*pcVar15)(this)" (call_expression "(Output_reloc<4,false,64,false> *)(*pcVar15)" (parenthesized_expression "(Output_reloc<4,false,64,false> *)" (( "(") (comma_expression "Output_reloc<4,false,64,false> *" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> *" (false "false") (, ",") (comma_expression "64,false> *" (number_literal "64") (, ",") (binary_expression "false> *" (false "false") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")"))) (argument_list "(this)" (( "(") (identifier "this") () ")")))) (; ";")) (expression_statement "uVar9 = *(uint *)(this + 0x14);" (assignment_expression "uVar9 = *(uint *)(this + 0x14)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(this + 0x14)" (* "*") (cast_expression "(uint *)(this + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x14)" (( "(") (binary_expression "this + 0x14" (identifier "this") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13;" (assignment_expression "*(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13" (pointer_expression "*(Output_reloc<4,false,64,false> **)(puVar8 + 1)" (* "*") (call_expression "(Output_reloc<4,false,64,false> **)(puVar8 + 1)" (parenthesized_expression "(Output_reloc<4,false,64,false> **)" (( "(") (comma_expression "Output_reloc<4,false,64,false> **" (binary_expression "Output_reloc<4" (identifier "Output_reloc") (< "<") (number_literal "4")) (, ",") (comma_expression "false,64,false> **" (false "false") (, ",") (comma_expression "64,false> **" (number_literal "64") (, ",") (binary_expression "false> **" (false "false") (> ">") (pointer_expression "**" (* "*") (pointer_expression "*" (* "*") (identifier ""))))))) () ")")) (argument_list "(puVar8 + 1)" (( "(") (binary_expression "puVar8 + 1" (identifier "puVar8") (+ "+") (number_literal "1")) () ")")))) (= "=") (identifier "pOVar13")) (; ";")) (expression_statement "*(uint *)((int)puVar8 + 0xc) = uVar9 >> 4;" (assignment_expression "*(uint *)((int)puVar8 + 0xc) = uVar9 >> 4" (pointer_expression "*(uint *)((int)puVar8 + 0xc)" (* "*") (cast_expression "(uint *)((int)puVar8 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 0xc)" (( "(") (binary_expression "(int)puVar8 + 0xc" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "uVar9 >> 4" (identifier "uVar9") (>> ">>") (number_literal "4"))) (; ";")) (return_statement "return pOVar13;" (return "return") (identifier "pOVar13") (; ";")) (} "}"))
(translation_unit (ERROR (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) (ERROR (false) (number_literal) (false)) right: (pointer_expression argument: (call_expression function: (identifier) arguments: (argument_list (ERROR (identifier)) (identifier) (ERROR (identifier)) (identifier) (identifier) (ERROR (identifier)) (ERROR (identifier)) (identifier)))))) (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (identifier))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (true) right: (pointer_expression argument: (identifier))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (identifier))))))) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (identifier))))))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (identifier))))))) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (identifier))))))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (identifier))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (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)))))) arguments: (argument_list))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier)))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) consequence: (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: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression (ERROR) argument: (number_literal)))))) (MISSING ")"))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) (ERROR) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (return_statement (identifier))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (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: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (MISSING identifier))))))) arguments: (argument_list (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: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (MISSING identifier))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (MISSING identifier))))))) arguments: (argument_list (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) arguments: (argument_list (identifier) (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression (ERROR) argument: (number_literal)))))))) (MISSING ")")) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (return_statement (binary_expression left: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression (ERROR) argument: (number_literal)))))) (MISSING ")")))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier))))) (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: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (MISSING identifier))))))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (binary_expression left: (false) right: (pointer_expression (ERROR) argument: (identifier))) right: (identifier)))))) (MISSING ")")) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) condition: (parenthesized_expression (true))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement (binary_expression left: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))))) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (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: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (MISSING identifier))))))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression (ERROR) argument: (number_literal)))))))) (MISSING ")")) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (return_statement (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression (ERROR) argument: (number_literal)))))) (MISSING ")"))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression (ERROR) argument: (number_literal)))))) (MISSING ")")))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (return_statement (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) right: (identifier))))) (goto_statement label: (statement_identifier))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (labeled_statement label: (statement_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (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: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (true) right: (pointer_expression argument: (MISSING identifier))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (comma_expression left: (binary_expression left: (assignment_expression left: (identifier) right: (identifier)) (ERROR (identifier)) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (true) (ERROR) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (MISSING identifier))))))) arguments: (argument_list (pointer_expression argument: (identifier)))) arguments: (argument_list (identifier))))) (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: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (false) right: (comma_expression left: (number_literal) right: (binary_expression left: (false) right: (pointer_expression argument: (pointer_expression argument: (MISSING identifier)))))))) arguments: (argument_list (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (identifier))))

Output_reloc<4,false,64,false> *
MASKED(int param_1,int param_2,undefined4 param_3,uint param_4)

{
  int iVar1;
  Output_reloc<4,false,64,false> *pOVar2;
  int *piVar3;
  uint extraout_v1;
  int *piVar4;
  Output_reloc<9,false,64,true> *this;
  undefined4 uVar5;
  uint uVar6;
  int iVar7;
  undefined8 *puVar8;
  uint uVar9;
  Output_reloc<4,false,64,false> *unaff_s1;
  Output_reloc<4,false,64,false> *pOVar10;
  int iVar11;
  Output_reloc<4,false,64,false> *unaff_s2;
  Output_reloc<4,false,64,false> *unaff_s3;
  int iVar12;
  Output_reloc<4,false,64,false> *pOVar13;
  undefined *puVar14;
  code *pcVar15;
  code *pcVar16;
  undefined8 uVar17;
  
  if (*(int *)(param_1 + 0x20) << 2 < 0) {
    unaff_s3 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x1c);
    if (*(int *)(param_1 + 0x20) << 1 < 0) {
      iVar12 = *(int *)(param_1 + 0x10);
      pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x14);
      if (*(int *)(param_1 + 0x18) < 0) {
LAB_001cfdf4:
        (*(code *)(PTR_LAB_004346b8 + 0x2b60))();
      }
      else {
        iVar1 = (uint)(pOVar13 + (int)unaff_s3 < pOVar13) + *(int *)(param_1 + 0x18);
        if ((*(int *)(param_2 + 8) < iVar1) ||
           ((*(int *)(param_2 + 8) == iVar1 &&
            (*(Output_reloc<4,false,64,false> **)(param_2 + 0xc) < pOVar13 + (int)unaff_s3))))
        goto LAB_001cfdf4;
        unaff_s1 = *(Output_reloc<4,false,64,false> **)(param_2 + 0x10);
        unaff_s3 = unaff_s1 + (int)unaff_s3;
        if (*(char *)(param_1 + 0x34) == '\0') {
          unaff_s2 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);
          iVar1 = 0;
          pOVar10 = unaff_s3;
          if (unaff_s2 == *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c)) {
            unaff_s1 = (Output_reloc<4,false,64,false> *)0x0;
          }
          else {
            do {
              gold::Output_reloc<4,false,64,false>::write(unaff_s2,(uchar *)pOVar10);
              unaff_s2 = unaff_s2 + 0x28;
              pOVar10 = pOVar10 + 0x18;
            } while (*(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) != unaff_s2);
            unaff_s1 = pOVar10 + -(int)unaff_s3;
            iVar1 = (int)unaff_s1 >> 0x1f;
          }
          if ((iVar12 == iVar1) && (pOVar13 == unaff_s1)) {
            pOVar13 = *(Output_reloc<4,false,64,false> **)(param_1 + 0x38);
            if (pOVar13 != unaff_s2) {
              *(Output_reloc<4,false,64,false> **)(param_1 + 0x3c) = pOVar13;
            }
            return pOVar13;
          }
        }
      }
      (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0);
    }
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,PTR_s_alize_xindex_004323b4 + 0x7894);
  }
  pOVar10 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + 0x7818);
  pOVar13 = (Output_reloc<4,false,64,false> *)(PTR_s_alize_xindex_004323b4 + -0x4fe0);
  puVar14 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(pOVar13,0xe3);
  uVar9 = *(uint *)(pOVar13 + 0x10);
  if ((0xfffffffa < uVar9 - 1) || (unaff_s1 = pOVar13, -1 < *(int *)(pOVar13 + 0x14) << 0x1e)) {
    pOVar13 = unaff_s1;
    uVar5 = 0x428;
    goto LAB_001cff5c;
  }
  piVar4 = *(int **)pOVar13;
  if (*(code **)(*piVar4 + 0x60) == *(code **)(puVar14 + 0x264120)) {
    if (uVar9 < (uint)(piVar4[0xf] - piVar4[0xe] >> 2)) {
      unaff_s3 = *(Output_reloc<4,false,64,false> **)(piVar4[0xe] + uVar9 * 4);
      goto LAB_001cfed4;
    }
  }
  else {
    unaff_s3 = (Output_reloc<4,false,64,false> *)(**(code **)(*piVar4 + 0x60))(piVar4,uVar9);
LAB_001cfed4:
    uVar5 = 0x42b;
    unaff_s2 = pOVar10;
    if (unaff_s3 == (Output_reloc<4,false,64,false> *)0x0) goto LAB_001cff5c;
    piVar4 = *(int **)pOVar13;
    if (uVar9 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {
      piVar3 = (int *)(piVar4[0x21] + uVar9 * 8);
      iVar12 = *piVar3;
      iVar1 = piVar3[1];
      if ((iVar12 != -1) || (iVar1 != -1)) {
        return pOVar10 + (uint)(param_4 + iVar1 < param_4) + iVar12;
      }
      pcVar15 = *(code **)(*piVar4 + 0xec);
      pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;
      uVar6 = param_4;
      if (pcVar15 != *(code **)(puVar14 + 0x264a34)) goto LAB_001cff74;
      do {
        uVar5 = 0x432;
        unaff_s2 = pOVar10;
LAB_001cff5c:
        iVar12 = *(int *)(puVar14 + 0x262564);
        uVar6 = param_4;
        pOVar10 = unaff_s2;
        while( true ) {
          pcVar15 = *(code **)(puVar14 + 0x262574);
          (*pcVar15)(*(int *)(puVar14 + 0x262564) + 0x59f0,uVar5,iVar12 + 0x69d4);
LAB_001cff74:
          param_4 = uVar6;
          iVar12 = (*pcVar15)();
          if (iVar12 == 0) break;
          uVar17 = (**(code **)(puVar14 + 0x26457c))(unaff_s3,iVar12,uVar9,uVar6,pOVar10,uVar6);
          pOVar2 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);
          if (pOVar2 != pOVar13) {
            return pOVar2;
          }
          uVar5 = 0x434;
          if ((Output_reloc<4,false,64,false> *)uVar17 != pOVar2) {
            return pOVar2;
          }
          iVar12 = *(int *)(puVar14 + 0x262564);
        }
      } while( true );
    }
    (**(code **)(puVar14 + 0x262574))
              (*(int *)(puVar14 + 0x2623bc) + 0x44a8,0x7f7,*(int *)(puVar14 + 0x262564) + 0x69b8);
  }
  pcVar15 = *(code **)(puVar14 + 0x262574);
  iVar12 = *(int *)(puVar14 + 0x2623bc) + 0x44a8;
  (*pcVar15)(iVar12,0x5c8,*(int *)(puVar14 + 0x262564) + 0x6e8c);
  uVar6 = *(uint *)(iVar12 + 0x18);
  uVar9 = *(uint *)(iVar12 + 0xc);
  pOVar13 = *(Output_reloc<4,false,64,false> **)(iVar12 + 8);
  piVar4 = *(int **)(iVar12 + 4);
  if (uVar6 == 0xfffffffc) {
LAB_001d0158:
    if (piVar4 == (int *)0x0) {
      return pOVar13;
    }
    if (piVar4[8] < 0) {
      return pOVar13 + (uint)(uVar9 + piVar4[3] < uVar9) + piVar4[2];
    }
LAB_001d0204:
    (**(code **)(pcVar15 + 0x2623ac))
              (*(int *)(pcVar15 + 0x26239c) + -0x4fe0,0xc5,*(int *)(pcVar15 + 0x26239c) + 0x7850);
  }
  else {
    if (*(code **)(*piVar4 + 0x60) == *(code **)(pcVar15 + 0x263f58)) {
      if ((uint)(piVar4[0xf] - piVar4[0xe] >> 2) <= uVar6) goto LAB_001d023c;
      iVar1 = *(int *)(piVar4[0xe] + uVar6 * 4);
    }
    else {
      iVar1 = (**(code **)(*piVar4 + 0x60))();
    }
    uVar5 = 0x442;
    if (iVar1 == 0) {
LAB_001d0140:
      iVar12 = *(int *)(pcVar15 + 0x26239c);
LAB_001d0144:
      piVar4 = (int *)(*(int *)(pcVar15 + 0x26239c) + 0x59f0);
      (**(code **)(pcVar15 + 0x2623ac))(piVar4,uVar5,iVar12 + 0x6960);
      uVar9 = extraout_v1;
      goto LAB_001d0158;
    }
    piVar4 = *(int **)(iVar12 + 4);
    if (*(uint *)(iVar12 + 0x18) < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {
      piVar3 = (int *)(piVar4[0x21] + *(uint *)(iVar12 + 0x18) * 8);
      iVar7 = *piVar3;
      iVar11 = piVar3[1];
      if ((iVar7 == -1) && (iVar11 == -1)) {
        if ((*(code **)(*piVar4 + 0xec) == *(code **)(pcVar15 + 0x26486c)) ||
           (iVar7 = (**(code **)(*piVar4 + 0xec))(), iVar7 == 0)) {
          uVar5 = 0x44a;
          goto LAB_001d0140;
        }
        uVar17 = (**(code **)(pcVar15 + 0x2643b4))(iVar1,iVar7,*(undefined4 *)(iVar12 + 0x18));
        pOVar13 = (Output_reloc<4,false,64,false> *)((ulonglong)uVar17 >> 0x20);
        if (pOVar13 != (Output_reloc<4,false,64,false> *)0xffffffff) {
          return pOVar13;
        }
        uVar5 = 0x44c;
        if ((int)uVar17 != -1) {
          return (Output_reloc<4,false,64,false> *)0xffffffff;
        }
        iVar12 = *(int *)(pcVar15 + 0x26239c);
        pOVar13 = (Output_reloc<4,false,64,false> *)0xffffffff;
        goto LAB_001d0144;
      }
      if (*(int *)(iVar1 + 0x20) < 0) {
        uVar6 = uVar9 + iVar11;
        return pOVar13 + (uint)(uVar6 + *(int *)(iVar1 + 0xc) < uVar6) +
                         *(int *)(iVar1 + 8) + (uint)(uVar6 < uVar9) + iVar7;
      }
      goto LAB_001d0204;
    }
  }
  (**(code **)(pcVar15 + 0x2623ac))
            (*(int *)(pcVar15 + 0x2621f4) + 0x44a8,0x7f7,*(int *)(pcVar15 + 0x26239c) + 0x69b8);
LAB_001d023c:
  puVar8 = (undefined8 *)&DAT_000005c8;
  pcVar16 = *(code **)(pcVar15 + 0x2623ac);
  this = (Output_reloc<9,false,64,true> *)(*(int *)(pcVar15 + 0x2621f4) + 0x44a8);
  (*pcVar16)(this,0x5c8,*(int *)(pcVar15 + 0x26239c) + 0x6e8c);
  uVar17 = gold::Output_reloc<9,false,64,true>::get_address(this);
  pcVar15 = *(code **)(pcVar16 + 0x26495c);
  *puVar8 = uVar17;
  pOVar13 = (Output_reloc<4,false,64,false> *)(*pcVar15)(this);
  uVar9 = *(uint *)(this + 0x14);
  *(Output_reloc<4,false,64,false> **)(puVar8 + 1) = pOVar13;
  *(uint *)((int)puVar8 + 0xc) = uVar9 >> 4;
  return pOVar13;
}

