
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: uint do_set_local_dynsym_indexes(Sized_relobj_file<64,_true> * this,
   uint index) */

uint __thiscall
gold::Sized_relobj_file<64,_true>::do_set_local_dynsym_indexes
          (Sized_relobj_file<64,_true> *this,uint index)

{
  undefined4 *puVar1;
  undefined4 *puVar2;
  byte *pbVar3;
  int *piVar4;
  size_type sVar5;
  int *piVar6;
  char *format;
  uint *puVar7;
  uint *puVar8;
  _Rb_tree_color _Var9;
  uint uVar10;
  uint uVar11;
  undefined *puVar12;
  int iVar13;
  Compressed_section_map *pCVar14;
  Compressed_section_map *pCVar15;
  Object *pOVar16;
  undefined4 *puVar17;
  Object *this_00;
  int iVar18;
  uint uVar19;
  uint uVar20;
  _Rb_tree_color _Var21;
  undefined4 uVar22;
  uint uVar23;
  Compressed_section_map *pCVar24;
  int iVar25;
  Compressed_section_map *pCVar26;
  _func_int_varargs *p_Var27;
  uint uVar28;
  undefined *puVar29;
  code *pcVar30;
  code *pcVar31;
  ulonglong uVar32;
  undefined8 uVar33;
  longlong lVar34;
  int *piStack_140;
  uint uStack_13c;
  uint uStack_138;
  uint uStack_134;
  int iStack_130;
  uint uStack_12c;
  int iStack_128;
  uint uStack_124;
  int *piStack_120;
  uint uStack_11c;
  Object *pOStack_118;
  undefined4 *puStack_114;
  int iStack_110;
  
  uVar23 = this->local_symbol_count_;
  if (uVar23 < 2) {
    return index;
  }
  uVar11 = 1;
  puVar8 = &(this->local_values_).
            super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.
            _M_impl._M_start[1].output_dynsym_index_;
  while (uVar19 = *puVar8, uVar19 == 0xffffffff) {
    uVar11 = uVar11 + 1;
    puVar8 = puVar8 + 6;
    if (uVar23 == uVar11) {
      return index;
    }
  }
  while (uVar19 == 0) {
    uVar19 = 0x741;
    if (0xfffffffd < index - 1) goto LAB_001d1d30;
    *puVar8 = index;
    index = index + 1;
    do {
      uVar11 = uVar11 + 1;
      if (uVar23 == uVar11) {
        return index;
      }
      puVar8 = puVar8 + 6;
      uVar19 = *puVar8;
    } while (uVar19 == 0xffffffff);
  }
  uVar19 = 0x740;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);
LAB_001d1d30:
  puVar12 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;
  puVar29 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)();
  uVar23 = *(uint *)(puVar12 + 0xb8);
  pCVar26 = (Compressed_section_map *)0xffffffff;
  if (uVar23 < 2) {
    return uVar19;
  }
  uVar11 = 1;
  puVar8 = (uint *)(*(int *)(puVar12 + 0xe8) + 0x14);
  while (uVar20 = *puVar8, uVar20 == 0xffffffff) {
    uVar11 = uVar11 + 1;
    puVar8 = puVar8 + 4;
    if (uVar23 == uVar11) {
      return uVar19;
    }
  }
  while (uVar20 == 0) {
    _Var21 = 0x741;
    if (0xfffffffd < uVar19 - 1) goto LAB_001d1e10;
    *puVar8 = uVar19;
    uVar19 = uVar19 + 1;
    do {
      uVar11 = uVar11 + 1;
      if (uVar23 == uVar11) {
        return uVar19;
      }
      puVar8 = puVar8 + 4;
      uVar20 = *puVar8;
    } while (uVar20 == 0xffffffff);
  }
  _Var21 = 0x740;
  (**(code **)(puVar29 + 0x2efce8))
            (*(int *)(puVar29 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar29 + 0x2efd08) + 0x5d90);
LAB_001d1e10:
  pcVar30 = *(code **)(puVar29 + 0x2efce8);
  iVar13 = *(int *)(puVar29 + 0x2ef534) + 0x4570;
  (*pcVar30)();
  uVar23 = *(uint *)(iVar13 + 0xf8);
  if (uVar23 == 0) {
    trap(7);
  }
  pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);
  if (pCVar24 != (Compressed_section_map *)0x0) {
    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;
    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;
    do {
      pCVar15 = pCVar14;
      if (_Var9 == _Var21) {
        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;
        iVar25 = *(int *)(pcVar30 + 0x2efc28);
        if (iVar13 != 0) {
          return *(uint *)(iVar13 + 8);
        }
        goto LAB_001d1eb0;
      }
      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;
      pCVar26 = pCVar14;
      if (pCVar14 == (Compressed_section_map *)0x0) break;
      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;
      if (uVar23 == 0) {
        trap(7);
      }
      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);
      pCVar24 = pCVar15;
    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);
  }
  iVar25 = *(int *)(pcVar30 + 0x2efc28);
LAB_001d1eb0:
  _Var21 = 0x8a7;
  pcVar31 = *(code **)(pcVar30 + 0x2efc08);
  iVar13 = *(int *)(pcVar30 + 0x2efc28) + 0x4d70;
  (*pcVar31)(iVar13,0x8a7,iVar25 + 0x57f0);
  uVar23 = *(uint *)(iVar13 + 0xf8);
  if (uVar23 == 0) {
    trap(7);
  }
  pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);
  if (pCVar24 != (Compressed_section_map *)0x0) {
    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;
    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;
    do {
      pCVar15 = pCVar14;
      if (_Var9 == _Var21) {
        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;
        iVar25 = *(int *)(pcVar31 + 0x2efb7c);
        if (iVar13 != 0) {
          return *(uint *)(iVar13 + 8);
        }
        goto LAB_001d1f5c;
      }
      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;
      pCVar26 = pCVar14;
      if (pCVar14 == (Compressed_section_map *)0x0) break;
      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;
      if (uVar23 == 0) {
        trap(7);
      }
      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);
      pCVar24 = pCVar15;
    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);
  }
  iVar25 = *(int *)(pcVar31 + 0x2efb7c);
LAB_001d1f5c:
  _Var21 = 0x8a7;
  pcVar30 = *(code **)(pcVar31 + 0x2efb5c);
  iVar13 = *(int *)(pcVar31 + 0x2efb7c) + 0x4d70;
  (*pcVar30)(iVar13,0x8a7,iVar25 + 0x5ac4);
  uVar23 = *(uint *)(iVar13 + 0xf8);
  if (uVar23 == 0) {
    trap(7);
  }
  pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);
  if (pCVar24 != (Compressed_section_map *)0x0) {
    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;
    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;
    do {
      pCVar15 = pCVar14;
      if (_Var9 == _Var21) {
        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;
        iVar25 = *(int *)(pcVar30 + 0x2efad0);
        if (iVar13 != 0) {
          return *(uint *)(iVar13 + 8);
        }
        goto LAB_001d2008;
      }
      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;
      pCVar26 = pCVar14;
      if (pCVar14 == (Compressed_section_map *)0x0) break;
      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;
      if (uVar23 == 0) {
        trap(7);
      }
      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);
      pCVar24 = pCVar15;
    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);
  }
  iVar25 = *(int *)(pcVar30 + 0x2efad0);
LAB_001d2008:
  _Var21 = 0x8a7;
  pcVar31 = *(code **)(pcVar30 + 0x2efab0);
  iVar13 = *(int *)(pcVar30 + 0x2efad0) + 0x4d70;
  (*pcVar31)(iVar13,0x8a7,iVar25 + 0x54a8);
  uVar23 = *(uint *)(iVar13 + 0xf8);
  if (uVar23 == 0) {
    trap(7);
  }
  pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);
  if (pCVar24 != (Compressed_section_map *)0x0) {
    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;
    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;
    do {
      pCVar15 = pCVar14;
      if (_Var9 == _Var21) {
        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;
        iVar25 = *(int *)(pcVar31 + 0x2efa24);
        if (iVar13 != 0) {
          return *(uint *)(iVar13 + 8);
        }
        goto LAB_001d20b4;
      }
      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;
      pCVar26 = pCVar14;
      if (pCVar14 == (Compressed_section_map *)0x0) break;
      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;
      if (uVar23 == 0) {
        trap(7);
      }
      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);
      pCVar24 = pCVar15;
    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);
  }
  iVar25 = *(int *)(pcVar31 + 0x2efa24);
LAB_001d20b4:
  pcVar30 = *(code **)(pcVar31 + 0x2efa04);
  iVar25 = iVar25 + 0x5ea4;
  iVar13 = *(int *)(pcVar31 + 0x2efa24) + 0x4d70;
  (*pcVar30)(iVar13,0x8a7);
  pOVar16 = (Object *)&SUB_0000000c;
  uVar23 = *(uint *)(iVar13 + 0x28);
  puVar1 = (undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))();
  *puVar1 = 0;
  puVar1[1] = 0;
  puVar1[2] = 0;
  if (uVar23 == 0) {
    *(undefined4 **)(iVar13 + 0x44) = puVar1;
    puVar1[1] = 0;
    return (uint)puVar1;
  }
  if (uVar23 < 0x40000000) {
    puVar2 = (undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))(uVar23 * 4);
    puVar17 = puVar2 + uVar23;
    *puVar1 = puVar2;
    puVar1[2] = puVar17;
    do {
      *puVar2 = 0;
      puVar2 = puVar2 + 1;
    } while (puVar17 != puVar2);
    *(undefined4 **)(iVar13 + 0x44) = puVar1;
    puVar1[1] = puVar17;
    return (uint)puVar2;
  }
  (**(code **)(pcVar30 + 0x2ef9e8))();
  uVar11 = 0xc;
  (**(code **)(pcVar30 + 0x2ef34c))(puVar1);
  pcVar31 = *(code **)(pcVar30 + 0x2ef1f0);
  this_00 = pOVar16;
  (*pcVar31)();
  pbVar3 = (byte *)((int)&(pCVar26->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color + 3);
  uVar23 = (uint)(pbVar3 < pCVar26);
  pCVar24 = (Compressed_section_map *)((uint)pbVar3 & 0xfffffff8);
  pOStack_118 = pOVar16;
  puStack_114 = puVar1;
  iStack_110 = iVar13;
  if ((uVar23 == 0) && (pCVar24 == pCVar26)) {
    this_00[3].compressed_sections_ = pCVar24;
    piVar4 = *(int **)(pcVar31 + 0x2ef7e0);
    uVar19 = *(uint *)((int)&this_00[3].name_.field_2 + 4);
    this_00[3].xindex_ = (Xindex *)(uVar23 + iVar25);
    if (*(int *)(*piVar4 + 8) != 0) {
      uStack_12c = (uint)*(byte *)(*(int *)(*piVar4 + 8) + 0x3195);
      if (uVar19 < 2) {
        return uVar11;
      }
      sVar5 = this_00[4].name_._M_string_length;
      puVar8 = (uint *)(sVar5 + 0x18);
      uVar23 = 1;
      if ((*(uint *)(sVar5 + 0x20) & 1) == 0) {
        uVar22 = 0x96c;
      }
      else {
        iStack_128 = *(int *)(pcVar31 + 0x2ef87c);
        uVar32 = (ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c);
        iStack_130 = *(int *)(pcVar31 + 0x2ef87c) + 0x4f3c;
        do {
          uVar20 = puVar8[2] >> 5;
          if (-1 < (int)(puVar8[2] << 0x1b)) {
            if ((uVar20 != 0xfff1) &&
               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {
              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);
              uVar28 = uVar20;
              uVar20 = uVar23;
              goto LAB_001d24f0;
            }
            goto LAB_001d22bc;
          }
          if (uVar20 < this_00->shnum_) {
            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);
            p_Var27 = this_00[1]._vptr_Object[uVar20];
            iVar25 = *piVar4;
            uVar28 = piVar4[1];
            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);
            if (iVar13 != 0) {
              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;
              uVar22 = 0x98d;
              if (iVar25 != -1) break;
              if (uVar28 != 0xffffffff) goto LAB_001d28f0;
              (**(code **)(pcVar31 + 0x2f1acc))
                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);
              if (piStack_140 != (int *)0x0) {
                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {
                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {
                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);
                    piVar4 = piStack_140;
                    uVar28 = uStack_13c;
                    goto LAB_001d23e4;
                  }
                  (**(code **)(pcVar31 + 0x2ef85c))
                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,
                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);
LAB_001d2894:
                  uVar22 = 0x99d;
                  break;
                }
                uStack_124 = uStack_13c;
                piStack_120 = piStack_140;
                p_Var27 = (_func_int_varargs *)
                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);
                piVar4 = piStack_120;
                uVar28 = uStack_124;
LAB_001d23e4:
                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;
                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {
                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);
                  iVar25 = *piVar6;
                  uVar28 = piVar6[1];
                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;
                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);
                  if (iVar13 != 0) {
                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);
                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;
                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;
                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);
                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -
                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);
                    goto LAB_001d2520;
                  }
                  goto LAB_001d2894;
                }
LAB_001d2910:
                (**(code **)(pcVar31 + 0x2ef85c))
                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,
                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);
              }
              uVar22 = 0x991;
              break;
            }
            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;
LAB_001d2520:
            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {
LAB_001d241c:
              if (((int)(puVar8[2] << 0x1d) < 0) ||
                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {
                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {
                  lVar34 = *(longlong *)(p_Var27 + 0xa0);
                }
                else {
                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);
                }
                *(longlong *)(puVar8 + 4) =
                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],
                                       uVar28 + puVar8[5]);
                goto LAB_001d22bc;
              }
              iVar13 = 0;
              if (uStack_12c == 0) {
                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;
                iVar13 = *(int *)(p_Var27 + 8);
                iVar18 = *(int *)(p_Var27 + 0xc);
              }
              else {
                iVar18 = 0;
              }
              uVar20 = uVar28 + puVar8[5];
              puVar8[5] = uVar20 + iVar18;
              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +
                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;
              uVar20 = *puVar8;
              if (uVar20 != 0) goto LAB_001d248c;
LAB_001d22cc:
              if (0xfffffffc < uVar11 - 1) {
                (**(code **)(pcVar31 + 0x2ef85c))
                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,
                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);
                goto LAB_001d2910;
              }
              *puVar8 = uVar11;
              uVar11 = uVar11 + 1;
              goto LAB_001d22e4;
            }
            if (*(int *)(p_Var27 + 0x60) == 0xf) {
              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;
              uVar22 = 0x9b5;
              break;
            }
            if ((int)(puVar8[2] << 0x1c) < 0) {
              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);
              if (iVar13 == 0) {
                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);
                if (iVar13 == 0) {
                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);
                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;
                  uVar20 = *(uint *)(p_Var27 + 8);
                  puVar8[5] = *(uint *)(p_Var27 + 0xc);
                  puVar8[4] = uVar20;
                }
                else {
                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);
                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;
                  uVar10 = *(uint *)(iVar13 + 8);
                  uVar28 = *(uint *)(iVar13 + 0xc);
                  uVar20 = uVar28;
                  if (uStack_12c != 0) {
                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;
                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);
                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);
                  }
                  puVar8[4] = uVar10;
                  puVar8[5] = uVar20;
                }
              }
              else {
                uVar20 = uStack_134;
                uVar28 = uStack_138;
                if (uStack_12c != 0) {
                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);
                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;
                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);
                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);
                }
                uStack_11c = puVar8[5];
                piStack_120 = (int *)puVar8[4];
                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);
                uVar10 = puVar8[2];
                puVar7[8] = (uint)uVar32;
                puVar7[1] = uStack_11c;
                *puVar7 = (uint)piStack_120;
                puVar7[2] = uVar28;
                puVar7[3] = uVar20;
                puVar7[7] = 0;
                puVar7[10] = 0;
                puVar7[4] = (uint)(puVar7 + 10);
                puVar7[5] = 1;
                puVar7[6] = 0;
                puVar7[9] = 0;
                if (-1 < (int)(uVar10 << 0x1c)) {
                  (**(code **)(pcVar31 + 0x2ef85c))
                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,
                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);
                  goto LAB_001d28b8;
                }
                puVar8[4] = (uint)puVar7;
                puVar8[2] = uVar10 & 0xfffffffe;
              }
            }
            else {
              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);
              if (uStack_12c != 0) {
                iVar25 = *(int *)(pcVar31 + 0x2ef87c);
                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;
                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);
                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -
                                  (uint)((uint)uVar33 < uVar20),uVar20);
              }
              *(undefined8 *)(puVar8 + 4) = uVar33;
            }
LAB_001d22bc:
            uVar20 = *puVar8;
            if (uVar20 == 0) goto LAB_001d22cc;
LAB_001d248c:
            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;
            if (uVar19 == uVar23 + 1) {
              return uVar11;
            }
          }
          else {
            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);
            uVar28 = uVar23;
LAB_001d24f0:
            Object::error(this_00,format,uVar28,uVar20);
            puVar8[5] = 0;
            puVar8[4] = 0;
LAB_001d22e4:
            if (uVar19 == uVar23 + 1) {
              return uVar11;
            }
          }
          uVar23 = uVar23 + 1;
          puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);
          uVar22 = 0x96c;
        } while ((puVar8[2] & 1) != 0);
      }
      goto LAB_001d283c;
    }
  }
  else {
LAB_001d28b8:
    (**(code **)(pcVar31 + 0x2ef85c))
              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,0xa1a,*(int *)(pcVar31 + 0x2ef87c) + 0x5738);
  }
  (**(code **)(pcVar31 + 0x2ef85c))
            (*(int *)(pcVar31 + 0x2ef0a8) + -0x9b8,0x5c,*(int *)(pcVar31 + 0x2ef87c) + 0x61ac);
LAB_001d28f0:
  uVar22 = 0x98d;
LAB_001d283c:
  do {
    (**(code **)(pcVar31 + 0x2ef85c))
              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,uVar22,*(int *)(pcVar31 + 0x2ef87c) + 0x5640);
LAB_001d2854:
    iVar25 = *(int *)(pcVar31 + 0x2ef87c);
LAB_001d285c:
    (**(code **)(pcVar31 + 0x2ef85c))(*(int *)(pcVar31 + 0x2ef0a8) + 0x3574,0xc5,iVar25 + 0x6058);
LAB_001d2870:
    uVar22 = 0x995;
  } while( true );
}



int FUN_001d1c68(int param_1,int param_2)

{
  int *piVar1;
  uint uVar2;
  undefined *puVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  int *piVar9;
  undefined *puVar10;
  code *pcVar11;
  code *pcVar12;
  
  uVar8 = *(uint *)(param_1 + 0xb8);
  if (uVar8 < 2) {
    return param_2;
  }
  uVar2 = 1;
  piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);
  while (iVar5 = *piVar1, iVar5 == -1) {
    uVar2 = uVar2 + 1;
    piVar1 = piVar1 + 6;
    if (uVar8 == uVar2) {
      return param_2;
    }
  }
  while (iVar5 == 0) {
    iVar5 = 0x741;
    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;
    *piVar1 = param_2;
    param_2 = param_2 + 1;
    do {
      uVar2 = uVar2 + 1;
      if (uVar8 == uVar2) {
        return param_2;
      }
      piVar1 = piVar1 + 6;
      iVar5 = *piVar1;
    } while (iVar5 == -1);
  }
  iVar5 = 0x740;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);
LAB_001d1d30:
  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;
  puVar10 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)();
  uVar8 = *(uint *)(puVar3 + 0xb8);
  if (uVar8 < 2) {
    return iVar5;
  }
  uVar2 = 1;
  piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);
  while (iVar6 = *piVar1, iVar6 == -1) {
    uVar2 = uVar2 + 1;
    piVar1 = piVar1 + 4;
    if (uVar8 == uVar2) {
      return iVar5;
    }
  }
  while (iVar6 == 0) {
    uVar7 = 0x741;
    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;
    *piVar1 = iVar5;
    iVar5 = iVar5 + 1;
    do {
      uVar2 = uVar2 + 1;
      if (uVar8 == uVar2) {
        return iVar5;
      }
      piVar1 = piVar1 + 4;
      iVar6 = *piVar1;
    } while (iVar6 == -1);
  }
  uVar7 = 0x740;
  (**(code **)(puVar10 + 0x2efce8))
            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,
             0xffffffff,puVar10 + 0x2f74f8);
LAB_001d1e10:
  pcVar11 = *(code **)(puVar10 + 0x2efce8);
  iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;
  (*pcVar11)();
  uVar8 = *(uint *)(iVar5 + 0xf8);
  if (uVar8 == 0) {
    trap(7);
  }
  piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);
  if (piVar1 != (int *)0x0) {
    uVar2 = ((int *)*piVar1)[1];
    piVar9 = (int *)*piVar1;
    do {
      piVar4 = piVar9;
      if (uVar2 == uVar7) {
        iVar5 = *(int *)(pcVar11 + 0x2efc28);
        if (*piVar1 != 0) {
          return *(int *)(*piVar1 + 8);
        }
        goto LAB_001d1eb0;
      }
      piVar9 = (int *)*piVar4;
      if (piVar9 == (int *)0x0) break;
      uVar2 = piVar9[1];
      if (uVar8 == 0) {
        trap(7);
      }
      piVar1 = piVar4;
    } while (uVar7 % uVar8 == uVar2 % uVar8);
  }
  iVar5 = *(int *)(pcVar11 + 0x2efc28);
LAB_001d1eb0:
  uVar2 = 0x8a7;
  pcVar12 = *(code **)(pcVar11 + 0x2efc08);
  iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;
  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);
  uVar8 = *(uint *)(iVar6 + 0xf8);
  if (uVar8 == 0) {
    trap(7);
  }
  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);
  if (piVar1 != (int *)0x0) {
    uVar7 = ((int *)*piVar1)[1];
    piVar9 = (int *)*piVar1;
    do {
      piVar4 = piVar9;
      if (uVar7 == uVar2) {
        iVar5 = *(int *)(pcVar12 + 0x2efb7c);
        if (*piVar1 != 0) {
          return *(int *)(*piVar1 + 8);
        }
        goto LAB_001d1f5c;
      }
      piVar9 = (int *)*piVar4;
      if (piVar9 == (int *)0x0) break;
      uVar7 = piVar9[1];
      if (uVar8 == 0) {
        trap(7);
      }
      piVar1 = piVar4;
    } while (uVar2 % uVar8 == uVar7 % uVar8);
  }
  iVar5 = *(int *)(pcVar12 + 0x2efb7c);
LAB_001d1f5c:
  uVar2 = 0x8a7;
  pcVar11 = *(code **)(pcVar12 + 0x2efb5c);
  iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;
  (*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);
  uVar8 = *(uint *)(iVar6 + 0xf8);
  if (uVar8 == 0) {
    trap(7);
  }
  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);
  if (piVar1 != (int *)0x0) {
    uVar7 = ((int *)*piVar1)[1];
    piVar9 = (int *)*piVar1;
    do {
      piVar4 = piVar9;
      if (uVar7 == uVar2) {
        iVar5 = *(int *)(pcVar11 + 0x2efad0);
        if (*piVar1 != 0) {
          return *(int *)(*piVar1 + 8);
        }
        goto LAB_001d2008;
      }
      piVar9 = (int *)*piVar4;
      if (piVar9 == (int *)0x0) break;
      uVar7 = piVar9[1];
      if (uVar8 == 0) {
        trap(7);
      }
      piVar1 = piVar4;
    } while (uVar2 % uVar8 == uVar7 % uVar8);
  }
  iVar5 = *(int *)(pcVar11 + 0x2efad0);
LAB_001d2008:
  uVar2 = 0x8a7;
  pcVar12 = *(code **)(pcVar11 + 0x2efab0);
  iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;
  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);
  uVar8 = *(uint *)(iVar6 + 0xf8);
  if (uVar8 == 0) {
    trap(7);
  }
  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);
  if (piVar1 != (int *)0x0) {
    uVar7 = ((int *)*piVar1)[1];
    piVar9 = (int *)*piVar1;
    do {
      piVar4 = piVar9;
      if (uVar7 == uVar2) {
        iVar5 = *(int *)(pcVar12 + 0x2efa24);
        if (*piVar1 != 0) {
          return *(int *)(*piVar1 + 8);
        }
        goto LAB_001d20b4;
      }
      piVar9 = (int *)*piVar4;
      if (piVar9 == (int *)0x0) break;
      uVar7 = piVar9[1];
      if (uVar8 == 0) {
        trap(7);
      }
      piVar1 = piVar4;
    } while (uVar2 % uVar8 == uVar7 % uVar8);
  }
  iVar5 = *(int *)(pcVar12 + 0x2efa24);
LAB_001d20b4:
  iVar5 = (**(code **)(pcVar12 + 0x2efa04))
                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);
  return iVar5;
}


lui gp,0x2f
addiu gp,gp,0x75d8
addu gp,gp,t9
lw a2,0xb8(a0)
sltiu v0,a2,0x2
bne v0,zero,0x001d1d0c
_li a3,-0x1
lw v1,0xe8(a0)
li a0,0x1
or v0,a1,zero
addiu v1,v1,0x1c
lw a1,0x0(v1)
beq a1,a3,0x001d1cf8
_nop
addiu sp,sp,-0x20
sw gp,0x10(sp)
sw ra,0x1c(sp)
bne a1,zero,0x001d1d14
_addiu a1,v0,-0x1
sltiu a1,a1,-0x2
beq a1,zero,0x001d1d30
_li a1,0x741
addiu a0,a0,0x1
sw v0,0x0(v1)
addiu v0,v0,0x1
beq a2,a0,0x001d1cec
_addiu v1,v1,0x18
lw a1,0x0(v1)
bne a1,a3,0x001d1cac
_nop
addiu a0,a0,0x1
bne a2,a0,0x001d1cd4
_addiu v1,v1,0x18
lw ra,0x1c(sp)
jr ra
_addiu sp,sp,0x20
addiu a0,a0,0x1
bne a2,a0,0x001d1c94
_addiu v1,v1,0x18
jr ra
_nop
jr ra
_or v0,a1,zero
lw a2,-0x77f0(gp)
li a1,0x740
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x5708
jalr t9
_addiu a0,a0,0x4570
lw a2,-0x77f0(gp)
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x5708
jalr t9
_addiu a0,a0,0x4570
(translation_unit "int FUN_001d1c68(int param_1,int param_2)\n\n{\n  int *piVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  \n  uVar8 = *(uint *)(param_1 + 0xb8);\n  if (uVar8 < 2) {\n    return param_2;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);\n  while (iVar5 = *piVar1, iVar5 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }\n  while (iVar5 == 0) {\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }\n  iVar5 = 0x740;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);\nLAB_001d1d30:\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;\n  puVar10 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  uVar8 = *(uint *)(puVar3 + 0xb8);\n  if (uVar8 < 2) {\n    return iVar5;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);\n  while (iVar6 = *piVar1, iVar6 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }\n  while (iVar6 == 0) {\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }\n  uVar7 = 0x740;\n  (**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8);\nLAB_001d1e10:\n  pcVar11 = *(code **)(puVar10 + 0x2efce8);\n  iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;\n  (*pcVar11)();\n  uVar8 = *(uint *)(iVar5 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efc28);\nLAB_001d1eb0:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efc08);\n  iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efb7c);\nLAB_001d1f5c:\n  uVar2 = 0x8a7;\n  pcVar11 = *(code **)(pcVar12 + 0x2efb5c);\n  iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;\n  (*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efad0);\nLAB_001d2008:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efab0);\n  iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efa24);\nLAB_001d20b4:\n  iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);\n  return iVar5;\n}\n\n" (function_definition "int FUN_001d1c68(int param_1,int param_2)\n\n{\n  int *piVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  \n  uVar8 = *(uint *)(param_1 + 0xb8);\n  if (uVar8 < 2) {\n    return param_2;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);\n  while (iVar5 = *piVar1, iVar5 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }\n  while (iVar5 == 0) {\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }\n  iVar5 = 0x740;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);\nLAB_001d1d30:\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;\n  puVar10 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  uVar8 = *(uint *)(puVar3 + 0xb8);\n  if (uVar8 < 2) {\n    return iVar5;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);\n  while (iVar6 = *piVar1, iVar6 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }\n  while (iVar6 == 0) {\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }\n  uVar7 = 0x740;\n  (**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8);\nLAB_001d1e10:\n  pcVar11 = *(code **)(puVar10 + 0x2efce8);\n  iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;\n  (*pcVar11)();\n  uVar8 = *(uint *)(iVar5 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efc28);\nLAB_001d1eb0:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efc08);\n  iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efb7c);\nLAB_001d1f5c:\n  uVar2 = 0x8a7;\n  pcVar11 = *(code **)(pcVar12 + 0x2efb5c);\n  iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;\n  (*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efad0);\nLAB_001d2008:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efab0);\n  iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efa24);\nLAB_001d20b4:\n  iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);\n  return iVar5;\n}" primitive_type (function_declarator "FUN_001d1c68(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  \n  uVar8 = *(uint *)(param_1 + 0xb8);\n  if (uVar8 < 2) {\n    return param_2;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);\n  while (iVar5 = *piVar1, iVar5 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }\n  while (iVar5 == 0) {\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }\n  iVar5 = 0x740;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);\nLAB_001d1d30:\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;\n  puVar10 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  uVar8 = *(uint *)(puVar3 + 0xb8);\n  if (uVar8 < 2) {\n    return iVar5;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);\n  while (iVar6 = *piVar1, iVar6 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }\n  while (iVar6 == 0) {\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }\n  uVar7 = 0x740;\n  (**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8);\nLAB_001d1e10:\n  pcVar11 = *(code **)(puVar10 + 0x2efce8);\n  iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;\n  (*pcVar11)();\n  uVar8 = *(uint *)(iVar5 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efc28);\nLAB_001d1eb0:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efc08);\n  iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efb7c);\nLAB_001d1f5c:\n  uVar2 = 0x8a7;\n  pcVar11 = *(code **)(pcVar12 + 0x2efb5c);\n  iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;\n  (*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efad0);\nLAB_001d2008:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efab0);\n  iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efa24);\nLAB_001d20b4:\n  iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);\n  return iVar5;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (expression_statement "uVar8 = *(uint *)(param_1 + 0xb8);" (assignment_expression "uVar8 = *(uint *)(param_1 + 0xb8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xb8)" * (cast_expression "(uint *)(param_1 + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 < 2) {\n    return param_2;\n  }" if (parenthesized_expression "(uVar8 < 2)" ( (binary_expression "uVar8 < 2" identifier < number_literal) )) (compound_statement "{\n    return param_2;\n  }" { (return_statement "return param_2;" return identifier ;) })) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (expression_statement "piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);" (assignment_expression "piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0xe8) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xe8) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0xe8) + 0x1c" (pointer_expression "*(int *)(param_1 + 0xe8)" * (cast_expression "(int *)(param_1 + 0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) + number_literal) )))) ;) (while_statement "while (iVar5 = *piVar1, iVar5 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }" while (parenthesized_expression "(iVar5 = *piVar1, iVar5 == -1)" ( (comma_expression "iVar5 = *piVar1, iVar5 == -1" (assignment_expression "iVar5 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) , (binary_expression "iVar5 == -1" identifier == number_literal)) )) (compound_statement "{\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }" { (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = piVar1 + 6;" (assignment_expression "piVar1 = piVar1 + 6" identifier = (binary_expression "piVar1 + 6" identifier + number_literal)) ;) (if_statement "if (uVar8 == uVar2) {\n      return param_2;\n    }" if (parenthesized_expression "(uVar8 == uVar2)" ( (binary_expression "uVar8 == uVar2" identifier == identifier) )) (compound_statement "{\n      return param_2;\n    }" { (return_statement "return param_2;" return identifier ;) })) })) (while_statement "while (iVar5 == 0) {\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }" while (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }" { (expression_statement "iVar5 = 0x741;" (assignment_expression "iVar5 = 0x741" identifier = number_literal) ;) (if_statement "if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;" if (parenthesized_expression "(0xfffffffd < param_2 - 1U)" ( (binary_expression "0xfffffffd < param_2 - 1U" number_literal < (binary_expression "param_2 - 1U" identifier - number_literal)) )) (goto_statement "goto LAB_001d1d30;" goto statement_identifier ;)) (expression_statement "*piVar1 = param_2;" (assignment_expression "*piVar1 = param_2" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (do_statement "do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);" do (compound_statement "{\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    }" { (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar8 == uVar2) {\n        return param_2;\n      }" if (parenthesized_expression "(uVar8 == uVar2)" ( (binary_expression "uVar8 == uVar2" identifier == identifier) )) (compound_statement "{\n        return param_2;\n      }" { (return_statement "return param_2;" return identifier ;) })) (expression_statement "piVar1 = piVar1 + 6;" (assignment_expression "piVar1 = piVar1 + 6" identifier = (binary_expression "piVar1 + 6" identifier + number_literal)) ;) (expression_statement "iVar5 = *piVar1;" (assignment_expression "iVar5 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) }) while (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) ;) })) (expression_statement "iVar5 = 0x740;" (assignment_expression "iVar5 = 0x740" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) , number_literal , (binary_expression "PTR_s__s_004c1a50 + 0x5708" identifier + number_literal) ))) ;) (labeled_statement "LAB_001d1d30:\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;" statement_identifier : (expression_statement "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;" (assignment_expression "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal)) ;)) (expression_statement "puVar10 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar10 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar8 = *(uint *)(puVar3 + 0xb8);" (assignment_expression "uVar8 = *(uint *)(puVar3 + 0xb8)" identifier = (pointer_expression "*(uint *)(puVar3 + 0xb8)" * (cast_expression "(uint *)(puVar3 + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xb8)" ( (binary_expression "puVar3 + 0xb8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 < 2) {\n    return iVar5;\n  }" if (parenthesized_expression "(uVar8 < 2)" ( (binary_expression "uVar8 < 2" identifier < number_literal) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (expression_statement "piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);" (assignment_expression "piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14)" identifier = (cast_expression "(int *)(*(int *)(puVar3 + 0xe8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0xe8) + 0x14)" ( (binary_expression "*(int *)(puVar3 + 0xe8) + 0x14" (pointer_expression "*(int *)(puVar3 + 0xe8)" * (cast_expression "(int *)(puVar3 + 0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xe8)" ( (binary_expression "puVar3 + 0xe8" identifier + number_literal) )))) + number_literal) )))) ;) (while_statement "while (iVar6 = *piVar1, iVar6 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }" while (parenthesized_expression "(iVar6 = *piVar1, iVar6 == -1)" ( (comma_expression "iVar6 = *piVar1, iVar6 == -1" (assignment_expression "iVar6 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) , (binary_expression "iVar6 == -1" identifier == number_literal)) )) (compound_statement "{\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }" { (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = piVar1 + 4;" (assignment_expression "piVar1 = piVar1 + 4" identifier = (binary_expression "piVar1 + 4" identifier + number_literal)) ;) (if_statement "if (uVar8 == uVar2) {\n      return iVar5;\n    }" if (parenthesized_expression "(uVar8 == uVar2)" ( (binary_expression "uVar8 == uVar2" identifier == identifier) )) (compound_statement "{\n      return iVar5;\n    }" { (return_statement "return iVar5;" return identifier ;) })) })) (while_statement "while (iVar6 == 0) {\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }" while (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }" { (expression_statement "uVar7 = 0x741;" (assignment_expression "uVar7 = 0x741" identifier = number_literal) ;) (if_statement "if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;" if (parenthesized_expression "(0xfffffffd < iVar5 - 1U)" ( (binary_expression "0xfffffffd < iVar5 - 1U" number_literal < (binary_expression "iVar5 - 1U" identifier - number_literal)) )) (goto_statement "goto LAB_001d1e10;" goto statement_identifier ;)) (expression_statement "*piVar1 = iVar5;" (assignment_expression "*piVar1 = iVar5" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (do_statement "do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);" do (compound_statement "{\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    }" { (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar8 == uVar2) {\n        return iVar5;\n      }" if (parenthesized_expression "(uVar8 == uVar2)" ( (binary_expression "uVar8 == uVar2" identifier == identifier) )) (compound_statement "{\n        return iVar5;\n      }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "piVar1 = piVar1 + 4;" (assignment_expression "piVar1 = piVar1 + 4" identifier = (binary_expression "piVar1 + 4" identifier + number_literal)) ;) (expression_statement "iVar6 = *piVar1;" (assignment_expression "iVar6 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) }) while (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) ;) })) (expression_statement "uVar7 = 0x740;" (assignment_expression "uVar7 = 0x740" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8);" (call_expression "(**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8)" (parenthesized_expression "(**(code **)(puVar10 + 0x2efce8))" ( (pointer_expression "**(code **)(puVar10 + 0x2efce8)" * (pointer_expression "*(code **)(puVar10 + 0x2efce8)" * (cast_expression "(code **)(puVar10 + 0x2efce8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x2efce8)" ( (binary_expression "puVar10 + 0x2efce8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8)" ( (binary_expression "*(int *)(puVar10 + 0x2ef534) + 0x4570" (pointer_expression "*(int *)(puVar10 + 0x2ef534)" * (cast_expression "(int *)(puVar10 + 0x2ef534)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2ef534)" ( (binary_expression "puVar10 + 0x2ef534" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar10 + 0x2efd08) + 0x5d90" (pointer_expression "*(int *)(puVar10 + 0x2efd08)" * (cast_expression "(int *)(puVar10 + 0x2efd08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2efd08)" ( (binary_expression "puVar10 + 0x2efd08" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "puVar10 + 0x2f74f8" identifier + number_literal) ))) ;) (labeled_statement "LAB_001d1e10:\n  pcVar11 = *(code **)(puVar10 + 0x2efce8);" statement_identifier : (expression_statement "pcVar11 = *(code **)(puVar10 + 0x2efce8);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x2efce8)" identifier = (pointer_expression "*(code **)(puVar10 + 0x2efce8)" * (cast_expression "(code **)(puVar10 + 0x2efce8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x2efce8)" ( (binary_expression "puVar10 + 0x2efce8" identifier + number_literal) ))))) ;)) (expression_statement "iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;" (assignment_expression "iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570" identifier = (binary_expression "*(int *)(puVar10 + 0x2ef534) + 0x4570" (pointer_expression "*(int *)(puVar10 + 0x2ef534)" * (cast_expression "(int *)(puVar10 + 0x2ef534)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2ef534)" ( (binary_expression "puVar10 + 0x2ef534" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar8 = *(uint *)(iVar5 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar5 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar5 + 0xf8)" * (cast_expression "(uint *)(iVar5 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xf8)" ( (binary_expression "iVar5 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" * (cast_expression "(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" ( (binary_expression "*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4" (pointer_expression "*(int *)(iVar5 + 0xf4)" * (cast_expression "(int *)(iVar5 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xf4)" ( (binary_expression "iVar5 + 0xf4" identifier + number_literal) )))) + (binary_expression "(uVar7 % uVar8) * 4" (parenthesized_expression "(uVar7 % uVar8)" ( (binary_expression "uVar7 % uVar8" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }" { (expression_statement "uVar2 = ((int *)*piVar1)[1];" (assignment_expression "uVar2 = ((int *)*piVar1)[1]" identifier = (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" ( (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);" do (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" { (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" identifier = identifier) ;) (if_statement "if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }" if (parenthesized_expression "(uVar2 == uVar7)" ( (binary_expression "uVar2 == uVar7" identifier == identifier) )) (compound_statement "{\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }" { (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efc28);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efc28)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2efc28)" * (cast_expression "(int *)(pcVar11 + 0x2efc28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efc28)" ( (binary_expression "pcVar11 + 0x2efc28" identifier + number_literal) ))))) ;) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" { (return_statement "return *(int *)(*piVar1 + 8);" return (pointer_expression "*(int *)(*piVar1 + 8)" * (cast_expression "(int *)(*piVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 8)" ( (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" * identifier) + number_literal) )))) ;) })) (goto_statement "goto LAB_001d1eb0;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar9 == (int *)0x0) break;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar2 = piVar9[1];" (assignment_expression "uVar2 = piVar9[1]" identifier = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar7 % uVar8 == uVar2 % uVar8)" ( (binary_expression "uVar7 % uVar8 == uVar2 % uVar8" (binary_expression "uVar7 % uVar8" identifier % identifier) == (binary_expression "uVar2 % uVar8" identifier % identifier)) )) ;) })) (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efc28);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efc28)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2efc28)" * (cast_expression "(int *)(pcVar11 + 0x2efc28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efc28)" ( (binary_expression "pcVar11 + 0x2efc28" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d1eb0:\n  uVar2 = 0x8a7;" statement_identifier : (expression_statement "uVar2 = 0x8a7;" (assignment_expression "uVar2 = 0x8a7" identifier = number_literal) ;)) (expression_statement "pcVar12 = *(code **)(pcVar11 + 0x2efc08);" (assignment_expression "pcVar12 = *(code **)(pcVar11 + 0x2efc08)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x2efc08)" * (cast_expression "(code **)(pcVar11 + 0x2efc08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2efc08)" ( (binary_expression "pcVar11 + 0x2efc08" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;" (assignment_expression "iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70" identifier = (binary_expression "*(int *)(pcVar11 + 0x2efc28) + 0x4d70" (pointer_expression "*(int *)(pcVar11 + 0x2efc28)" * (cast_expression "(int *)(pcVar11 + 0x2efc28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efc28)" ( (binary_expression "pcVar11 + 0x2efc28" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);" (call_expression "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(iVar6,0x8a7,iVar5 + 0x57f0)" ( identifier , number_literal , (binary_expression "iVar5 + 0x57f0" identifier + number_literal) ))) ;) (expression_statement "uVar8 = *(uint *)(iVar6 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar6 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar6 + 0xf8)" * (cast_expression "(uint *)(iVar6 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf8)" ( (binary_expression "iVar6 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" * (cast_expression "(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (binary_expression "*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4" (pointer_expression "*(int *)(iVar6 + 0xf4)" * (cast_expression "(int *)(iVar6 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf4)" ( (binary_expression "iVar6 + 0xf4" identifier + number_literal) )))) + (binary_expression "(uVar2 % uVar8) * 4" (parenthesized_expression "(uVar2 % uVar8)" ( (binary_expression "uVar2 % uVar8" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" { (expression_statement "uVar7 = ((int *)*piVar1)[1];" (assignment_expression "uVar7 = ((int *)*piVar1)[1]" identifier = (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" ( (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);" do (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" { (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" identifier = identifier) ;) (if_statement "if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }" if (parenthesized_expression "(uVar7 == uVar2)" ( (binary_expression "uVar7 == uVar2" identifier == identifier) )) (compound_statement "{\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }" { (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efb7c);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efb7c)" identifier = (pointer_expression "*(int *)(pcVar12 + 0x2efb7c)" * (cast_expression "(int *)(pcVar12 + 0x2efb7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efb7c)" ( (binary_expression "pcVar12 + 0x2efb7c" identifier + number_literal) ))))) ;) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" { (return_statement "return *(int *)(*piVar1 + 8);" return (pointer_expression "*(int *)(*piVar1 + 8)" * (cast_expression "(int *)(*piVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 8)" ( (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" * identifier) + number_literal) )))) ;) })) (goto_statement "goto LAB_001d1f5c;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar9 == (int *)0x0) break;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = piVar9[1];" (assignment_expression "uVar7 = piVar9[1]" identifier = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar2 % uVar8 == uVar7 % uVar8)" ( (binary_expression "uVar2 % uVar8 == uVar7 % uVar8" (binary_expression "uVar2 % uVar8" identifier % identifier) == (binary_expression "uVar7 % uVar8" identifier % identifier)) )) ;) })) (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efb7c);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efb7c)" identifier = (pointer_expression "*(int *)(pcVar12 + 0x2efb7c)" * (cast_expression "(int *)(pcVar12 + 0x2efb7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efb7c)" ( (binary_expression "pcVar12 + 0x2efb7c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d1f5c:\n  uVar2 = 0x8a7;" statement_identifier : (expression_statement "uVar2 = 0x8a7;" (assignment_expression "uVar2 = 0x8a7" identifier = number_literal) ;)) (expression_statement "pcVar11 = *(code **)(pcVar12 + 0x2efb5c);" (assignment_expression "pcVar11 = *(code **)(pcVar12 + 0x2efb5c)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x2efb5c)" * (cast_expression "(code **)(pcVar12 + 0x2efb5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x2efb5c)" ( (binary_expression "pcVar12 + 0x2efb5c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;" (assignment_expression "iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70" identifier = (binary_expression "*(int *)(pcVar12 + 0x2efb7c) + 0x4d70" (pointer_expression "*(int *)(pcVar12 + 0x2efb7c)" * (cast_expression "(int *)(pcVar12 + 0x2efb7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efb7c)" ( (binary_expression "pcVar12 + 0x2efb7c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);" (call_expression "(*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar6,0x8a7,iVar5 + 0x5ac4)" ( identifier , number_literal , (binary_expression "iVar5 + 0x5ac4" identifier + number_literal) ))) ;) (expression_statement "uVar8 = *(uint *)(iVar6 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar6 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar6 + 0xf8)" * (cast_expression "(uint *)(iVar6 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf8)" ( (binary_expression "iVar6 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" * (cast_expression "(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (binary_expression "*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4" (pointer_expression "*(int *)(iVar6 + 0xf4)" * (cast_expression "(int *)(iVar6 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf4)" ( (binary_expression "iVar6 + 0xf4" identifier + number_literal) )))) + (binary_expression "(uVar2 % uVar8) * 4" (parenthesized_expression "(uVar2 % uVar8)" ( (binary_expression "uVar2 % uVar8" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" { (expression_statement "uVar7 = ((int *)*piVar1)[1];" (assignment_expression "uVar7 = ((int *)*piVar1)[1]" identifier = (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" ( (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);" do (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" { (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" identifier = identifier) ;) (if_statement "if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }" if (parenthesized_expression "(uVar7 == uVar2)" ( (binary_expression "uVar7 == uVar2" identifier == identifier) )) (compound_statement "{\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }" { (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efad0);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efad0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2efad0)" * (cast_expression "(int *)(pcVar11 + 0x2efad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efad0)" ( (binary_expression "pcVar11 + 0x2efad0" identifier + number_literal) ))))) ;) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" { (return_statement "return *(int *)(*piVar1 + 8);" return (pointer_expression "*(int *)(*piVar1 + 8)" * (cast_expression "(int *)(*piVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 8)" ( (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" * identifier) + number_literal) )))) ;) })) (goto_statement "goto LAB_001d2008;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar9 == (int *)0x0) break;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = piVar9[1];" (assignment_expression "uVar7 = piVar9[1]" identifier = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar2 % uVar8 == uVar7 % uVar8)" ( (binary_expression "uVar2 % uVar8 == uVar7 % uVar8" (binary_expression "uVar2 % uVar8" identifier % identifier) == (binary_expression "uVar7 % uVar8" identifier % identifier)) )) ;) })) (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efad0);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efad0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2efad0)" * (cast_expression "(int *)(pcVar11 + 0x2efad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efad0)" ( (binary_expression "pcVar11 + 0x2efad0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d2008:\n  uVar2 = 0x8a7;" statement_identifier : (expression_statement "uVar2 = 0x8a7;" (assignment_expression "uVar2 = 0x8a7" identifier = number_literal) ;)) (expression_statement "pcVar12 = *(code **)(pcVar11 + 0x2efab0);" (assignment_expression "pcVar12 = *(code **)(pcVar11 + 0x2efab0)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x2efab0)" * (cast_expression "(code **)(pcVar11 + 0x2efab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2efab0)" ( (binary_expression "pcVar11 + 0x2efab0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;" (assignment_expression "iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70" identifier = (binary_expression "*(int *)(pcVar11 + 0x2efad0) + 0x4d70" (pointer_expression "*(int *)(pcVar11 + 0x2efad0)" * (cast_expression "(int *)(pcVar11 + 0x2efad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efad0)" ( (binary_expression "pcVar11 + 0x2efad0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);" (call_expression "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(iVar6,0x8a7,iVar5 + 0x54a8)" ( identifier , number_literal , (binary_expression "iVar5 + 0x54a8" identifier + number_literal) ))) ;) (expression_statement "uVar8 = *(uint *)(iVar6 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar6 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar6 + 0xf8)" * (cast_expression "(uint *)(iVar6 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf8)" ( (binary_expression "iVar6 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" * (cast_expression "(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (binary_expression "*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4" (pointer_expression "*(int *)(iVar6 + 0xf4)" * (cast_expression "(int *)(iVar6 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf4)" ( (binary_expression "iVar6 + 0xf4" identifier + number_literal) )))) + (binary_expression "(uVar2 % uVar8) * 4" (parenthesized_expression "(uVar2 % uVar8)" ( (binary_expression "uVar2 % uVar8" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" { (expression_statement "uVar7 = ((int *)*piVar1)[1];" (assignment_expression "uVar7 = ((int *)*piVar1)[1]" identifier = (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" ( (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);" do (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" { (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" identifier = identifier) ;) (if_statement "if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }" if (parenthesized_expression "(uVar7 == uVar2)" ( (binary_expression "uVar7 == uVar2" identifier == identifier) )) (compound_statement "{\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }" { (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efa24);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efa24)" identifier = (pointer_expression "*(int *)(pcVar12 + 0x2efa24)" * (cast_expression "(int *)(pcVar12 + 0x2efa24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efa24)" ( (binary_expression "pcVar12 + 0x2efa24" identifier + number_literal) ))))) ;) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" { (return_statement "return *(int *)(*piVar1 + 8);" return (pointer_expression "*(int *)(*piVar1 + 8)" * (cast_expression "(int *)(*piVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 8)" ( (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" * identifier) + number_literal) )))) ;) })) (goto_statement "goto LAB_001d20b4;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar9 == (int *)0x0) break;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = piVar9[1];" (assignment_expression "uVar7 = piVar9[1]" identifier = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar2 % uVar8 == uVar7 % uVar8)" ( (binary_expression "uVar2 % uVar8 == uVar7 % uVar8" (binary_expression "uVar2 % uVar8" identifier % identifier) == (binary_expression "uVar7 % uVar8" identifier % identifier)) )) ;) })) (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efa24);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efa24)" identifier = (pointer_expression "*(int *)(pcVar12 + 0x2efa24)" * (cast_expression "(int *)(pcVar12 + 0x2efa24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efa24)" ( (binary_expression "pcVar12 + 0x2efa24" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d20b4:\n  iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);" statement_identifier : (expression_statement "iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);" (assignment_expression "iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4)" identifier = (call_expression "(**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4)" (parenthesized_expression "(**(code **)(pcVar12 + 0x2efa04))" ( (pointer_expression "**(code **)(pcVar12 + 0x2efa04)" * (pointer_expression "*(code **)(pcVar12 + 0x2efa04)" * (cast_expression "(code **)(pcVar12 + 0x2efa04)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x2efa04)" ( (binary_expression "pcVar12 + 0x2efa04" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4)" ( (binary_expression "*(int *)(pcVar12 + 0x2efa24) + 0x4d70" (pointer_expression "*(int *)(pcVar12 + 0x2efa24)" * (cast_expression "(int *)(pcVar12 + 0x2efa24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efa24)" ( (binary_expression "pcVar12 + 0x2efa24" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar5 + 0x5ea4" identifier + number_literal) )))) ;)) (return_statement "return iVar5;" return identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: uint do_set_local_dynsym_indexes(Sized_relobj_file<64,_true> * this,\n   uint index) */\n\nuint __thiscall\ngold::Sized_relobj_file<64,_true>::do_set_local_dynsym_indexes\n          (Sized_relobj_file<64,_true> *this,uint index)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  byte *pbVar3;\n  int *piVar4;\n  size_type sVar5;\n  int *piVar6;\n  char *format;\n  uint *puVar7;\n  uint *puVar8;\n  _Rb_tree_color _Var9;\n  uint uVar10;\n  uint uVar11;\n  undefined *puVar12;\n  int iVar13;\n  Compressed_section_map *pCVar14;\n  Compressed_section_map *pCVar15;\n  Object *pOVar16;\n  undefined4 *puVar17;\n  Object *this_00;\n  int iVar18;\n  uint uVar19;\n  uint uVar20;\n  _Rb_tree_color _Var21;\n  undefined4 uVar22;\n  uint uVar23;\n  Compressed_section_map *pCVar24;\n  int iVar25;\n  Compressed_section_map *pCVar26;\n  _func_int_varargs *p_Var27;\n  uint uVar28;\n  undefined *puVar29;\n  code *pcVar30;\n  code *pcVar31;\n  ulonglong uVar32;\n  undefined8 uVar33;\n  longlong lVar34;\n  int *piStack_140;\n  uint uStack_13c;\n  uint uStack_138;\n  uint uStack_134;\n  int iStack_130;\n  uint uStack_12c;\n  int iStack_128;\n  uint uStack_124;\n  int *piStack_120;\n  uint uStack_11c;\n  Object *pOStack_118;\n  undefined4 *puStack_114;\n  int iStack_110;\n  \n  uVar23 = this->local_symbol_count_;\n  if (uVar23 < 2) {\n    return index;\n  }\n  uVar11 = 1;\n  puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n            _M_impl._M_start[1].output_dynsym_index_;\n  while (uVar19 = *puVar8, uVar19 == 0xffffffff) {\n    uVar11 = uVar11 + 1;\n    puVar8 = puVar8 + 6;\n    if (uVar23 == uVar11) {\n      return index;\n    }\n  }\n  while (uVar19 == 0) {\n    uVar19 = 0x741;\n    if (0xfffffffd < index - 1) goto LAB_001d1d30;\n    *puVar8 = index;\n    index = index + 1;\n    do {\n      uVar11 = uVar11 + 1;\n      if (uVar23 == uVar11) {\n        return index;\n      }\n      puVar8 = puVar8 + 6;\n      uVar19 = *puVar8;\n    } while (uVar19 == 0xffffffff);\n  }\n  uVar19 = 0x740;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);\nLAB_001d1d30:\n  puVar12 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;\n  puVar29 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  uVar23 = *(uint *)(puVar12 + 0xb8);\n  pCVar26 = (Compressed_section_map *)0xffffffff;\n  if (uVar23 < 2) {\n    return uVar19;\n  }\n  uVar11 = 1;\n  puVar8 = (uint *)(*(int *)(puVar12 + 0xe8) + 0x14);\n  while (uVar20 = *puVar8, uVar20 == 0xffffffff) {\n    uVar11 = uVar11 + 1;\n    puVar8 = puVar8 + 4;\n    if (uVar23 == uVar11) {\n      return uVar19;\n    }\n  }\n  while (uVar20 == 0) {\n    _Var21 = 0x741;\n    if (0xfffffffd < uVar19 - 1) goto LAB_001d1e10;\n    *puVar8 = uVar19;\n    uVar19 = uVar19 + 1;\n    do {\n      uVar11 = uVar11 + 1;\n      if (uVar23 == uVar11) {\n        return uVar19;\n      }\n      puVar8 = puVar8 + 4;\n      uVar20 = *puVar8;\n    } while (uVar20 == 0xffffffff);\n  }\n  _Var21 = 0x740;\n  (**(code **)(puVar29 + 0x2efce8))\n            (*(int *)(puVar29 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar29 + 0x2efd08) + 0x5d90);\nLAB_001d1e10:\n  pcVar30 = *(code **)(puVar29 + 0x2efce8);\n  iVar13 = *(int *)(puVar29 + 0x2ef534) + 0x4570;\n  (*pcVar30)();\n  uVar23 = *(uint *)(iVar13 + 0xf8);\n  if (uVar23 == 0) {\n    trap(7);\n  }\n  pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);\n  if (pCVar24 != (Compressed_section_map *)0x0) {\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efc28);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }\n  iVar25 = *(int *)(pcVar30 + 0x2efc28);\nLAB_001d1eb0:\n  _Var21 = 0x8a7;\n  pcVar31 = *(code **)(pcVar30 + 0x2efc08);\n  iVar13 = *(int *)(pcVar30 + 0x2efc28) + 0x4d70;\n  (*pcVar31)(iVar13,0x8a7,iVar25 + 0x57f0);\n  uVar23 = *(uint *)(iVar13 + 0xf8);\n  if (uVar23 == 0) {\n    trap(7);\n  }\n  pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);\n  if (pCVar24 != (Compressed_section_map *)0x0) {\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efb7c);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }\n  iVar25 = *(int *)(pcVar31 + 0x2efb7c);\nLAB_001d1f5c:\n  _Var21 = 0x8a7;\n  pcVar30 = *(code **)(pcVar31 + 0x2efb5c);\n  iVar13 = *(int *)(pcVar31 + 0x2efb7c) + 0x4d70;\n  (*pcVar30)(iVar13,0x8a7,iVar25 + 0x5ac4);\n  uVar23 = *(uint *)(iVar13 + 0xf8);\n  if (uVar23 == 0) {\n    trap(7);\n  }\n  pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);\n  if (pCVar24 != (Compressed_section_map *)0x0) {\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efad0);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }\n  iVar25 = *(int *)(pcVar30 + 0x2efad0);\nLAB_001d2008:\n  _Var21 = 0x8a7;\n  pcVar31 = *(code **)(pcVar30 + 0x2efab0);\n  iVar13 = *(int *)(pcVar30 + 0x2efad0) + 0x4d70;\n  (*pcVar31)(iVar13,0x8a7,iVar25 + 0x54a8);\n  uVar23 = *(uint *)(iVar13 + 0xf8);\n  if (uVar23 == 0) {\n    trap(7);\n  }\n  pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);\n  if (pCVar24 != (Compressed_section_map *)0x0) {\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efa24);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }\n  iVar25 = *(int *)(pcVar31 + 0x2efa24);\nLAB_001d20b4:\n  pcVar30 = *(code **)(pcVar31 + 0x2efa04);\n  iVar25 = iVar25 + 0x5ea4;\n  iVar13 = *(int *)(pcVar31 + 0x2efa24) + 0x4d70;\n  (*pcVar30)(iVar13,0x8a7);\n  pOVar16 = (Object *)&SUB_0000000c;\n  uVar23 = *(uint *)(iVar13 + 0x28);\n  puVar1 = (undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))();\n  *puVar1 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  if (uVar23 == 0) {\n    *(undefined4 **)(iVar13 + 0x44) = puVar1;\n    puVar1[1] = 0;\n    return (uint)puVar1;\n  }\n  if (uVar23 < 0x40000000) {\n    puVar2 = (undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))(uVar23 * 4);\n    puVar17 = puVar2 + uVar23;\n    *puVar1 = puVar2;\n    puVar1[2] = puVar17;\n    do {\n      *puVar2 = 0;\n      puVar2 = puVar2 + 1;\n    } while (puVar17 != puVar2);\n    *(undefined4 **)(iVar13 + 0x44) = puVar1;\n    puVar1[1] = puVar17;\n    return (uint)puVar2;\n  }\n  (**(code **)(pcVar30 + 0x2ef9e8))();\n  uVar11 = 0xc;\n  (**(code **)(pcVar30 + 0x2ef34c))(puVar1);\n  pcVar31 = *(code **)(pcVar30 + 0x2ef1f0);\n  this_00 = pOVar16;\n  (*pcVar31)();\n  pbVar3 = (byte *)((int)&(pCVar26->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color + 3);\n  uVar23 = (uint)(pbVar3 < pCVar26);\n  pCVar24 = (Compressed_section_map *)((uint)pbVar3 & 0xfffffff8);\n  pOStack_118 = pOVar16;\n  puStack_114 = puVar1;\n  iStack_110 = iVar13;\n  if ((uVar23 == 0) && (pCVar24 == pCVar26)) {\n    this_00[3].compressed_sections_ = pCVar24;\n    piVar4 = *(int **)(pcVar31 + 0x2ef7e0);\n    uVar19 = *(uint *)((int)&this_00[3].name_.field_2 + 4);\n    this_00[3].xindex_ = (Xindex *)(uVar23 + iVar25);\n    if (*(int *)(*piVar4 + 8) != 0) {\n      uStack_12c = (uint)*(byte *)(*(int *)(*piVar4 + 8) + 0x3195);\n      if (uVar19 < 2) {\n        return uVar11;\n      }\n      sVar5 = this_00[4].name_._M_string_length;\n      puVar8 = (uint *)(sVar5 + 0x18);\n      uVar23 = 1;\n      if ((*(uint *)(sVar5 + 0x20) & 1) == 0) {\n        uVar22 = 0x96c;\n      }\n      else {\n        iStack_128 = *(int *)(pcVar31 + 0x2ef87c);\n        uVar32 = (ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c);\n        iStack_130 = *(int *)(pcVar31 + 0x2ef87c) + 0x4f3c;\n        do {\n          uVar20 = puVar8[2] >> 5;\n          if (-1 < (int)(puVar8[2] << 0x1b)) {\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }\n          if (uVar20 < this_00->shnum_) {\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          uVar23 = uVar23 + 1;\n          puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);\n          uVar22 = 0x96c;\n        } while ((puVar8[2] & 1) != 0);\n      }\n      goto LAB_001d283c;\n    }\n  }\n  else {\nLAB_001d28b8:\n    (**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,0xa1a,*(int *)(pcVar31 + 0x2ef87c) + 0x5738);\n  }\n  (**(code **)(pcVar31 + 0x2ef85c))\n            (*(int *)(pcVar31 + 0x2ef0a8) + -0x9b8,0x5c,*(int *)(pcVar31 + 0x2ef87c) + 0x61ac);\nLAB_001d28f0:\n  uVar22 = 0x98d;\nLAB_001d283c:\n  do {\n    (**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,uVar22,*(int *)(pcVar31 + 0x2ef87c) + 0x5640);\nLAB_001d2854:\n    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\nLAB_001d285c:\n    (**(code **)(pcVar31 + 0x2ef85c))(*(int *)(pcVar31 + 0x2ef0a8) + 0x3574,0xc5,iVar25 + 0x6058);\nLAB_001d2870:\n    uVar22 = 0x995;\n  } while( true );\n}\n\n" comment comment comment comment (declaration "uint __thiscall\ngold::Sized_relobj_file<64,_true>::do_set_local_dynsym_indexes\n          (Sized_relobj_file<64,_true> *this,uint index)\n\n{\n  undefined4 *puVar1;" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::do_set_local_dynsym_indexes\n          (Sized_relobj_file<64,_true> *this,uint index)\n\n{\n  undefined4" identifier > : : (function_declarator "do_set_local_dynsym_indexes\n          (Sized_relobj_file<64,_true> *this,uint index)" identifier (parameter_list "(Sized_relobj_file<64,_true> *this,uint index)" ( (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint index" type_identifier identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "size_type sVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "_Rb_tree_color _Var9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "Compressed_section_map *pCVar14;" type_identifier (pointer_declarator "*pCVar14" * identifier) ;) (declaration "Compressed_section_map *pCVar15;" type_identifier (pointer_declarator "*pCVar15" * identifier) ;) (declaration "Object *pOVar16;" type_identifier (pointer_declarator "*pOVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "Object *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "_Rb_tree_color _Var21;" type_identifier identifier ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "Compressed_section_map *pCVar24;" type_identifier (pointer_declarator "*pCVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "Compressed_section_map *pCVar26;" type_identifier (pointer_declarator "*pCVar26" * identifier) ;) (declaration "_func_int_varargs *p_Var27;" type_identifier (pointer_declarator "*p_Var27" * identifier) ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "undefined *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "ulonglong uVar32;" type_identifier identifier ;) (declaration "undefined8 uVar33;" type_identifier identifier ;) (declaration "longlong lVar34;" type_identifier identifier ;) (declaration "int *piStack_140;" primitive_type (pointer_declarator "*piStack_140" * identifier) ;) (declaration "uint uStack_13c;" type_identifier identifier ;) (declaration "uint uStack_138;" type_identifier identifier ;) (declaration "uint uStack_134;" type_identifier identifier ;) (declaration "int iStack_130;" primitive_type identifier ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "int iStack_128;" primitive_type identifier ;) (declaration "uint uStack_124;" type_identifier identifier ;) (declaration "int *piStack_120;" primitive_type (pointer_declarator "*piStack_120" * identifier) ;) (declaration "uint uStack_11c;" type_identifier identifier ;) (declaration "Object *pOStack_118;" type_identifier (pointer_declarator "*pOStack_118" * identifier) ;) (declaration "undefined4 *puStack_114;" type_identifier (pointer_declarator "*puStack_114" * identifier) ;) (declaration "int iStack_110;" primitive_type identifier ;) (expression_statement "uVar23 = this->local_symbol_count_;" (assignment_expression "uVar23 = this->local_symbol_count_" identifier = (field_expression "this->local_symbol_count_" identifier -> field_identifier)) ;) (if_statement "if (uVar23 < 2) {\n    return index;\n  }" if (parenthesized_expression "(uVar23 < 2)" ( (binary_expression "uVar23 < 2" identifier < number_literal) )) (compound_statement "{\n    return index;\n  }" { (return_statement "return index;" return identifier ;) })) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n            _M_impl._M_start[1].output_dynsym_index_;" (field_expression "puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n            _M_impl._M_start[1].output_dynsym_index_" (subscript_expression "puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n            _M_impl._M_start[1]" (field_expression "puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n            _M_impl._M_start" (field_expression "puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_>.\n            _M_impl" (binary_expression "puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_>_" (binary_expression "puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64>_" (binary_expression "puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold::Symbol_value<64" (binary_expression "puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64>,_std::allocator<gold" (binary_expression "puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64>,_std" (binary_expression "puVar8 = &(this->local_values_).\n            super__Vector_base<gold::Symbol_value<64" (assignment_expression "puVar8 = &(this->local_values_).\n            super__Vector_base<gold" identifier = (binary_expression "&(this->local_values_).\n            super__Vector_base<gold" (pointer_expression "&(this->local_values_).\n            super__Vector_base" & (field_expression "(this->local_values_).\n            super__Vector_base" (parenthesized_expression "(this->local_values_)" ( (field_expression "this->local_values_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ number_literal ]) . field_identifier) ;) (while_statement "while (uVar19 = *puVar8, uVar19 == 0xffffffff) {\n    uVar11 = uVar11 + 1;\n    puVar8 = puVar8 + 6;\n    if (uVar23 == uVar11) {\n      return index;\n    }\n  }" while (parenthesized_expression "(uVar19 = *puVar8, uVar19 == 0xffffffff)" ( (comma_expression "uVar19 = *puVar8, uVar19 == 0xffffffff" (assignment_expression "uVar19 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) , (binary_expression "uVar19 == 0xffffffff" identifier == number_literal)) )) (compound_statement "{\n    uVar11 = uVar11 + 1;\n    puVar8 = puVar8 + 6;\n    if (uVar23 == uVar11) {\n      return index;\n    }\n  }" { (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 6;" (assignment_expression "puVar8 = puVar8 + 6" identifier = (binary_expression "puVar8 + 6" identifier + number_literal)) ;) (if_statement "if (uVar23 == uVar11) {\n      return index;\n    }" if (parenthesized_expression "(uVar23 == uVar11)" ( (binary_expression "uVar23 == uVar11" identifier == identifier) )) (compound_statement "{\n      return index;\n    }" { (return_statement "return index;" return identifier ;) })) })) (while_statement "while (uVar19 == 0) {\n    uVar19 = 0x741;\n    if (0xfffffffd < index - 1) goto LAB_001d1d30;\n    *puVar8 = index;\n    index = index + 1;\n    do {\n      uVar11 = uVar11 + 1;\n      if (uVar23 == uVar11) {\n        return index;\n      }\n      puVar8 = puVar8 + 6;\n      uVar19 = *puVar8;\n    } while (uVar19 == 0xffffffff);\n  }" while (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar19 = 0x741;\n    if (0xfffffffd < index - 1) goto LAB_001d1d30;\n    *puVar8 = index;\n    index = index + 1;\n    do {\n      uVar11 = uVar11 + 1;\n      if (uVar23 == uVar11) {\n        return index;\n      }\n      puVar8 = puVar8 + 6;\n      uVar19 = *puVar8;\n    } while (uVar19 == 0xffffffff);\n  }" { (expression_statement "uVar19 = 0x741;" (assignment_expression "uVar19 = 0x741" identifier = number_literal) ;) (if_statement "if (0xfffffffd < index - 1) goto LAB_001d1d30;" if (parenthesized_expression "(0xfffffffd < index - 1)" ( (binary_expression "0xfffffffd < index - 1" number_literal < (binary_expression "index - 1" identifier - number_literal)) )) (goto_statement "goto LAB_001d1d30;" goto statement_identifier ;)) (expression_statement "*puVar8 = index;" (assignment_expression "*puVar8 = index" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "index = index + 1;" (assignment_expression "index = index + 1" identifier = (binary_expression "index + 1" identifier + number_literal)) ;) (do_statement "do {\n      uVar11 = uVar11 + 1;\n      if (uVar23 == uVar11) {\n        return index;\n      }\n      puVar8 = puVar8 + 6;\n      uVar19 = *puVar8;\n    } while (uVar19 == 0xffffffff);" do (compound_statement "{\n      uVar11 = uVar11 + 1;\n      if (uVar23 == uVar11) {\n        return index;\n      }\n      puVar8 = puVar8 + 6;\n      uVar19 = *puVar8;\n    }" { (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (if_statement "if (uVar23 == uVar11) {\n        return index;\n      }" if (parenthesized_expression "(uVar23 == uVar11)" ( (binary_expression "uVar23 == uVar11" identifier == identifier) )) (compound_statement "{\n        return index;\n      }" { (return_statement "return index;" return identifier ;) })) (expression_statement "puVar8 = puVar8 + 6;" (assignment_expression "puVar8 = puVar8 + 6" identifier = (binary_expression "puVar8 + 6" identifier + number_literal)) ;) (expression_statement "uVar19 = *puVar8;" (assignment_expression "uVar19 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) }) while (parenthesized_expression "(uVar19 == 0xffffffff)" ( (binary_expression "uVar19 == 0xffffffff" identifier == number_literal) )) ;) })) (expression_statement "uVar19 = 0x740;" (assignment_expression "uVar19 = 0x740" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) , number_literal , (binary_expression "PTR_s__s_004c1a50 + 0x5708" identifier + number_literal) ))) ;) (labeled_statement "LAB_001d1d30:\n  puVar12 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;" statement_identifier : (expression_statement "puVar12 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;" (assignment_expression "puVar12 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal)) ;)) (expression_statement "puVar29 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar29 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar23 = *(uint *)(puVar12 + 0xb8);" (assignment_expression "uVar23 = *(uint *)(puVar12 + 0xb8)" identifier = (pointer_expression "*(uint *)(puVar12 + 0xb8)" * (cast_expression "(uint *)(puVar12 + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0xb8)" ( (binary_expression "puVar12 + 0xb8" identifier + number_literal) ))))) ;) (expression_statement "pCVar26 = (Compressed_section_map *)0xffffffff;" (assignment_expression "pCVar26 = (Compressed_section_map *)0xffffffff" identifier = (cast_expression "(Compressed_section_map *)0xffffffff" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar23 < 2) {\n    return uVar19;\n  }" if (parenthesized_expression "(uVar23 < 2)" ( (binary_expression "uVar23 < 2" identifier < number_literal) )) (compound_statement "{\n    return uVar19;\n  }" { (return_statement "return uVar19;" return identifier ;) })) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "puVar8 = (uint *)(*(int *)(puVar12 + 0xe8) + 0x14);" (assignment_expression "puVar8 = (uint *)(*(int *)(puVar12 + 0xe8) + 0x14)" identifier = (cast_expression "(uint *)(*(int *)(puVar12 + 0xe8) + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar12 + 0xe8) + 0x14)" ( (binary_expression "*(int *)(puVar12 + 0xe8) + 0x14" (pointer_expression "*(int *)(puVar12 + 0xe8)" * (cast_expression "(int *)(puVar12 + 0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0xe8)" ( (binary_expression "puVar12 + 0xe8" identifier + number_literal) )))) + number_literal) )))) ;) (while_statement "while (uVar20 = *puVar8, uVar20 == 0xffffffff) {\n    uVar11 = uVar11 + 1;\n    puVar8 = puVar8 + 4;\n    if (uVar23 == uVar11) {\n      return uVar19;\n    }\n  }" while (parenthesized_expression "(uVar20 = *puVar8, uVar20 == 0xffffffff)" ( (comma_expression "uVar20 = *puVar8, uVar20 == 0xffffffff" (assignment_expression "uVar20 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) , (binary_expression "uVar20 == 0xffffffff" identifier == number_literal)) )) (compound_statement "{\n    uVar11 = uVar11 + 1;\n    puVar8 = puVar8 + 4;\n    if (uVar23 == uVar11) {\n      return uVar19;\n    }\n  }" { (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 4;" (assignment_expression "puVar8 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (if_statement "if (uVar23 == uVar11) {\n      return uVar19;\n    }" if (parenthesized_expression "(uVar23 == uVar11)" ( (binary_expression "uVar23 == uVar11" identifier == identifier) )) (compound_statement "{\n      return uVar19;\n    }" { (return_statement "return uVar19;" return identifier ;) })) })) (while_statement "while (uVar20 == 0) {\n    _Var21 = 0x741;\n    if (0xfffffffd < uVar19 - 1) goto LAB_001d1e10;\n    *puVar8 = uVar19;\n    uVar19 = uVar19 + 1;\n    do {\n      uVar11 = uVar11 + 1;\n      if (uVar23 == uVar11) {\n        return uVar19;\n      }\n      puVar8 = puVar8 + 4;\n      uVar20 = *puVar8;\n    } while (uVar20 == 0xffffffff);\n  }" while (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    _Var21 = 0x741;\n    if (0xfffffffd < uVar19 - 1) goto LAB_001d1e10;\n    *puVar8 = uVar19;\n    uVar19 = uVar19 + 1;\n    do {\n      uVar11 = uVar11 + 1;\n      if (uVar23 == uVar11) {\n        return uVar19;\n      }\n      puVar8 = puVar8 + 4;\n      uVar20 = *puVar8;\n    } while (uVar20 == 0xffffffff);\n  }" { (expression_statement "_Var21 = 0x741;" (assignment_expression "_Var21 = 0x741" identifier = number_literal) ;) (if_statement "if (0xfffffffd < uVar19 - 1) goto LAB_001d1e10;" if (parenthesized_expression "(0xfffffffd < uVar19 - 1)" ( (binary_expression "0xfffffffd < uVar19 - 1" number_literal < (binary_expression "uVar19 - 1" identifier - number_literal)) )) (goto_statement "goto LAB_001d1e10;" goto statement_identifier ;)) (expression_statement "*puVar8 = uVar19;" (assignment_expression "*puVar8 = uVar19" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) (do_statement "do {\n      uVar11 = uVar11 + 1;\n      if (uVar23 == uVar11) {\n        return uVar19;\n      }\n      puVar8 = puVar8 + 4;\n      uVar20 = *puVar8;\n    } while (uVar20 == 0xffffffff);" do (compound_statement "{\n      uVar11 = uVar11 + 1;\n      if (uVar23 == uVar11) {\n        return uVar19;\n      }\n      puVar8 = puVar8 + 4;\n      uVar20 = *puVar8;\n    }" { (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (if_statement "if (uVar23 == uVar11) {\n        return uVar19;\n      }" if (parenthesized_expression "(uVar23 == uVar11)" ( (binary_expression "uVar23 == uVar11" identifier == identifier) )) (compound_statement "{\n        return uVar19;\n      }" { (return_statement "return uVar19;" return identifier ;) })) (expression_statement "puVar8 = puVar8 + 4;" (assignment_expression "puVar8 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (expression_statement "uVar20 = *puVar8;" (assignment_expression "uVar20 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) }) while (parenthesized_expression "(uVar20 == 0xffffffff)" ( (binary_expression "uVar20 == 0xffffffff" identifier == number_literal) )) ;) })) (expression_statement "_Var21 = 0x740;" (assignment_expression "_Var21 = 0x740" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar29 + 0x2efce8))\n            (*(int *)(puVar29 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar29 + 0x2efd08) + 0x5d90);" (call_expression "(**(code **)(puVar29 + 0x2efce8))\n            (*(int *)(puVar29 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar29 + 0x2efd08) + 0x5d90)" (parenthesized_expression "(**(code **)(puVar29 + 0x2efce8))" ( (pointer_expression "**(code **)(puVar29 + 0x2efce8)" * (pointer_expression "*(code **)(puVar29 + 0x2efce8)" * (cast_expression "(code **)(puVar29 + 0x2efce8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + 0x2efce8)" ( (binary_expression "puVar29 + 0x2efce8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar29 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar29 + 0x2efd08) + 0x5d90)" ( (binary_expression "*(int *)(puVar29 + 0x2ef534) + 0x4570" (pointer_expression "*(int *)(puVar29 + 0x2ef534)" * (cast_expression "(int *)(puVar29 + 0x2ef534)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + 0x2ef534)" ( (binary_expression "puVar29 + 0x2ef534" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar29 + 0x2efd08) + 0x5d90" (pointer_expression "*(int *)(puVar29 + 0x2efd08)" * (cast_expression "(int *)(puVar29 + 0x2efd08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + 0x2efd08)" ( (binary_expression "puVar29 + 0x2efd08" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_001d1e10:\n  pcVar30 = *(code **)(puVar29 + 0x2efce8);" statement_identifier : (expression_statement "pcVar30 = *(code **)(puVar29 + 0x2efce8);" (assignment_expression "pcVar30 = *(code **)(puVar29 + 0x2efce8)" identifier = (pointer_expression "*(code **)(puVar29 + 0x2efce8)" * (cast_expression "(code **)(puVar29 + 0x2efce8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + 0x2efce8)" ( (binary_expression "puVar29 + 0x2efce8" identifier + number_literal) ))))) ;)) (expression_statement "iVar13 = *(int *)(puVar29 + 0x2ef534) + 0x4570;" (assignment_expression "iVar13 = *(int *)(puVar29 + 0x2ef534) + 0x4570" identifier = (binary_expression "*(int *)(puVar29 + 0x2ef534) + 0x4570" (pointer_expression "*(int *)(puVar29 + 0x2ef534)" * (cast_expression "(int *)(puVar29 + 0x2ef534)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29 + 0x2ef534)" ( (binary_expression "puVar29 + 0x2ef534" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar30)();" (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar23 = *(uint *)(iVar13 + 0xf8);" (assignment_expression "uVar23 = *(uint *)(iVar13 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar13 + 0xf8)" * (cast_expression "(uint *)(iVar13 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf8)" ( (binary_expression "iVar13 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar23 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);" (assignment_expression "pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" identifier = (pointer_expression "*(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" * (cast_expression "(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" ( (binary_expression "*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4" (pointer_expression "*(int *)(iVar13 + 0xf4)" * (cast_expression "(int *)(iVar13 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf4)" ( (binary_expression "iVar13 + 0xf4" identifier + number_literal) )))) + (binary_expression "(int)(_Var21 % uVar23) * 4" (cast_expression "(int)(_Var21 % uVar23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(_Var21 % uVar23)" ( (binary_expression "_Var21 % uVar23" identifier % identifier) ))) * number_literal)) ))))) ;) (if_statement "if (pCVar24 != (Compressed_section_map *)0x0) {\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efc28);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }" if (parenthesized_expression "(pCVar24 != (Compressed_section_map *)0x0)" ( (binary_expression "pCVar24 != (Compressed_section_map *)0x0" identifier != (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efc28);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }" { (expression_statement "pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;" (assignment_expression "pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" identifier = (pointer_expression "*(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" * (cast_expression "(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(pCVar24->_M_t)._M_impl" & (field_expression "(pCVar24->_M_t)._M_impl" (parenthesized_expression "(pCVar24->_M_t)" ( (field_expression "pCVar24->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;" (assignment_expression "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" identifier = (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar14->_M_t)._M_impl" (parenthesized_expression "(pCVar14->_M_t)" ( (field_expression "pCVar14->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (do_statement "do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efc28);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);" do (compound_statement "{\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efc28);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    }" { (expression_statement "pCVar15 = pCVar14;" (assignment_expression "pCVar15 = pCVar14" identifier = identifier) ;) (if_statement "if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efc28);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1eb0;\n      }" if (parenthesized_expression "(_Var9 == _Var21)" ( (binary_expression "_Var9 == _Var21" identifier == identifier) )) (compound_statement "{\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efc28);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1eb0;\n      }" { (expression_statement "iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;" (assignment_expression "iVar13 = *(int *)&(pCVar24->_M_t)._M_impl" identifier = (pointer_expression "*(int *)&(pCVar24->_M_t)._M_impl" * (cast_expression "(int *)&(pCVar24->_M_t)._M_impl" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pCVar24->_M_t)._M_impl" & (field_expression "(pCVar24->_M_t)._M_impl" (parenthesized_expression "(pCVar24->_M_t)" ( (field_expression "pCVar24->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "iVar25 = *(int *)(pcVar30 + 0x2efc28);" (assignment_expression "iVar25 = *(int *)(pcVar30 + 0x2efc28)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x2efc28)" * (cast_expression "(int *)(pcVar30 + 0x2efc28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x2efc28)" ( (binary_expression "pcVar30 + 0x2efc28" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          return *(uint *)(iVar13 + 8);\n        }" { (return_statement "return *(uint *)(iVar13 + 8);" return (pointer_expression "*(uint *)(iVar13 + 8)" * (cast_expression "(uint *)(iVar13 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) ;) })) (goto_statement "goto LAB_001d1eb0;" goto statement_identifier ;) })) (expression_statement "pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;" (assignment_expression "pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" identifier = (pointer_expression "*(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" * (cast_expression "(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(pCVar15->_M_t)._M_impl" & (field_expression "(pCVar15->_M_t)._M_impl" (parenthesized_expression "(pCVar15->_M_t)" ( (field_expression "pCVar15->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "pCVar26 = pCVar14;" (assignment_expression "pCVar26 = pCVar14" identifier = identifier) ;) (if_statement "if (pCVar14 == (Compressed_section_map *)0x0) break;" if (parenthesized_expression "(pCVar14 == (Compressed_section_map *)0x0)" ( (binary_expression "pCVar14 == (Compressed_section_map *)0x0" identifier == (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;" (assignment_expression "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" identifier = (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar14->_M_t)._M_impl" (parenthesized_expression "(pCVar14->_M_t)" ( (field_expression "pCVar14->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (uVar23 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);" (assignment_expression "pCVar26 = (Compressed_section_map *)(_Var9 % uVar23)" identifier = (cast_expression "(Compressed_section_map *)(_Var9 % uVar23)" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_Var9 % uVar23)" ( (binary_expression "_Var9 % uVar23" identifier % identifier) )))) ;) (expression_statement "pCVar24 = pCVar15;" (assignment_expression "pCVar24 = pCVar15" identifier = identifier) ;) }) while (parenthesized_expression "((Compressed_section_map *)(_Var21 % uVar23) == pCVar26)" ( (binary_expression "(Compressed_section_map *)(_Var21 % uVar23) == pCVar26" (cast_expression "(Compressed_section_map *)(_Var21 % uVar23)" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_Var21 % uVar23)" ( (binary_expression "_Var21 % uVar23" identifier % identifier) ))) == identifier) )) ;) })) (expression_statement "iVar25 = *(int *)(pcVar30 + 0x2efc28);" (assignment_expression "iVar25 = *(int *)(pcVar30 + 0x2efc28)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x2efc28)" * (cast_expression "(int *)(pcVar30 + 0x2efc28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x2efc28)" ( (binary_expression "pcVar30 + 0x2efc28" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d1eb0:\n  _Var21 = 0x8a7;" statement_identifier : (expression_statement "_Var21 = 0x8a7;" (assignment_expression "_Var21 = 0x8a7" identifier = number_literal) ;)) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x2efc08);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x2efc08)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x2efc08)" * (cast_expression "(code **)(pcVar30 + 0x2efc08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2efc08)" ( (binary_expression "pcVar30 + 0x2efc08" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(pcVar30 + 0x2efc28) + 0x4d70;" (assignment_expression "iVar13 = *(int *)(pcVar30 + 0x2efc28) + 0x4d70" identifier = (binary_expression "*(int *)(pcVar30 + 0x2efc28) + 0x4d70" (pointer_expression "*(int *)(pcVar30 + 0x2efc28)" * (cast_expression "(int *)(pcVar30 + 0x2efc28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x2efc28)" ( (binary_expression "pcVar30 + 0x2efc28" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar31)(iVar13,0x8a7,iVar25 + 0x57f0);" (call_expression "(*pcVar31)(iVar13,0x8a7,iVar25 + 0x57f0)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(iVar13,0x8a7,iVar25 + 0x57f0)" ( identifier , number_literal , (binary_expression "iVar25 + 0x57f0" identifier + number_literal) ))) ;) (expression_statement "uVar23 = *(uint *)(iVar13 + 0xf8);" (assignment_expression "uVar23 = *(uint *)(iVar13 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar13 + 0xf8)" * (cast_expression "(uint *)(iVar13 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf8)" ( (binary_expression "iVar13 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar23 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);" (assignment_expression "pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" identifier = (pointer_expression "*(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" * (cast_expression "(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" ( (binary_expression "*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4" (pointer_expression "*(int *)(iVar13 + 0xf4)" * (cast_expression "(int *)(iVar13 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf4)" ( (binary_expression "iVar13 + 0xf4" identifier + number_literal) )))) + (binary_expression "(int)(_Var21 % uVar23) * 4" (cast_expression "(int)(_Var21 % uVar23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(_Var21 % uVar23)" ( (binary_expression "_Var21 % uVar23" identifier % identifier) ))) * number_literal)) ))))) ;) (if_statement "if (pCVar24 != (Compressed_section_map *)0x0) {\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efb7c);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }" if (parenthesized_expression "(pCVar24 != (Compressed_section_map *)0x0)" ( (binary_expression "pCVar24 != (Compressed_section_map *)0x0" identifier != (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efb7c);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }" { (expression_statement "pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;" (assignment_expression "pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" identifier = (pointer_expression "*(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" * (cast_expression "(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(pCVar24->_M_t)._M_impl" & (field_expression "(pCVar24->_M_t)._M_impl" (parenthesized_expression "(pCVar24->_M_t)" ( (field_expression "pCVar24->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;" (assignment_expression "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" identifier = (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar14->_M_t)._M_impl" (parenthesized_expression "(pCVar14->_M_t)" ( (field_expression "pCVar14->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (do_statement "do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efb7c);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);" do (compound_statement "{\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efb7c);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    }" { (expression_statement "pCVar15 = pCVar14;" (assignment_expression "pCVar15 = pCVar14" identifier = identifier) ;) (if_statement "if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efb7c);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1f5c;\n      }" if (parenthesized_expression "(_Var9 == _Var21)" ( (binary_expression "_Var9 == _Var21" identifier == identifier) )) (compound_statement "{\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efb7c);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d1f5c;\n      }" { (expression_statement "iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;" (assignment_expression "iVar13 = *(int *)&(pCVar24->_M_t)._M_impl" identifier = (pointer_expression "*(int *)&(pCVar24->_M_t)._M_impl" * (cast_expression "(int *)&(pCVar24->_M_t)._M_impl" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pCVar24->_M_t)._M_impl" & (field_expression "(pCVar24->_M_t)._M_impl" (parenthesized_expression "(pCVar24->_M_t)" ( (field_expression "pCVar24->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "iVar25 = *(int *)(pcVar31 + 0x2efb7c);" (assignment_expression "iVar25 = *(int *)(pcVar31 + 0x2efb7c)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x2efb7c)" * (cast_expression "(int *)(pcVar31 + 0x2efb7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2efb7c)" ( (binary_expression "pcVar31 + 0x2efb7c" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          return *(uint *)(iVar13 + 8);\n        }" { (return_statement "return *(uint *)(iVar13 + 8);" return (pointer_expression "*(uint *)(iVar13 + 8)" * (cast_expression "(uint *)(iVar13 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) ;) })) (goto_statement "goto LAB_001d1f5c;" goto statement_identifier ;) })) (expression_statement "pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;" (assignment_expression "pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" identifier = (pointer_expression "*(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" * (cast_expression "(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(pCVar15->_M_t)._M_impl" & (field_expression "(pCVar15->_M_t)._M_impl" (parenthesized_expression "(pCVar15->_M_t)" ( (field_expression "pCVar15->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "pCVar26 = pCVar14;" (assignment_expression "pCVar26 = pCVar14" identifier = identifier) ;) (if_statement "if (pCVar14 == (Compressed_section_map *)0x0) break;" if (parenthesized_expression "(pCVar14 == (Compressed_section_map *)0x0)" ( (binary_expression "pCVar14 == (Compressed_section_map *)0x0" identifier == (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;" (assignment_expression "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" identifier = (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar14->_M_t)._M_impl" (parenthesized_expression "(pCVar14->_M_t)" ( (field_expression "pCVar14->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (uVar23 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);" (assignment_expression "pCVar26 = (Compressed_section_map *)(_Var9 % uVar23)" identifier = (cast_expression "(Compressed_section_map *)(_Var9 % uVar23)" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_Var9 % uVar23)" ( (binary_expression "_Var9 % uVar23" identifier % identifier) )))) ;) (expression_statement "pCVar24 = pCVar15;" (assignment_expression "pCVar24 = pCVar15" identifier = identifier) ;) }) while (parenthesized_expression "((Compressed_section_map *)(_Var21 % uVar23) == pCVar26)" ( (binary_expression "(Compressed_section_map *)(_Var21 % uVar23) == pCVar26" (cast_expression "(Compressed_section_map *)(_Var21 % uVar23)" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_Var21 % uVar23)" ( (binary_expression "_Var21 % uVar23" identifier % identifier) ))) == identifier) )) ;) })) (expression_statement "iVar25 = *(int *)(pcVar31 + 0x2efb7c);" (assignment_expression "iVar25 = *(int *)(pcVar31 + 0x2efb7c)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x2efb7c)" * (cast_expression "(int *)(pcVar31 + 0x2efb7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2efb7c)" ( (binary_expression "pcVar31 + 0x2efb7c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d1f5c:\n  _Var21 = 0x8a7;" statement_identifier : (expression_statement "_Var21 = 0x8a7;" (assignment_expression "_Var21 = 0x8a7" identifier = number_literal) ;)) (expression_statement "pcVar30 = *(code **)(pcVar31 + 0x2efb5c);" (assignment_expression "pcVar30 = *(code **)(pcVar31 + 0x2efb5c)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x2efb5c)" * (cast_expression "(code **)(pcVar31 + 0x2efb5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2efb5c)" ( (binary_expression "pcVar31 + 0x2efb5c" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(pcVar31 + 0x2efb7c) + 0x4d70;" (assignment_expression "iVar13 = *(int *)(pcVar31 + 0x2efb7c) + 0x4d70" identifier = (binary_expression "*(int *)(pcVar31 + 0x2efb7c) + 0x4d70" (pointer_expression "*(int *)(pcVar31 + 0x2efb7c)" * (cast_expression "(int *)(pcVar31 + 0x2efb7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2efb7c)" ( (binary_expression "pcVar31 + 0x2efb7c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar30)(iVar13,0x8a7,iVar25 + 0x5ac4);" (call_expression "(*pcVar30)(iVar13,0x8a7,iVar25 + 0x5ac4)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(iVar13,0x8a7,iVar25 + 0x5ac4)" ( identifier , number_literal , (binary_expression "iVar25 + 0x5ac4" identifier + number_literal) ))) ;) (expression_statement "uVar23 = *(uint *)(iVar13 + 0xf8);" (assignment_expression "uVar23 = *(uint *)(iVar13 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar13 + 0xf8)" * (cast_expression "(uint *)(iVar13 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf8)" ( (binary_expression "iVar13 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar23 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);" (assignment_expression "pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" identifier = (pointer_expression "*(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" * (cast_expression "(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" ( (binary_expression "*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4" (pointer_expression "*(int *)(iVar13 + 0xf4)" * (cast_expression "(int *)(iVar13 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf4)" ( (binary_expression "iVar13 + 0xf4" identifier + number_literal) )))) + (binary_expression "(int)(_Var21 % uVar23) * 4" (cast_expression "(int)(_Var21 % uVar23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(_Var21 % uVar23)" ( (binary_expression "_Var21 % uVar23" identifier % identifier) ))) * number_literal)) ))))) ;) (if_statement "if (pCVar24 != (Compressed_section_map *)0x0) {\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efad0);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }" if (parenthesized_expression "(pCVar24 != (Compressed_section_map *)0x0)" ( (binary_expression "pCVar24 != (Compressed_section_map *)0x0" identifier != (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efad0);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }" { (expression_statement "pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;" (assignment_expression "pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" identifier = (pointer_expression "*(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" * (cast_expression "(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(pCVar24->_M_t)._M_impl" & (field_expression "(pCVar24->_M_t)._M_impl" (parenthesized_expression "(pCVar24->_M_t)" ( (field_expression "pCVar24->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;" (assignment_expression "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" identifier = (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar14->_M_t)._M_impl" (parenthesized_expression "(pCVar14->_M_t)" ( (field_expression "pCVar14->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (do_statement "do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efad0);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);" do (compound_statement "{\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efad0);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    }" { (expression_statement "pCVar15 = pCVar14;" (assignment_expression "pCVar15 = pCVar14" identifier = identifier) ;) (if_statement "if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efad0);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d2008;\n      }" if (parenthesized_expression "(_Var9 == _Var21)" ( (binary_expression "_Var9 == _Var21" identifier == identifier) )) (compound_statement "{\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar30 + 0x2efad0);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d2008;\n      }" { (expression_statement "iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;" (assignment_expression "iVar13 = *(int *)&(pCVar24->_M_t)._M_impl" identifier = (pointer_expression "*(int *)&(pCVar24->_M_t)._M_impl" * (cast_expression "(int *)&(pCVar24->_M_t)._M_impl" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pCVar24->_M_t)._M_impl" & (field_expression "(pCVar24->_M_t)._M_impl" (parenthesized_expression "(pCVar24->_M_t)" ( (field_expression "pCVar24->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "iVar25 = *(int *)(pcVar30 + 0x2efad0);" (assignment_expression "iVar25 = *(int *)(pcVar30 + 0x2efad0)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x2efad0)" * (cast_expression "(int *)(pcVar30 + 0x2efad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x2efad0)" ( (binary_expression "pcVar30 + 0x2efad0" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          return *(uint *)(iVar13 + 8);\n        }" { (return_statement "return *(uint *)(iVar13 + 8);" return (pointer_expression "*(uint *)(iVar13 + 8)" * (cast_expression "(uint *)(iVar13 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) ;) })) (goto_statement "goto LAB_001d2008;" goto statement_identifier ;) })) (expression_statement "pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;" (assignment_expression "pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" identifier = (pointer_expression "*(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" * (cast_expression "(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(pCVar15->_M_t)._M_impl" & (field_expression "(pCVar15->_M_t)._M_impl" (parenthesized_expression "(pCVar15->_M_t)" ( (field_expression "pCVar15->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "pCVar26 = pCVar14;" (assignment_expression "pCVar26 = pCVar14" identifier = identifier) ;) (if_statement "if (pCVar14 == (Compressed_section_map *)0x0) break;" if (parenthesized_expression "(pCVar14 == (Compressed_section_map *)0x0)" ( (binary_expression "pCVar14 == (Compressed_section_map *)0x0" identifier == (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;" (assignment_expression "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" identifier = (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar14->_M_t)._M_impl" (parenthesized_expression "(pCVar14->_M_t)" ( (field_expression "pCVar14->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (uVar23 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);" (assignment_expression "pCVar26 = (Compressed_section_map *)(_Var9 % uVar23)" identifier = (cast_expression "(Compressed_section_map *)(_Var9 % uVar23)" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_Var9 % uVar23)" ( (binary_expression "_Var9 % uVar23" identifier % identifier) )))) ;) (expression_statement "pCVar24 = pCVar15;" (assignment_expression "pCVar24 = pCVar15" identifier = identifier) ;) }) while (parenthesized_expression "((Compressed_section_map *)(_Var21 % uVar23) == pCVar26)" ( (binary_expression "(Compressed_section_map *)(_Var21 % uVar23) == pCVar26" (cast_expression "(Compressed_section_map *)(_Var21 % uVar23)" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_Var21 % uVar23)" ( (binary_expression "_Var21 % uVar23" identifier % identifier) ))) == identifier) )) ;) })) (expression_statement "iVar25 = *(int *)(pcVar30 + 0x2efad0);" (assignment_expression "iVar25 = *(int *)(pcVar30 + 0x2efad0)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x2efad0)" * (cast_expression "(int *)(pcVar30 + 0x2efad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x2efad0)" ( (binary_expression "pcVar30 + 0x2efad0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d2008:\n  _Var21 = 0x8a7;" statement_identifier : (expression_statement "_Var21 = 0x8a7;" (assignment_expression "_Var21 = 0x8a7" identifier = number_literal) ;)) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x2efab0);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x2efab0)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x2efab0)" * (cast_expression "(code **)(pcVar30 + 0x2efab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2efab0)" ( (binary_expression "pcVar30 + 0x2efab0" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(pcVar30 + 0x2efad0) + 0x4d70;" (assignment_expression "iVar13 = *(int *)(pcVar30 + 0x2efad0) + 0x4d70" identifier = (binary_expression "*(int *)(pcVar30 + 0x2efad0) + 0x4d70" (pointer_expression "*(int *)(pcVar30 + 0x2efad0)" * (cast_expression "(int *)(pcVar30 + 0x2efad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x2efad0)" ( (binary_expression "pcVar30 + 0x2efad0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar31)(iVar13,0x8a7,iVar25 + 0x54a8);" (call_expression "(*pcVar31)(iVar13,0x8a7,iVar25 + 0x54a8)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(iVar13,0x8a7,iVar25 + 0x54a8)" ( identifier , number_literal , (binary_expression "iVar25 + 0x54a8" identifier + number_literal) ))) ;) (expression_statement "uVar23 = *(uint *)(iVar13 + 0xf8);" (assignment_expression "uVar23 = *(uint *)(iVar13 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar13 + 0xf8)" * (cast_expression "(uint *)(iVar13 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf8)" ( (binary_expression "iVar13 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar23 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4);" (assignment_expression "pCVar24 = *(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" identifier = (pointer_expression "*(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" * (cast_expression "(Compressed_section_map **)(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4)" ( (binary_expression "*(int *)(iVar13 + 0xf4) + (int)(_Var21 % uVar23) * 4" (pointer_expression "*(int *)(iVar13 + 0xf4)" * (cast_expression "(int *)(iVar13 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xf4)" ( (binary_expression "iVar13 + 0xf4" identifier + number_literal) )))) + (binary_expression "(int)(_Var21 % uVar23) * 4" (cast_expression "(int)(_Var21 % uVar23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(_Var21 % uVar23)" ( (binary_expression "_Var21 % uVar23" identifier % identifier) ))) * number_literal)) ))))) ;) (if_statement "if (pCVar24 != (Compressed_section_map *)0x0) {\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efa24);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }" if (parenthesized_expression "(pCVar24 != (Compressed_section_map *)0x0)" ( (binary_expression "pCVar24 != (Compressed_section_map *)0x0" identifier != (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;\n    _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n    do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efa24);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);\n  }" { (expression_statement "pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl;" (assignment_expression "pCVar14 = *(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" identifier = (pointer_expression "*(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" * (cast_expression "(Compressed_section_map **)&(pCVar24->_M_t)._M_impl" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(pCVar24->_M_t)._M_impl" & (field_expression "(pCVar24->_M_t)._M_impl" (parenthesized_expression "(pCVar24->_M_t)" ( (field_expression "pCVar24->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;" (assignment_expression "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" identifier = (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar14->_M_t)._M_impl" (parenthesized_expression "(pCVar14->_M_t)" ( (field_expression "pCVar14->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (do_statement "do {\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efa24);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    } while ((Compressed_section_map *)(_Var21 % uVar23) == pCVar26);" do (compound_statement "{\n      pCVar15 = pCVar14;\n      if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efa24);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;\n      pCVar26 = pCVar14;\n      if (pCVar14 == (Compressed_section_map *)0x0) break;\n      _Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;\n      if (uVar23 == 0) {\n        trap(7);\n      }\n      pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);\n      pCVar24 = pCVar15;\n    }" { (expression_statement "pCVar15 = pCVar14;" (assignment_expression "pCVar15 = pCVar14" identifier = identifier) ;) (if_statement "if (_Var9 == _Var21) {\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efa24);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d20b4;\n      }" if (parenthesized_expression "(_Var9 == _Var21)" ( (binary_expression "_Var9 == _Var21" identifier == identifier) )) (compound_statement "{\n        iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;\n        iVar25 = *(int *)(pcVar31 + 0x2efa24);\n        if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }\n        goto LAB_001d20b4;\n      }" { (expression_statement "iVar13 = *(int *)&(pCVar24->_M_t)._M_impl;" (assignment_expression "iVar13 = *(int *)&(pCVar24->_M_t)._M_impl" identifier = (pointer_expression "*(int *)&(pCVar24->_M_t)._M_impl" * (cast_expression "(int *)&(pCVar24->_M_t)._M_impl" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pCVar24->_M_t)._M_impl" & (field_expression "(pCVar24->_M_t)._M_impl" (parenthesized_expression "(pCVar24->_M_t)" ( (field_expression "pCVar24->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "iVar25 = *(int *)(pcVar31 + 0x2efa24);" (assignment_expression "iVar25 = *(int *)(pcVar31 + 0x2efa24)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x2efa24)" * (cast_expression "(int *)(pcVar31 + 0x2efa24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2efa24)" ( (binary_expression "pcVar31 + 0x2efa24" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 != 0) {\n          return *(uint *)(iVar13 + 8);\n        }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          return *(uint *)(iVar13 + 8);\n        }" { (return_statement "return *(uint *)(iVar13 + 8);" return (pointer_expression "*(uint *)(iVar13 + 8)" * (cast_expression "(uint *)(iVar13 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) ;) })) (goto_statement "goto LAB_001d20b4;" goto statement_identifier ;) })) (expression_statement "pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl;" (assignment_expression "pCVar14 = *(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" identifier = (pointer_expression "*(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" * (cast_expression "(Compressed_section_map **)&(pCVar15->_M_t)._M_impl" ( (type_descriptor "Compressed_section_map **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(pCVar15->_M_t)._M_impl" & (field_expression "(pCVar15->_M_t)._M_impl" (parenthesized_expression "(pCVar15->_M_t)" ( (field_expression "pCVar15->_M_t" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "pCVar26 = pCVar14;" (assignment_expression "pCVar26 = pCVar14" identifier = identifier) ;) (if_statement "if (pCVar14 == (Compressed_section_map *)0x0) break;" if (parenthesized_expression "(pCVar14 == (Compressed_section_map *)0x0)" ( (binary_expression "pCVar14 == (Compressed_section_map *)0x0" identifier == (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color;" (assignment_expression "_Var9 = (pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" identifier = (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar14->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar14->_M_t)._M_impl" (parenthesized_expression "(pCVar14->_M_t)" ( (field_expression "pCVar14->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (uVar23 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pCVar26 = (Compressed_section_map *)(_Var9 % uVar23);" (assignment_expression "pCVar26 = (Compressed_section_map *)(_Var9 % uVar23)" identifier = (cast_expression "(Compressed_section_map *)(_Var9 % uVar23)" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_Var9 % uVar23)" ( (binary_expression "_Var9 % uVar23" identifier % identifier) )))) ;) (expression_statement "pCVar24 = pCVar15;" (assignment_expression "pCVar24 = pCVar15" identifier = identifier) ;) }) while (parenthesized_expression "((Compressed_section_map *)(_Var21 % uVar23) == pCVar26)" ( (binary_expression "(Compressed_section_map *)(_Var21 % uVar23) == pCVar26" (cast_expression "(Compressed_section_map *)(_Var21 % uVar23)" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_Var21 % uVar23)" ( (binary_expression "_Var21 % uVar23" identifier % identifier) ))) == identifier) )) ;) })) (expression_statement "iVar25 = *(int *)(pcVar31 + 0x2efa24);" (assignment_expression "iVar25 = *(int *)(pcVar31 + 0x2efa24)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x2efa24)" * (cast_expression "(int *)(pcVar31 + 0x2efa24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2efa24)" ( (binary_expression "pcVar31 + 0x2efa24" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d20b4:\n  pcVar30 = *(code **)(pcVar31 + 0x2efa04);" statement_identifier : (expression_statement "pcVar30 = *(code **)(pcVar31 + 0x2efa04);" (assignment_expression "pcVar30 = *(code **)(pcVar31 + 0x2efa04)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x2efa04)" * (cast_expression "(code **)(pcVar31 + 0x2efa04)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2efa04)" ( (binary_expression "pcVar31 + 0x2efa04" identifier + number_literal) ))))) ;)) (expression_statement "iVar25 = iVar25 + 0x5ea4;" (assignment_expression "iVar25 = iVar25 + 0x5ea4" identifier = (binary_expression "iVar25 + 0x5ea4" identifier + number_literal)) ;) (expression_statement "iVar13 = *(int *)(pcVar31 + 0x2efa24) + 0x4d70;" (assignment_expression "iVar13 = *(int *)(pcVar31 + 0x2efa24) + 0x4d70" identifier = (binary_expression "*(int *)(pcVar31 + 0x2efa24) + 0x4d70" (pointer_expression "*(int *)(pcVar31 + 0x2efa24)" * (cast_expression "(int *)(pcVar31 + 0x2efa24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2efa24)" ( (binary_expression "pcVar31 + 0x2efa24" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar30)(iVar13,0x8a7);" (call_expression "(*pcVar30)(iVar13,0x8a7)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(iVar13,0x8a7)" ( identifier , number_literal ))) ;) (expression_statement "pOVar16 = (Object *)&SUB_0000000c;" (assignment_expression "pOVar16 = (Object *)&SUB_0000000c" identifier = (cast_expression "(Object *)&SUB_0000000c" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_0000000c" & identifier))) ;) (expression_statement "uVar23 = *(uint *)(iVar13 + 0x28);" (assignment_expression "uVar23 = *(uint *)(iVar13 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar13 + 0x28)" * (cast_expression "(uint *)(iVar13 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x28)" ( (binary_expression "iVar13 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar1 = (undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))();" (assignment_expression "puVar1 = (undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar30 + 0x2ef2d0))()" (parenthesized_expression "(**(code **)(pcVar30 + 0x2ef2d0))" ( (pointer_expression "**(code **)(pcVar30 + 0x2ef2d0)" * (pointer_expression "*(code **)(pcVar30 + 0x2ef2d0)" * (cast_expression "(code **)(pcVar30 + 0x2ef2d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2ef2d0)" ( (binary_expression "pcVar30 + 0x2ef2d0" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar23 == 0) {\n    *(undefined4 **)(iVar13 + 0x44) = puVar1;\n    puVar1[1] = 0;\n    return (uint)puVar1;\n  }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 **)(iVar13 + 0x44) = puVar1;\n    puVar1[1] = 0;\n    return (uint)puVar1;\n  }" { (expression_statement "*(undefined4 **)(iVar13 + 0x44) = puVar1;" (assignment_expression "*(undefined4 **)(iVar13 + 0x44) = puVar1" (pointer_expression "*(undefined4 **)(iVar13 + 0x44)" * (cast_expression "(undefined4 **)(iVar13 + 0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x44)" ( (binary_expression "iVar13 + 0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return (uint)puVar1;" return (cast_expression "(uint)puVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) (if_statement "if (uVar23 < 0x40000000) {\n    puVar2 = (undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))(uVar23 * 4);\n    puVar17 = puVar2 + uVar23;\n    *puVar1 = puVar2;\n    puVar1[2] = puVar17;\n    do {\n      *puVar2 = 0;\n      puVar2 = puVar2 + 1;\n    } while (puVar17 != puVar2);\n    *(undefined4 **)(iVar13 + 0x44) = puVar1;\n    puVar1[1] = puVar17;\n    return (uint)puVar2;\n  }" if (parenthesized_expression "(uVar23 < 0x40000000)" ( (binary_expression "uVar23 < 0x40000000" identifier < number_literal) )) (compound_statement "{\n    puVar2 = (undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))(uVar23 * 4);\n    puVar17 = puVar2 + uVar23;\n    *puVar1 = puVar2;\n    puVar1[2] = puVar17;\n    do {\n      *puVar2 = 0;\n      puVar2 = puVar2 + 1;\n    } while (puVar17 != puVar2);\n    *(undefined4 **)(iVar13 + 0x44) = puVar1;\n    puVar1[1] = puVar17;\n    return (uint)puVar2;\n  }" { (expression_statement "puVar2 = (undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))(uVar23 * 4);" (assignment_expression "puVar2 = (undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))(uVar23 * 4)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar30 + 0x2ef2d0))(uVar23 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar30 + 0x2ef2d0))(uVar23 * 4)" (parenthesized_expression "(**(code **)(pcVar30 + 0x2ef2d0))" ( (pointer_expression "**(code **)(pcVar30 + 0x2ef2d0)" * (pointer_expression "*(code **)(pcVar30 + 0x2ef2d0)" * (cast_expression "(code **)(pcVar30 + 0x2ef2d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2ef2d0)" ( (binary_expression "pcVar30 + 0x2ef2d0" identifier + number_literal) ))))) )) (argument_list "(uVar23 * 4)" ( (binary_expression "uVar23 * 4" identifier * number_literal) ))))) ;) (expression_statement "puVar17 = puVar2 + uVar23;" (assignment_expression "puVar17 = puVar2 + uVar23" identifier = (binary_expression "puVar2 + uVar23" identifier + identifier)) ;) (expression_statement "*puVar1 = puVar2;" (assignment_expression "*puVar1 = puVar2" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[2] = puVar17;" (assignment_expression "puVar1[2] = puVar17" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (do_statement "do {\n      *puVar2 = 0;\n      puVar2 = puVar2 + 1;\n    } while (puVar17 != puVar2);" do (compound_statement "{\n      *puVar2 = 0;\n      puVar2 = puVar2 + 1;\n    }" { (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" identifier = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar17 != puVar2)" ( (binary_expression "puVar17 != puVar2" identifier != identifier) )) ;) (expression_statement "*(undefined4 **)(iVar13 + 0x44) = puVar1;" (assignment_expression "*(undefined4 **)(iVar13 + 0x44) = puVar1" (pointer_expression "*(undefined4 **)(iVar13 + 0x44)" * (cast_expression "(undefined4 **)(iVar13 + 0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x44)" ( (binary_expression "iVar13 + 0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1[1] = puVar17;" (assignment_expression "puVar1[1] = puVar17" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return (uint)puVar2;" return (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) (expression_statement "(**(code **)(pcVar30 + 0x2ef9e8))();" (call_expression "(**(code **)(pcVar30 + 0x2ef9e8))()" (parenthesized_expression "(**(code **)(pcVar30 + 0x2ef9e8))" ( (pointer_expression "**(code **)(pcVar30 + 0x2ef9e8)" * (pointer_expression "*(code **)(pcVar30 + 0x2ef9e8)" * (cast_expression "(code **)(pcVar30 + 0x2ef9e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2ef9e8)" ( (binary_expression "pcVar30 + 0x2ef9e8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar11 = 0xc;" (assignment_expression "uVar11 = 0xc" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar30 + 0x2ef34c))(puVar1);" (call_expression "(**(code **)(pcVar30 + 0x2ef34c))(puVar1)" (parenthesized_expression "(**(code **)(pcVar30 + 0x2ef34c))" ( (pointer_expression "**(code **)(pcVar30 + 0x2ef34c)" * (pointer_expression "*(code **)(pcVar30 + 0x2ef34c)" * (cast_expression "(code **)(pcVar30 + 0x2ef34c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2ef34c)" ( (binary_expression "pcVar30 + 0x2ef34c" identifier + number_literal) ))))) )) (argument_list "(puVar1)" ( identifier ))) ;) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x2ef1f0);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x2ef1f0)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x2ef1f0)" * (cast_expression "(code **)(pcVar30 + 0x2ef1f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x2ef1f0)" ( (binary_expression "pcVar30 + 0x2ef1f0" identifier + number_literal) ))))) ;) (expression_statement "this_00 = pOVar16;" (assignment_expression "this_00 = pOVar16" identifier = identifier) ;) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar3 = (byte *)((int)&(pCVar26->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color + 3);" (assignment_expression "pbVar3 = (byte *)((int)&(pCVar26->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color + 3)" identifier = (cast_expression "(byte *)((int)&(pCVar26->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pCVar26->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color + 3)" ( (binary_expression "(int)&(pCVar26->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color + 3" (cast_expression "(int)&(pCVar26->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pCVar26->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" & (field_expression "(pCVar26->_M_t)._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(pCVar26->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar26->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar26->_M_t)._M_impl" (parenthesized_expression "(pCVar26->_M_t)" ( (field_expression "pCVar26->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) ;) (expression_statement "uVar23 = (uint)(pbVar3 < pCVar26);" (assignment_expression "uVar23 = (uint)(pbVar3 < pCVar26)" identifier = (call_expression "(uint)(pbVar3 < pCVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar3 < pCVar26)" ( (binary_expression "pbVar3 < pCVar26" identifier < identifier) )))) ;) (expression_statement "pCVar24 = (Compressed_section_map *)((uint)pbVar3 & 0xfffffff8);" (assignment_expression "pCVar24 = (Compressed_section_map *)((uint)pbVar3 & 0xfffffff8)" identifier = (cast_expression "(Compressed_section_map *)((uint)pbVar3 & 0xfffffff8)" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pbVar3 & 0xfffffff8)" ( (binary_expression "(uint)pbVar3 & 0xfffffff8" (cast_expression "(uint)pbVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "pOStack_118 = pOVar16;" (assignment_expression "pOStack_118 = pOVar16" identifier = identifier) ;) (expression_statement "puStack_114 = puVar1;" (assignment_expression "puStack_114 = puVar1" identifier = identifier) ;) (expression_statement "iStack_110 = iVar13;" (assignment_expression "iStack_110 = iVar13" identifier = identifier) ;) (if_statement "if ((uVar23 == 0) && (pCVar24 == pCVar26)) {\n    this_00[3].compressed_sections_ = pCVar24;\n    piVar4 = *(int **)(pcVar31 + 0x2ef7e0);\n    uVar19 = *(uint *)((int)&this_00[3].name_.field_2 + 4);\n    this_00[3].xindex_ = (Xindex *)(uVar23 + iVar25);\n    if (*(int *)(*piVar4 + 8) != 0) {\n      uStack_12c = (uint)*(byte *)(*(int *)(*piVar4 + 8) + 0x3195);\n      if (uVar19 < 2) {\n        return uVar11;\n      }\n      sVar5 = this_00[4].name_._M_string_length;\n      puVar8 = (uint *)(sVar5 + 0x18);\n      uVar23 = 1;\n      if ((*(uint *)(sVar5 + 0x20) & 1) == 0) {\n        uVar22 = 0x96c;\n      }\n      else {\n        iStack_128 = *(int *)(pcVar31 + 0x2ef87c);\n        uVar32 = (ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c);\n        iStack_130 = *(int *)(pcVar31 + 0x2ef87c) + 0x4f3c;\n        do {\n          uVar20 = puVar8[2] >> 5;\n          if (-1 < (int)(puVar8[2] << 0x1b)) {\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }\n          if (uVar20 < this_00->shnum_) {\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          uVar23 = uVar23 + 1;\n          puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);\n          uVar22 = 0x96c;\n        } while ((puVar8[2] & 1) != 0);\n      }\n      goto LAB_001d283c;\n    }\n  }\n  else {\nLAB_001d28b8:\n    (**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,0xa1a,*(int *)(pcVar31 + 0x2ef87c) + 0x5738);\n  }" if (parenthesized_expression "((uVar23 == 0) && (pCVar24 == pCVar26))" ( (binary_expression "(uVar23 == 0) && (pCVar24 == pCVar26)" (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(pCVar24 == pCVar26)" ( (binary_expression "pCVar24 == pCVar26" identifier == identifier) ))) )) (compound_statement "{\n    this_00[3].compressed_sections_ = pCVar24;\n    piVar4 = *(int **)(pcVar31 + 0x2ef7e0);\n    uVar19 = *(uint *)((int)&this_00[3].name_.field_2 + 4);\n    this_00[3].xindex_ = (Xindex *)(uVar23 + iVar25);\n    if (*(int *)(*piVar4 + 8) != 0) {\n      uStack_12c = (uint)*(byte *)(*(int *)(*piVar4 + 8) + 0x3195);\n      if (uVar19 < 2) {\n        return uVar11;\n      }\n      sVar5 = this_00[4].name_._M_string_length;\n      puVar8 = (uint *)(sVar5 + 0x18);\n      uVar23 = 1;\n      if ((*(uint *)(sVar5 + 0x20) & 1) == 0) {\n        uVar22 = 0x96c;\n      }\n      else {\n        iStack_128 = *(int *)(pcVar31 + 0x2ef87c);\n        uVar32 = (ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c);\n        iStack_130 = *(int *)(pcVar31 + 0x2ef87c) + 0x4f3c;\n        do {\n          uVar20 = puVar8[2] >> 5;\n          if (-1 < (int)(puVar8[2] << 0x1b)) {\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }\n          if (uVar20 < this_00->shnum_) {\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          uVar23 = uVar23 + 1;\n          puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);\n          uVar22 = 0x96c;\n        } while ((puVar8[2] & 1) != 0);\n      }\n      goto LAB_001d283c;\n    }\n  }" { (expression_statement "this_00[3].compressed_sections_ = pCVar24;" (assignment_expression "this_00[3].compressed_sections_ = pCVar24" (field_expression "this_00[3].compressed_sections_" (subscript_expression "this_00[3]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "piVar4 = *(int **)(pcVar31 + 0x2ef7e0);" (assignment_expression "piVar4 = *(int **)(pcVar31 + 0x2ef7e0)" identifier = (pointer_expression "*(int **)(pcVar31 + 0x2ef7e0)" * (cast_expression "(int **)(pcVar31 + 0x2ef7e0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef7e0)" ( (binary_expression "pcVar31 + 0x2ef7e0" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *(uint *)((int)&this_00[3].name_.field_2 + 4);" (assignment_expression "uVar19 = *(uint *)((int)&this_00[3].name_.field_2 + 4)" identifier = (pointer_expression "*(uint *)((int)&this_00[3].name_.field_2 + 4)" * (cast_expression "(uint *)((int)&this_00[3].name_.field_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_00[3].name_.field_2 + 4)" ( (binary_expression "(int)&this_00[3].name_.field_2 + 4" (cast_expression "(int)&this_00[3].name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_00[3].name_.field_2" & (field_expression "this_00[3].name_.field_2" (field_expression "this_00[3].name_" (subscript_expression "this_00[3]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "this_00[3].xindex_ = (Xindex *)(uVar23 + iVar25);" (assignment_expression "this_00[3].xindex_ = (Xindex *)(uVar23 + iVar25)" (field_expression "this_00[3].xindex_" (subscript_expression "this_00[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Xindex *)(uVar23 + iVar25)" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar23 + iVar25)" ( (binary_expression "uVar23 + iVar25" identifier + identifier) )))) ;) (if_statement "if (*(int *)(*piVar4 + 8) != 0) {\n      uStack_12c = (uint)*(byte *)(*(int *)(*piVar4 + 8) + 0x3195);\n      if (uVar19 < 2) {\n        return uVar11;\n      }\n      sVar5 = this_00[4].name_._M_string_length;\n      puVar8 = (uint *)(sVar5 + 0x18);\n      uVar23 = 1;\n      if ((*(uint *)(sVar5 + 0x20) & 1) == 0) {\n        uVar22 = 0x96c;\n      }\n      else {\n        iStack_128 = *(int *)(pcVar31 + 0x2ef87c);\n        uVar32 = (ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c);\n        iStack_130 = *(int *)(pcVar31 + 0x2ef87c) + 0x4f3c;\n        do {\n          uVar20 = puVar8[2] >> 5;\n          if (-1 < (int)(puVar8[2] << 0x1b)) {\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }\n          if (uVar20 < this_00->shnum_) {\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          uVar23 = uVar23 + 1;\n          puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);\n          uVar22 = 0x96c;\n        } while ((puVar8[2] & 1) != 0);\n      }\n      goto LAB_001d283c;\n    }" if (parenthesized_expression "(*(int *)(*piVar4 + 8) != 0)" ( (binary_expression "*(int *)(*piVar4 + 8) != 0" (pointer_expression "*(int *)(*piVar4 + 8)" * (cast_expression "(int *)(*piVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + 8)" ( (binary_expression "*piVar4 + 8" (pointer_expression "*piVar4" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uStack_12c = (uint)*(byte *)(*(int *)(*piVar4 + 8) + 0x3195);\n      if (uVar19 < 2) {\n        return uVar11;\n      }\n      sVar5 = this_00[4].name_._M_string_length;\n      puVar8 = (uint *)(sVar5 + 0x18);\n      uVar23 = 1;\n      if ((*(uint *)(sVar5 + 0x20) & 1) == 0) {\n        uVar22 = 0x96c;\n      }\n      else {\n        iStack_128 = *(int *)(pcVar31 + 0x2ef87c);\n        uVar32 = (ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c);\n        iStack_130 = *(int *)(pcVar31 + 0x2ef87c) + 0x4f3c;\n        do {\n          uVar20 = puVar8[2] >> 5;\n          if (-1 < (int)(puVar8[2] << 0x1b)) {\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }\n          if (uVar20 < this_00->shnum_) {\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          uVar23 = uVar23 + 1;\n          puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);\n          uVar22 = 0x96c;\n        } while ((puVar8[2] & 1) != 0);\n      }\n      goto LAB_001d283c;\n    }" { (expression_statement "uStack_12c = (uint)*(byte *)(*(int *)(*piVar4 + 8) + 0x3195);" (assignment_expression "uStack_12c = (uint)*(byte *)(*(int *)(*piVar4 + 8) + 0x3195)" identifier = (binary_expression "(uint)*(byte *)(*(int *)(*piVar4 + 8) + 0x3195)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(*piVar4 + 8) + 0x3195)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar4 + 8) + 0x3195)" ( (binary_expression "*(int *)(*piVar4 + 8) + 0x3195" (pointer_expression "*(int *)(*piVar4 + 8)" * (cast_expression "(int *)(*piVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + 8)" ( (binary_expression "*piVar4 + 8" (pointer_expression "*piVar4" * identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (uVar19 < 2) {\n        return uVar11;\n      }" if (parenthesized_expression "(uVar19 < 2)" ( (binary_expression "uVar19 < 2" identifier < number_literal) )) (compound_statement "{\n        return uVar11;\n      }" { (return_statement "return uVar11;" return identifier ;) })) (expression_statement "sVar5 = this_00[4].name_._M_string_length;" (assignment_expression "sVar5 = this_00[4].name_._M_string_length" identifier = (field_expression "this_00[4].name_._M_string_length" (field_expression "this_00[4].name_" (subscript_expression "this_00[4]" identifier [ number_literal ]) . field_identifier) . field_identifier)) ;) (expression_statement "puVar8 = (uint *)(sVar5 + 0x18);" (assignment_expression "puVar8 = (uint *)(sVar5 + 0x18)" identifier = (cast_expression "(uint *)(sVar5 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar5 + 0x18)" ( (binary_expression "sVar5 + 0x18" identifier + number_literal) )))) ;) (expression_statement "uVar23 = 1;" (assignment_expression "uVar23 = 1" identifier = number_literal) ;) (if_statement "if ((*(uint *)(sVar5 + 0x20) & 1) == 0) {\n        uVar22 = 0x96c;\n      }\n      else {\n        iStack_128 = *(int *)(pcVar31 + 0x2ef87c);\n        uVar32 = (ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c);\n        iStack_130 = *(int *)(pcVar31 + 0x2ef87c) + 0x4f3c;\n        do {\n          uVar20 = puVar8[2] >> 5;\n          if (-1 < (int)(puVar8[2] << 0x1b)) {\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }\n          if (uVar20 < this_00->shnum_) {\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          uVar23 = uVar23 + 1;\n          puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);\n          uVar22 = 0x96c;\n        } while ((puVar8[2] & 1) != 0);\n      }" if (parenthesized_expression "((*(uint *)(sVar5 + 0x20) & 1) == 0)" ( (binary_expression "(*(uint *)(sVar5 + 0x20) & 1) == 0" (parenthesized_expression "(*(uint *)(sVar5 + 0x20) & 1)" ( (binary_expression "*(uint *)(sVar5 + 0x20) & 1" (pointer_expression "*(uint *)(sVar5 + 0x20)" * (cast_expression "(uint *)(sVar5 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar5 + 0x20)" ( (binary_expression "sVar5 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar22 = 0x96c;\n      }" { (expression_statement "uVar22 = 0x96c;" (assignment_expression "uVar22 = 0x96c" identifier = number_literal) ;) }) (else_clause "else {\n        iStack_128 = *(int *)(pcVar31 + 0x2ef87c);\n        uVar32 = (ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c);\n        iStack_130 = *(int *)(pcVar31 + 0x2ef87c) + 0x4f3c;\n        do {\n          uVar20 = puVar8[2] >> 5;\n          if (-1 < (int)(puVar8[2] << 0x1b)) {\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }\n          if (uVar20 < this_00->shnum_) {\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          uVar23 = uVar23 + 1;\n          puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);\n          uVar22 = 0x96c;\n        } while ((puVar8[2] & 1) != 0);\n      }" else (compound_statement "{\n        iStack_128 = *(int *)(pcVar31 + 0x2ef87c);\n        uVar32 = (ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c);\n        iStack_130 = *(int *)(pcVar31 + 0x2ef87c) + 0x4f3c;\n        do {\n          uVar20 = puVar8[2] >> 5;\n          if (-1 < (int)(puVar8[2] << 0x1b)) {\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }\n          if (uVar20 < this_00->shnum_) {\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          uVar23 = uVar23 + 1;\n          puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);\n          uVar22 = 0x96c;\n        } while ((puVar8[2] & 1) != 0);\n      }" { (expression_statement "iStack_128 = *(int *)(pcVar31 + 0x2ef87c);" (assignment_expression "iStack_128 = *(int *)(pcVar31 + 0x2ef87c)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) ))))) ;) (expression_statement "uVar32 = (ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c);" (assignment_expression "uVar32 = (ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c)" identifier = (binary_expression "(ulonglong)*(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar31 + 0x2ef0a8) + 0x355c)" ( (binary_expression "*(int *)(pcVar31 + 0x2ef0a8) + 0x355c" (pointer_expression "*(int *)(pcVar31 + 0x2ef0a8)" * (cast_expression "(int *)(pcVar31 + 0x2ef0a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef0a8)" ( (binary_expression "pcVar31 + 0x2ef0a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iStack_130 = *(int *)(pcVar31 + 0x2ef87c) + 0x4f3c;" (assignment_expression "iStack_130 = *(int *)(pcVar31 + 0x2ef87c) + 0x4f3c" identifier = (binary_expression "*(int *)(pcVar31 + 0x2ef87c) + 0x4f3c" (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) )))) + number_literal)) ;) (do_statement "do {\n          uVar20 = puVar8[2] >> 5;\n          if (-1 < (int)(puVar8[2] << 0x1b)) {\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }\n          if (uVar20 < this_00->shnum_) {\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          uVar23 = uVar23 + 1;\n          puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);\n          uVar22 = 0x96c;\n        } while ((puVar8[2] & 1) != 0);" do (compound_statement "{\n          uVar20 = puVar8[2] >> 5;\n          if (-1 < (int)(puVar8[2] << 0x1b)) {\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }\n          if (uVar20 < this_00->shnum_) {\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          uVar23 = uVar23 + 1;\n          puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);\n          uVar22 = 0x96c;\n        }" { (expression_statement "uVar20 = puVar8[2] >> 5;" (assignment_expression "uVar20 = puVar8[2] >> 5" identifier = (binary_expression "puVar8[2] >> 5" (subscript_expression "puVar8[2]" identifier [ number_literal ]) >> number_literal)) ;) (if_statement "if (-1 < (int)(puVar8[2] << 0x1b)) {\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }" if (parenthesized_expression "(-1 < (int)(puVar8[2] << 0x1b))" ( (binary_expression "-1 < (int)(puVar8[2] << 0x1b)" number_literal < (cast_expression "(int)(puVar8[2] << 0x1b)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar8[2] << 0x1b)" ( (binary_expression "puVar8[2] << 0x1b" (subscript_expression "puVar8[2]" identifier [ number_literal ]) << number_literal) )))) )) (compound_statement "{\n            if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }\n            goto LAB_001d22bc;\n          }" { (if_statement "if ((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)) {\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }" if (parenthesized_expression "((uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0))" ( (binary_expression "(uVar20 != 0xfff1) &&\n               (iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)" (parenthesized_expression "(uVar20 != 0xfff1)" ( (binary_expression "uVar20 != 0xfff1" identifier != number_literal) )) && (parenthesized_expression "(iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0)" ( (comma_expression "iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20), iVar13 == 0" (assignment_expression "iVar13 = (**(code **)(pcVar31 + 0x2efaf8))(uVar20)" identifier = (call_expression "(**(code **)(pcVar31 + 0x2efaf8))(uVar20)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2efaf8))" ( (pointer_expression "**(code **)(pcVar31 + 0x2efaf8)" * (pointer_expression "*(code **)(pcVar31 + 0x2efaf8)" * (cast_expression "(code **)(pcVar31 + 0x2efaf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2efaf8)" ( (binary_expression "pcVar31 + 0x2efaf8" identifier + number_literal) ))))) )) (argument_list "(uVar20)" ( identifier )))) , (binary_expression "iVar13 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);\n              uVar28 = uVar20;\n              uVar20 = uVar23;\n              goto LAB_001d24f0;\n            }" { (expression_statement "format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c);" (assignment_expression "format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c)" identifier = (cast_expression "(char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar31 + 0x2f3a5c))(iStack_128 + 0x4f0c)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2f3a5c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2f3a5c)" * (pointer_expression "*(code **)(pcVar31 + 0x2f3a5c)" * (cast_expression "(code **)(pcVar31 + 0x2f3a5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2f3a5c)" ( (binary_expression "pcVar31 + 0x2f3a5c" identifier + number_literal) ))))) )) (argument_list "(iStack_128 + 0x4f0c)" ( (binary_expression "iStack_128 + 0x4f0c" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = uVar20;" (assignment_expression "uVar28 = uVar20" identifier = identifier) ;) (expression_statement "uVar20 = uVar23;" (assignment_expression "uVar20 = uVar23" identifier = identifier) ;) (goto_statement "goto LAB_001d24f0;" goto statement_identifier ;) })) (goto_statement "goto LAB_001d22bc;" goto statement_identifier ;) })) (if_statement "if (uVar20 < this_00->shnum_) {\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }\n          else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }" if (parenthesized_expression "(uVar20 < this_00->shnum_)" ( (binary_expression "uVar20 < this_00->shnum_" identifier < (field_expression "this_00->shnum_" identifier -> field_identifier)) )) (compound_statement "{\n            piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);\n            p_Var27 = this_00[1]._vptr_Object[uVar20];\n            iVar25 = *piVar4;\n            uVar28 = piVar4[1];\n            iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);\n            if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }\n            if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;\nLAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }\n            if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }\n            if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }\nLAB_001d22bc:\n            uVar20 = *puVar8;\n            if (uVar20 == 0) goto LAB_001d22cc;\nLAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }" { (expression_statement "piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8);" (assignment_expression "piVar4 = (int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8)" identifier = (cast_expression "(int *)(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8)" ( (binary_expression "*(int *)((int)&this_00[2].name_.field_2 + 8) + uVar20 * 8" (pointer_expression "*(int *)((int)&this_00[2].name_.field_2 + 8)" * (cast_expression "(int *)((int)&this_00[2].name_.field_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_00[2].name_.field_2 + 8)" ( (binary_expression "(int)&this_00[2].name_.field_2 + 8" (cast_expression "(int)&this_00[2].name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_00[2].name_.field_2" & (field_expression "this_00[2].name_.field_2" (field_expression "this_00[2].name_" (subscript_expression "this_00[2]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) + (binary_expression "uVar20 * 8" identifier * number_literal)) )))) ;) (expression_statement "p_Var27 = this_00[1]._vptr_Object[uVar20];" (assignment_expression "p_Var27 = this_00[1]._vptr_Object[uVar20]" identifier = (subscript_expression "this_00[1]._vptr_Object[uVar20]" (field_expression "this_00[1]._vptr_Object" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) [ identifier ])) ;) (expression_statement "iVar25 = *piVar4;" (assignment_expression "iVar25 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar28 = piVar4[1];" (assignment_expression "uVar28 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20);" (assignment_expression "iVar13 = (**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20)" identifier = (call_expression "(**(code **)(pcVar31 + 0x2ef970))(pcVar30 + 0x2f7168,this_00,uVar20)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2ef970))" ( (pointer_expression "**(code **)(pcVar31 + 0x2ef970)" * (pointer_expression "*(code **)(pcVar31 + 0x2ef970)" * (cast_expression "(code **)(pcVar31 + 0x2ef970)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef970)" ( (binary_expression "pcVar31 + 0x2ef970" identifier + number_literal) ))))) )) (argument_list "(pcVar30 + 0x2f7168,this_00,uVar20)" ( (binary_expression "pcVar30 + 0x2f7168" identifier + number_literal) , identifier , identifier )))) ;) (if_statement "if (iVar13 != 0) {\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n              if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;\n              uVar22 = 0x98d;\n              if (iVar25 != -1) break;\n              if (uVar28 != 0xffffffff) goto LAB_001d28f0;\n              (**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);\n              if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }\n              uVar22 = 0x991;\n              break;\n            }" { (if_statement "if (p_Var27 != (_func_int_varargs *)0x0) goto LAB_001d28f0;" if (parenthesized_expression "(p_Var27 != (_func_int_varargs *)0x0)" ( (binary_expression "p_Var27 != (_func_int_varargs *)0x0" identifier != (cast_expression "(_func_int_varargs *)0x0" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001d28f0;" goto statement_identifier ;)) (expression_statement "uVar22 = 0x98d;" (assignment_expression "uVar22 = 0x98d" identifier = number_literal) ;) (if_statement "if (iVar25 != -1) break;" if (parenthesized_expression "(iVar25 != -1)" ( (binary_expression "iVar25 != -1" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (uVar28 != 0xffffffff) goto LAB_001d28f0;" if (parenthesized_expression "(uVar28 != 0xffffffff)" ( (binary_expression "uVar28 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_001d28f0;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20);" (call_expression "(**(code **)(pcVar31 + 0x2f1acc))\n                        (&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2f1acc))" ( (pointer_expression "**(code **)(pcVar31 + 0x2f1acc)" * (pointer_expression "*(code **)(pcVar31 + 0x2f1acc)" * (cast_expression "(code **)(pcVar31 + 0x2f1acc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2f1acc)" ( (binary_expression "pcVar31 + 0x2f1acc" identifier + number_literal) ))))) )) (argument_list "(&piStack_140,*(undefined4 *)(pcVar30 + 0x2f72d0),this_00,uVar20)" ( (pointer_expression "&piStack_140" & identifier) , (pointer_expression "*(undefined4 *)(pcVar30 + 0x2f72d0)" * (cast_expression "(undefined4 *)(pcVar30 + 0x2f72d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x2f72d0)" ( (binary_expression "pcVar30 + 0x2f72d0" identifier + number_literal) )))) , identifier , identifier ))) ;) (if_statement "if (piStack_140 != (int *)0x0) {\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }" if (parenthesized_expression "(piStack_140 != (int *)0x0)" ( (binary_expression "piStack_140 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }\n                uStack_124 = uStack_13c;\n                piStack_120 = piStack_140;\n                p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);\n                piVar4 = piStack_120;\n                uVar28 = uStack_124;\nLAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;\n                if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }\nLAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);\n              }" { (if_statement "if (*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)) {\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }" if (parenthesized_expression "(*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950))" ( (binary_expression "*(code **)(*piStack_140 + 0x60) == *(code **)(pcVar31 + 0x2ef950)" (pointer_expression "*(code **)(*piStack_140 + 0x60)" * (cast_expression "(code **)(*piStack_140 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piStack_140 + 0x60)" ( (binary_expression "*piStack_140 + 0x60" (pointer_expression "*piStack_140" * identifier) + number_literal) )))) == (pointer_expression "*(code **)(pcVar31 + 0x2ef950)" * (cast_expression "(code **)(pcVar31 + 0x2ef950)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef950)" ( (binary_expression "pcVar31 + 0x2ef950" identifier + number_literal) ))))) )) (compound_statement "{\n                  if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);\nLAB_001d2894:\n                  uVar22 = 0x99d;\n                  break;\n                }" { (if_statement "if (uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)) {\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }" if (parenthesized_expression "(uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2))" ( (binary_expression "uStack_13c < (uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)" identifier < (call_expression "(uint)(piStack_140[0xf] - piStack_140[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piStack_140[0xf] - piStack_140[0xe] >> 2)" ( (binary_expression "piStack_140[0xf] - piStack_140[0xe] >> 2" (binary_expression "piStack_140[0xf] - piStack_140[0xe]" (subscript_expression "piStack_140[0xf]" identifier [ number_literal ]) - (subscript_expression "piStack_140[0xe]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n                    p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);\n                    piVar4 = piStack_140;\n                    uVar28 = uStack_13c;\n                    goto LAB_001d23e4;\n                  }" { (expression_statement "p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4);" (assignment_expression "p_Var27 = *(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4)" identifier = (pointer_expression "*(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4)" * (cast_expression "(_func_int_varargs **)(piStack_140[0xe] + uStack_13c * 4)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piStack_140[0xe] + uStack_13c * 4)" ( (binary_expression "piStack_140[0xe] + uStack_13c * 4" (subscript_expression "piStack_140[0xe]" identifier [ number_literal ]) + (binary_expression "uStack_13c * 4" identifier * number_literal)) ))))) ;) (expression_statement "piVar4 = piStack_140;" (assignment_expression "piVar4 = piStack_140" identifier = identifier) ;) (expression_statement "uVar28 = uStack_13c;" (assignment_expression "uVar28 = uStack_13c" identifier = identifier) ;) (goto_statement "goto LAB_001d23e4;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8);" (call_expression "(**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2ef85c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2ef85c)" * (pointer_expression "*(code **)(pcVar31 + 0x2ef85c)" * (cast_expression "(code **)(pcVar31 + 0x2ef85c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef85c)" ( (binary_expression "pcVar31 + 0x2ef85c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x5c8,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x60f8)" ( (binary_expression "*(int *)(pcVar31 + 0x2ef0a8) + 0x4570" (pointer_expression "*(int *)(pcVar31 + 0x2ef0a8)" * (cast_expression "(int *)(pcVar31 + 0x2ef0a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef0a8)" ( (binary_expression "pcVar31 + 0x2ef0a8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar31 + 0x2ef87c) + 0x60f8" (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_001d2894:\n                  uVar22 = 0x99d;" statement_identifier : (expression_statement "uVar22 = 0x99d;" (assignment_expression "uVar22 = 0x99d" identifier = number_literal) ;)) (break_statement "break;" break ;) })) (expression_statement "uStack_124 = uStack_13c;" (assignment_expression "uStack_124 = uStack_13c" identifier = identifier) ;) (expression_statement "piStack_120 = piStack_140;" (assignment_expression "piStack_120 = piStack_140" identifier = identifier) ;) (expression_statement "p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c);" (assignment_expression "p_Var27 = (_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c)" identifier = (cast_expression "(_func_int_varargs *)\n                          (**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c)" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piStack_140 + 0x60))(piStack_140,uStack_13c)" (parenthesized_expression "(**(code **)(*piStack_140 + 0x60))" ( (pointer_expression "**(code **)(*piStack_140 + 0x60)" * (pointer_expression "*(code **)(*piStack_140 + 0x60)" * (cast_expression "(code **)(*piStack_140 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piStack_140 + 0x60)" ( (binary_expression "*piStack_140 + 0x60" (pointer_expression "*piStack_140" * identifier) + number_literal) ))))) )) (argument_list "(piStack_140,uStack_13c)" ( identifier , identifier ))))) ;) (expression_statement "piVar4 = piStack_120;" (assignment_expression "piVar4 = piStack_120" identifier = identifier) ;) (expression_statement "uVar28 = uStack_124;" (assignment_expression "uVar28 = uStack_124" identifier = identifier) ;) (labeled_statement "LAB_001d23e4:\n                if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;" statement_identifier : (if_statement "if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d2870;" if (parenthesized_expression "(p_Var27 == (_func_int_varargs *)0x0)" ( (binary_expression "p_Var27 == (_func_int_varargs *)0x0" identifier == (cast_expression "(_func_int_varargs *)0x0" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001d2870;" goto statement_identifier ;))) (if_statement "if (uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3)) {\n                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }" if (parenthesized_expression "(uVar28 < (uint)(piVar4[0x22] - piVar4[0x21] >> 3))" ( (binary_expression "uVar28 < (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                  piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);\n                  iVar25 = *piVar6;\n                  uVar28 = piVar6[1];\n                  if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;\n                  iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);\n                  if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }\n                  goto LAB_001d2894;\n                }" { (expression_statement "piVar6 = (int *)(piVar4[0x21] + uVar28 * 8);" (assignment_expression "piVar6 = (int *)(piVar4[0x21] + uVar28 * 8)" identifier = (cast_expression "(int *)(piVar4[0x21] + uVar28 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[0x21] + uVar28 * 8)" ( (binary_expression "piVar4[0x21] + uVar28 * 8" (subscript_expression "piVar4[0x21]" identifier [ number_literal ]) + (binary_expression "uVar28 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar25 = *piVar6;" (assignment_expression "iVar25 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "uVar28 = piVar6[1];" (assignment_expression "uVar28 = piVar6[1]" identifier = (subscript_expression "piVar6[1]" identifier [ number_literal ])) ;) (if_statement "if ((iVar25 != -1) || (uVar28 != 0xffffffff)) goto LAB_001d241c;" if (parenthesized_expression "((iVar25 != -1) || (uVar28 != 0xffffffff))" ( (binary_expression "(iVar25 != -1) || (uVar28 != 0xffffffff)" (parenthesized_expression "(iVar25 != -1)" ( (binary_expression "iVar25 != -1" identifier != number_literal) )) || (parenthesized_expression "(uVar28 != 0xffffffff)" ( (binary_expression "uVar28 != 0xffffffff" identifier != number_literal) ))) )) (goto_statement "goto LAB_001d241c;" goto statement_identifier ;)) (expression_statement "iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4);" (assignment_expression "iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4)" identifier = (call_expression "(**(code **)(pcVar31 + 0x2f1adc))(p_Var27,piVar4)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2f1adc))" ( (pointer_expression "**(code **)(pcVar31 + 0x2f1adc)" * (pointer_expression "*(code **)(pcVar31 + 0x2f1adc)" * (cast_expression "(code **)(pcVar31 + 0x2f1adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2f1adc)" ( (binary_expression "pcVar31 + 0x2f1adc" identifier + number_literal) ))))) )) (argument_list "(p_Var27,piVar4)" ( identifier , identifier )))) ;) (if_statement "if (iVar13 != 0) {\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                    if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);\n                    iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);\n                    goto LAB_001d2520;\n                  }" { (expression_statement "iVar25 = *(int *)(pcVar31 + 0x2ef87c);" (assignment_expression "iVar25 = *(int *)(pcVar31 + 0x2ef87c)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;" if (parenthesized_expression "(-1 < *(int *)(iVar13 + 0x20))" ( (binary_expression "-1 < *(int *)(iVar13 + 0x20)" number_literal < (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) ))))) )) (goto_statement "goto LAB_001d285c;" goto statement_identifier ;)) (if_statement "if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;" if (parenthesized_expression "(-1 < *(int *)(p_Var27 + 0x20))" ( (binary_expression "-1 < *(int *)(p_Var27 + 0x20)" number_literal < (pointer_expression "*(int *)(p_Var27 + 0x20)" * (cast_expression "(int *)(p_Var27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0x20)" ( (binary_expression "p_Var27 + 0x20" identifier + number_literal) ))))) )) (goto_statement "goto LAB_001d285c;" goto statement_identifier ;)) (expression_statement "uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc);" (assignment_expression "uVar28 = *(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc)" identifier = (binary_expression "*(uint *)(iVar13 + 0xc) - *(int *)(p_Var27 + 0xc)" (pointer_expression "*(uint *)(iVar13 + 0xc)" * (cast_expression "(uint *)(iVar13 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xc)" ( (binary_expression "iVar13 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(int *)(p_Var27 + 0xc)" * (cast_expression "(int *)(p_Var27 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0xc)" ( (binary_expression "p_Var27 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28);" (assignment_expression "iVar25 = (*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28)" identifier = (binary_expression "(*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)) -\n                             (uint)(*(uint *)(iVar13 + 0xc) < uVar28)" (parenthesized_expression "(*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8))" ( (binary_expression "*(int *)(iVar13 + 8) - *(int *)(p_Var27 + 8)" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) - (pointer_expression "*(int *)(p_Var27 + 8)" * (cast_expression "(int *)(p_Var27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 8)" ( (binary_expression "p_Var27 + 8" identifier + number_literal) ))))) )) - (call_expression "(uint)(*(uint *)(iVar13 + 0xc) < uVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar13 + 0xc) < uVar28)" ( (binary_expression "*(uint *)(iVar13 + 0xc) < uVar28" (pointer_expression "*(uint *)(iVar13 + 0xc)" * (cast_expression "(uint *)(iVar13 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xc)" ( (binary_expression "iVar13 + 0xc" identifier + number_literal) )))) < identifier) ))))) ;) (goto_statement "goto LAB_001d2520;" goto statement_identifier ;) })) (goto_statement "goto LAB_001d2894;" goto statement_identifier ;) })) (labeled_statement "LAB_001d2910:\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);" statement_identifier : (expression_statement "(**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0);" (call_expression "(**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2ef85c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2ef85c)" * (pointer_expression "*(code **)(pcVar31 + 0x2ef85c)" * (cast_expression "(code **)(pcVar31 + 0x2ef85c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef85c)" ( (binary_expression "pcVar31 + 0x2ef85c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x7f7,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x59c0)" ( (binary_expression "*(int *)(pcVar31 + 0x2ef0a8) + 0x4570" (pointer_expression "*(int *)(pcVar31 + 0x2ef0a8)" * (cast_expression "(int *)(pcVar31 + 0x2ef0a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef0a8)" ( (binary_expression "pcVar31 + 0x2ef0a8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar31 + 0x2ef87c) + 0x59c0" (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) )))) + number_literal) ))) ;)) })) (expression_statement "uVar22 = 0x991;" (assignment_expression "uVar22 = 0x991" identifier = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (p_Var27 == (_func_int_varargs *)0x0) goto LAB_001d22e4;" if (parenthesized_expression "(p_Var27 == (_func_int_varargs *)0x0)" ( (binary_expression "p_Var27 == (_func_int_varargs *)0x0" identifier == (cast_expression "(_func_int_varargs *)0x0" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001d22e4;" goto statement_identifier ;)) (labeled_statement "LAB_001d2520:\n            if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }" statement_identifier : (if_statement "if ((iVar25 != -1) || (uVar28 != 0xffffffff)) {\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }" if (parenthesized_expression "((iVar25 != -1) || (uVar28 != 0xffffffff))" ( (binary_expression "(iVar25 != -1) || (uVar28 != 0xffffffff)" (parenthesized_expression "(iVar25 != -1)" ( (binary_expression "iVar25 != -1" identifier != number_literal) )) || (parenthesized_expression "(uVar28 != 0xffffffff)" ( (binary_expression "uVar28 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\nLAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }\n              iVar13 = 0;\n              if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }\n              uVar20 = uVar28 + puVar8[5];\n              puVar8[5] = uVar20 + iVar18;\n              puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;\n              uVar20 = *puVar8;\n              if (uVar20 != 0) goto LAB_001d248c;\nLAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }\n              *puVar8 = uVar11;\n              uVar11 = uVar11 + 1;\n              goto LAB_001d22e4;\n            }" { (labeled_statement "LAB_001d241c:\n              if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }" statement_identifier : (if_statement "if (((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))) {\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }" if (parenthesized_expression "(((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0))))" ( (binary_expression "((int)(puVar8[2] << 0x1d) < 0) ||\n                 (((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))" (parenthesized_expression "((int)(puVar8[2] << 0x1d) < 0)" ( (binary_expression "(int)(puVar8[2] << 0x1d) < 0" (cast_expression "(int)(puVar8[2] << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar8[2] << 0x1d)" ( (binary_expression "puVar8[2] << 0x1d" (subscript_expression "puVar8[2]" identifier [ number_literal ]) << number_literal) ))) < number_literal) )) || (parenthesized_expression "(((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)))" ( (parenthesized_expression "((int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0))" ( (binary_expression "(int)(puVar8[2] << 0x1c) < 0 && ((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)" (binary_expression "(int)(puVar8[2] << 0x1c) < 0" (cast_expression "(int)(puVar8[2] << 0x1c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar8[2] << 0x1c)" ( (binary_expression "puVar8[2] << 0x1c" (subscript_expression "puVar8[2]" identifier [ number_literal ]) << number_literal) ))) < number_literal) && (parenthesized_expression "((*(uint *)(p_Var27 + 0x5c) & 0x400) != 0)" ( (binary_expression "(*(uint *)(p_Var27 + 0x5c) & 0x400) != 0" (parenthesized_expression "(*(uint *)(p_Var27 + 0x5c) & 0x400)" ( (binary_expression "*(uint *)(p_Var27 + 0x5c) & 0x400" (pointer_expression "*(uint *)(p_Var27 + 0x5c)" * (cast_expression "(uint *)(p_Var27 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0x5c)" ( (binary_expression "p_Var27 + 0x5c" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n                if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }\n                *(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);\n                goto LAB_001d22bc;\n              }" { (if_statement "if (*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)) {\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }\n                else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }" if (parenthesized_expression "(*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4))" ( (binary_expression "*(code **)(*(int *)p_Var27 + 0x48) == *(code **)(pcVar31 + 0x2f1ad4)" (pointer_expression "*(code **)(*(int *)p_Var27 + 0x48)" * (cast_expression "(code **)(*(int *)p_Var27 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)p_Var27 + 0x48)" ( (binary_expression "*(int *)p_Var27 + 0x48" (pointer_expression "*(int *)p_Var27" * (cast_expression "(int *)p_Var27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (pointer_expression "*(code **)(pcVar31 + 0x2f1ad4)" * (cast_expression "(code **)(pcVar31 + 0x2f1ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2f1ad4)" ( (binary_expression "pcVar31 + 0x2f1ad4" identifier + number_literal) ))))) )) (compound_statement "{\n                  lVar34 = *(longlong *)(p_Var27 + 0xa0);\n                }" { (expression_statement "lVar34 = *(longlong *)(p_Var27 + 0xa0);" (assignment_expression "lVar34 = *(longlong *)(p_Var27 + 0xa0)" identifier = (pointer_expression "*(longlong *)(p_Var27 + 0xa0)" * (cast_expression "(longlong *)(p_Var27 + 0xa0)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0xa0)" ( (binary_expression "p_Var27 + 0xa0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }" else (compound_statement "{\n                  lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);\n                }" { (expression_statement "lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27);" (assignment_expression "lVar34 = (**(code **)(*(int *)p_Var27 + 0x48))(p_Var27)" identifier = (call_expression "(**(code **)(*(int *)p_Var27 + 0x48))(p_Var27)" (parenthesized_expression "(**(code **)(*(int *)p_Var27 + 0x48))" ( (pointer_expression "**(code **)(*(int *)p_Var27 + 0x48)" * (pointer_expression "*(code **)(*(int *)p_Var27 + 0x48)" * (cast_expression "(code **)(*(int *)p_Var27 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)p_Var27 + 0x48)" ( (binary_expression "*(int *)p_Var27 + 0x48" (pointer_expression "*(int *)p_Var27" * (cast_expression "(int *)p_Var27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(p_Var27)" ( identifier )))) ;) }))) (expression_statement "*(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5]);" (assignment_expression "*(longlong *)(puVar8 + 4) =\n                     lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5])" (pointer_expression "*(longlong *)(puVar8 + 4)" * (cast_expression "(longlong *)(puVar8 + 4)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) = (binary_expression "lVar34 + CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5])" identifier + (call_expression "CONCAT44((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5])" identifier (argument_list "((uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4],\n                                       uVar28 + puVar8[5])" ( (binary_expression "(uint)(uVar28 + puVar8[5] < uVar28) + iVar25 + puVar8[4]" (binary_expression "(uint)(uVar28 + puVar8[5] < uVar28) + iVar25" (call_expression "(uint)(uVar28 + puVar8[5] < uVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar28 + puVar8[5] < uVar28)" ( (binary_expression "uVar28 + puVar8[5] < uVar28" (binary_expression "uVar28 + puVar8[5]" identifier + (subscript_expression "puVar8[5]" identifier [ number_literal ])) < identifier) ))) + identifier) + (subscript_expression "puVar8[4]" identifier [ number_literal ])) , (binary_expression "uVar28 + puVar8[5]" identifier + (subscript_expression "puVar8[5]" identifier [ number_literal ])) ))))) ;) (goto_statement "goto LAB_001d22bc;" goto statement_identifier ;) }))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (uStack_12c == 0) {\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }\n              else {\n                iVar18 = 0;\n              }" if (parenthesized_expression "(uStack_12c == 0)" ( (binary_expression "uStack_12c == 0" identifier == number_literal) )) (compound_statement "{\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;\n                iVar13 = *(int *)(p_Var27 + 8);\n                iVar18 = *(int *)(p_Var27 + 0xc);\n              }" { (if_statement "if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d2854;" if (parenthesized_expression "(-1 < *(int *)(p_Var27 + 0x20))" ( (binary_expression "-1 < *(int *)(p_Var27 + 0x20)" number_literal < (pointer_expression "*(int *)(p_Var27 + 0x20)" * (cast_expression "(int *)(p_Var27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0x20)" ( (binary_expression "p_Var27 + 0x20" identifier + number_literal) ))))) )) (goto_statement "goto LAB_001d2854;" goto statement_identifier ;)) (expression_statement "iVar13 = *(int *)(p_Var27 + 8);" (assignment_expression "iVar13 = *(int *)(p_Var27 + 8)" identifier = (pointer_expression "*(int *)(p_Var27 + 8)" * (cast_expression "(int *)(p_Var27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 8)" ( (binary_expression "p_Var27 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(p_Var27 + 0xc);" (assignment_expression "iVar18 = *(int *)(p_Var27 + 0xc)" identifier = (pointer_expression "*(int *)(p_Var27 + 0xc)" * (cast_expression "(int *)(p_Var27 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0xc)" ( (binary_expression "p_Var27 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                iVar18 = 0;\n              }" else (compound_statement "{\n                iVar18 = 0;\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar20 = uVar28 + puVar8[5];" (assignment_expression "uVar20 = uVar28 + puVar8[5]" identifier = (binary_expression "uVar28 + puVar8[5]" identifier + (subscript_expression "puVar8[5]" identifier [ number_literal ]))) ;) (expression_statement "puVar8[5] = uVar20 + iVar18;" (assignment_expression "puVar8[5] = uVar20 + iVar18" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = (binary_expression "uVar20 + iVar18" identifier + identifier)) ;) (expression_statement "puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13;" (assignment_expression "puVar8[4] = (uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4] + iVar13" (binary_expression "(uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25 + puVar8[4]" (binary_expression "(uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28) + iVar25" (binary_expression "(uint)(uVar20 + iVar18 < uVar20) +\n                          (uint)(uVar20 < uVar28)" (call_expression "(uint)(uVar20 + iVar18 < uVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 + iVar18 < uVar20)" ( (binary_expression "uVar20 + iVar18 < uVar20" (binary_expression "uVar20 + iVar18" identifier + identifier) < identifier) ))) + (call_expression "(uint)(uVar20 < uVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 < uVar28)" ( (binary_expression "uVar20 < uVar28" identifier < identifier) )))) + identifier) + (subscript_expression "puVar8[4]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar20 = *puVar8;" (assignment_expression "uVar20 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (if_statement "if (uVar20 != 0) goto LAB_001d248c;" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001d248c;" goto statement_identifier ;)) (labeled_statement "LAB_001d22cc:\n              if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }" statement_identifier : (if_statement "if (0xfffffffc < uVar11 - 1) {\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }" if (parenthesized_expression "(0xfffffffc < uVar11 - 1)" ( (binary_expression "0xfffffffc < uVar11 - 1" number_literal < (binary_expression "uVar11 - 1" identifier - number_literal)) )) (compound_statement "{\n                (**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);\n                goto LAB_001d2910;\n              }" { (expression_statement "(**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720);" (call_expression "(**(code **)(pcVar31 + 0x2ef85c))\n                          (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2ef85c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2ef85c)" * (pointer_expression "*(code **)(pcVar31 + 0x2ef85c)" * (cast_expression "(code **)(pcVar31 + 0x2ef85c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef85c)" ( (binary_expression "pcVar31 + 0x2ef85c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x70d,\n                           *(int *)(pcVar31 + 0x2ef87c) + 0x5720)" ( (binary_expression "*(int *)(pcVar31 + 0x2ef0a8) + 0x4570" (pointer_expression "*(int *)(pcVar31 + 0x2ef0a8)" * (cast_expression "(int *)(pcVar31 + 0x2ef0a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef0a8)" ( (binary_expression "pcVar31 + 0x2ef0a8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar31 + 0x2ef87c) + 0x5720" (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_001d2910;" goto statement_identifier ;) }))) (expression_statement "*puVar8 = uVar11;" (assignment_expression "*puVar8 = uVar11" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001d22e4;" goto statement_identifier ;) }))) (if_statement "if (*(int *)(p_Var27 + 0x60) == 0xf) {\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }" if (parenthesized_expression "(*(int *)(p_Var27 + 0x60) == 0xf)" ( (binary_expression "*(int *)(p_Var27 + 0x60) == 0xf" (pointer_expression "*(int *)(p_Var27 + 0x60)" * (cast_expression "(int *)(p_Var27 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0x60)" ( (binary_expression "p_Var27 + 0x60" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;\n              uVar22 = 0x9b5;\n              break;\n            }" { (if_statement "if (this_00[5].name_.field_2._M_local_buf[4] != '\0') goto LAB_001d22e4;" if (parenthesized_expression "(this_00[5].name_.field_2._M_local_buf[4] != '\0')" ( (binary_expression "this_00[5].name_.field_2._M_local_buf[4] != '\0'" (subscript_expression "this_00[5].name_.field_2._M_local_buf[4]" (field_expression "this_00[5].name_.field_2._M_local_buf" (field_expression "this_00[5].name_.field_2" (field_expression "this_00[5].name_" (subscript_expression "this_00[5]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001d22e4;" goto statement_identifier ;)) (expression_statement "uVar22 = 0x9b5;" (assignment_expression "uVar22 = 0x9b5" identifier = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if ((int)(puVar8[2] << 0x1c) < 0) {\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }\n            else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }" if (parenthesized_expression "((int)(puVar8[2] << 0x1c) < 0)" ( (binary_expression "(int)(puVar8[2] << 0x1c) < 0" (cast_expression "(int)(puVar8[2] << 0x1c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar8[2] << 0x1c)" ( (binary_expression "puVar8[2] << 0x1c" (subscript_expression "puVar8[2]" identifier [ number_literal ]) << number_literal) ))) < number_literal) )) (compound_statement "{\n              iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);\n              if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }\n            }" { (expression_statement "iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138);" (assignment_expression "iVar13 = (**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138)" identifier = (call_expression "(**(code **)(pcVar31 + 0x2f1ad0))(p_Var27,this_00,uVar20,&uStack_138)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2f1ad0))" ( (pointer_expression "**(code **)(pcVar31 + 0x2f1ad0)" * (pointer_expression "*(code **)(pcVar31 + 0x2f1ad0)" * (cast_expression "(code **)(pcVar31 + 0x2f1ad0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2f1ad0)" ( (binary_expression "pcVar31 + 0x2f1ad0" identifier + number_literal) ))))) )) (argument_list "(p_Var27,this_00,uVar20,&uStack_138)" ( identifier , identifier , identifier , (pointer_expression "&uStack_138" & identifier) )))) ;) (if_statement "if (iVar13 == 0) {\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }\n              else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);\n                if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }\n              }" { (expression_statement "iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20);" (assignment_expression "iVar13 = (**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20)" identifier = (call_expression "(**(code **)(pcVar31 + 0x2f1adc))(p_Var27,this_00,uVar20)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2f1adc))" ( (pointer_expression "**(code **)(pcVar31 + 0x2f1adc)" * (pointer_expression "*(code **)(pcVar31 + 0x2f1adc)" * (cast_expression "(code **)(pcVar31 + 0x2f1adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2f1adc)" ( (binary_expression "pcVar31 + 0x2f1adc" identifier + number_literal) ))))) )) (argument_list "(p_Var27,this_00,uVar20)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar13 == 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }\n                else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = *(uint *)(p_Var27 + 8);\n                  puVar8[5] = *(uint *)(p_Var27 + 0xc);\n                  puVar8[4] = uVar20;\n                }" { (expression_statement "iVar25 = *(int *)(pcVar31 + 0x2ef87c);" (assignment_expression "iVar25 = *(int *)(pcVar31 + 0x2ef87c)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;" if (parenthesized_expression "(-1 < *(int *)(p_Var27 + 0x20))" ( (binary_expression "-1 < *(int *)(p_Var27 + 0x20)" number_literal < (pointer_expression "*(int *)(p_Var27 + 0x20)" * (cast_expression "(int *)(p_Var27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0x20)" ( (binary_expression "p_Var27 + 0x20" identifier + number_literal) ))))) )) (goto_statement "goto LAB_001d285c;" goto statement_identifier ;)) (expression_statement "uVar20 = *(uint *)(p_Var27 + 8);" (assignment_expression "uVar20 = *(uint *)(p_Var27 + 8)" identifier = (pointer_expression "*(uint *)(p_Var27 + 8)" * (cast_expression "(uint *)(p_Var27 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 8)" ( (binary_expression "p_Var27 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar8[5] = *(uint *)(p_Var27 + 0xc);" (assignment_expression "puVar8[5] = *(uint *)(p_Var27 + 0xc)" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(p_Var27 + 0xc)" * (cast_expression "(uint *)(p_Var27 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0xc)" ( (binary_expression "p_Var27 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar8[4] = uVar20;" (assignment_expression "puVar8[4] = uVar20" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }" else (compound_statement "{\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;\n                  uVar10 = *(uint *)(iVar13 + 8);\n                  uVar28 = *(uint *)(iVar13 + 0xc);\n                  uVar20 = uVar28;\n                  if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }\n                  puVar8[4] = uVar10;\n                  puVar8[5] = uVar20;\n                }" { (expression_statement "iVar25 = *(int *)(pcVar31 + 0x2ef87c);" (assignment_expression "iVar25 = *(int *)(pcVar31 + 0x2ef87c)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(iVar13 + 0x20)) goto LAB_001d285c;" if (parenthesized_expression "(-1 < *(int *)(iVar13 + 0x20))" ( (binary_expression "-1 < *(int *)(iVar13 + 0x20)" number_literal < (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) ))))) )) (goto_statement "goto LAB_001d285c;" goto statement_identifier ;)) (expression_statement "uVar10 = *(uint *)(iVar13 + 8);" (assignment_expression "uVar10 = *(uint *)(iVar13 + 8)" identifier = (pointer_expression "*(uint *)(iVar13 + 8)" * (cast_expression "(uint *)(iVar13 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = *(uint *)(iVar13 + 0xc);" (assignment_expression "uVar28 = *(uint *)(iVar13 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar13 + 0xc)" * (cast_expression "(uint *)(iVar13 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xc)" ( (binary_expression "iVar13 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = uVar28;" (assignment_expression "uVar20 = uVar28" identifier = identifier) ;) (if_statement "if (uStack_12c != 0) {\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }" if (parenthesized_expression "(uStack_12c != 0)" ( (binary_expression "uStack_12c != 0" identifier != number_literal) )) (compound_statement "{\n                    if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                    uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);\n                    uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);\n                  }" { (if_statement "if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;" if (parenthesized_expression "(-1 < *(int *)(p_Var27 + 0x20))" ( (binary_expression "-1 < *(int *)(p_Var27 + 0x20)" number_literal < (pointer_expression "*(int *)(p_Var27 + 0x20)" * (cast_expression "(int *)(p_Var27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0x20)" ( (binary_expression "p_Var27 + 0x20" identifier + number_literal) ))))) )) (goto_statement "goto LAB_001d285c;" goto statement_identifier ;)) (expression_statement "uVar20 = uVar28 - *(int *)(p_Var27 + 0xc);" (assignment_expression "uVar20 = uVar28 - *(int *)(p_Var27 + 0xc)" identifier = (binary_expression "uVar28 - *(int *)(p_Var27 + 0xc)" identifier - (pointer_expression "*(int *)(p_Var27 + 0xc)" * (cast_expression "(int *)(p_Var27 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0xc)" ( (binary_expression "p_Var27 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20);" (assignment_expression "uVar10 = (uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20)" identifier = (binary_expression "(uVar10 - *(int *)(p_Var27 + 8)) - (uint)(uVar28 < uVar20)" (parenthesized_expression "(uVar10 - *(int *)(p_Var27 + 8))" ( (binary_expression "uVar10 - *(int *)(p_Var27 + 8)" identifier - (pointer_expression "*(int *)(p_Var27 + 8)" * (cast_expression "(int *)(p_Var27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 8)" ( (binary_expression "p_Var27 + 8" identifier + number_literal) ))))) )) - (call_expression "(uint)(uVar28 < uVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar28 < uVar20)" ( (binary_expression "uVar28 < uVar20" identifier < identifier) ))))) ;) })) (expression_statement "puVar8[4] = uVar10;" (assignment_expression "puVar8[4] = uVar10" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = uVar20;" (assignment_expression "puVar8[5] = uVar20" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }" else (compound_statement "{\n                uVar20 = uStack_134;\n                uVar28 = uStack_138;\n                if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }\n                uStack_11c = puVar8[5];\n                piStack_120 = (int *)puVar8[4];\n                puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);\n                uVar10 = puVar8[2];\n                puVar7[8] = (uint)uVar32;\n                puVar7[1] = uStack_11c;\n                *puVar7 = (uint)piStack_120;\n                puVar7[2] = uVar28;\n                puVar7[3] = uVar20;\n                puVar7[7] = 0;\n                puVar7[10] = 0;\n                puVar7[4] = (uint)(puVar7 + 10);\n                puVar7[5] = 1;\n                puVar7[6] = 0;\n                puVar7[9] = 0;\n                if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }\n                puVar8[4] = (uint)puVar7;\n                puVar8[2] = uVar10 & 0xfffffffe;\n              }" { (expression_statement "uVar20 = uStack_134;" (assignment_expression "uVar20 = uStack_134" identifier = identifier) ;) (expression_statement "uVar28 = uStack_138;" (assignment_expression "uVar28 = uStack_138" identifier = identifier) ;) (if_statement "if (uStack_12c != 0) {\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }" if (parenthesized_expression "(uStack_12c != 0)" ( (binary_expression "uStack_12c != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                  if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                  uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);\n                  uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);\n                }" { (expression_statement "iVar25 = *(int *)(pcVar31 + 0x2ef87c);" (assignment_expression "iVar25 = *(int *)(pcVar31 + 0x2ef87c)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;" if (parenthesized_expression "(-1 < *(int *)(p_Var27 + 0x20))" ( (binary_expression "-1 < *(int *)(p_Var27 + 0x20)" number_literal < (pointer_expression "*(int *)(p_Var27 + 0x20)" * (cast_expression "(int *)(p_Var27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0x20)" ( (binary_expression "p_Var27 + 0x20" identifier + number_literal) ))))) )) (goto_statement "goto LAB_001d285c;" goto statement_identifier ;)) (expression_statement "uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc);" (assignment_expression "uVar20 = uStack_134 - *(int *)(p_Var27 + 0xc)" identifier = (binary_expression "uStack_134 - *(int *)(p_Var27 + 0xc)" identifier - (pointer_expression "*(int *)(p_Var27 + 0xc)" * (cast_expression "(int *)(p_Var27 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0xc)" ( (binary_expression "p_Var27 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20);" (assignment_expression "uVar28 = (uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20)" identifier = (binary_expression "(uStack_138 - *(int *)(p_Var27 + 8)) - (uint)(uStack_134 < uVar20)" (parenthesized_expression "(uStack_138 - *(int *)(p_Var27 + 8))" ( (binary_expression "uStack_138 - *(int *)(p_Var27 + 8)" identifier - (pointer_expression "*(int *)(p_Var27 + 8)" * (cast_expression "(int *)(p_Var27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 8)" ( (binary_expression "p_Var27 + 8" identifier + number_literal) ))))) )) - (call_expression "(uint)(uStack_134 < uVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uStack_134 < uVar20)" ( (binary_expression "uStack_134 < uVar20" identifier < identifier) ))))) ;) })) (expression_statement "uStack_11c = puVar8[5];" (assignment_expression "uStack_11c = puVar8[5]" identifier = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "piStack_120 = (int *)puVar8[4];" (assignment_expression "piStack_120 = (int *)puVar8[4]" identifier = (cast_expression "(int *)puVar8[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[4]" identifier [ number_literal ]))) ;) (expression_statement "puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30);" (assignment_expression "puVar7 = (uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30)" identifier = (cast_expression "(uint *)(**(code **)(pcVar31 + 0x2ef1d4))(0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar31 + 0x2ef1d4))(0x30)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2ef1d4))" ( (pointer_expression "**(code **)(pcVar31 + 0x2ef1d4)" * (pointer_expression "*(code **)(pcVar31 + 0x2ef1d4)" * (cast_expression "(code **)(pcVar31 + 0x2ef1d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef1d4)" ( (binary_expression "pcVar31 + 0x2ef1d4" identifier + number_literal) ))))) )) (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "uVar10 = puVar8[2];" (assignment_expression "uVar10 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "puVar7[8] = (uint)uVar32;" (assignment_expression "puVar7[8] = (uint)uVar32" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = (cast_expression "(uint)uVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar7[1] = uStack_11c;" (assignment_expression "puVar7[1] = uStack_11c" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar7 = (uint)piStack_120;" (assignment_expression "*puVar7 = (uint)piStack_120" (pointer_expression "*puVar7" * identifier) = (cast_expression "(uint)piStack_120" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar7[2] = uVar28;" (assignment_expression "puVar7[2] = uVar28" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = uVar20;" (assignment_expression "puVar7[3] = uVar20" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[10] = 0;" (assignment_expression "puVar7[10] = 0" (subscript_expression "puVar7[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[4] = (uint)(puVar7 + 10);" (assignment_expression "puVar7[4] = (uint)(puVar7 + 10)" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = (call_expression "(uint)(puVar7 + 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar7 + 10)" ( (binary_expression "puVar7 + 10" identifier + number_literal) )))) ;) (expression_statement "puVar7[5] = 1;" (assignment_expression "puVar7[5] = 1" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (-1 < (int)(uVar10 << 0x1c)) {\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }" if (parenthesized_expression "(-1 < (int)(uVar10 << 0x1c))" ( (binary_expression "-1 < (int)(uVar10 << 0x1c)" number_literal < (cast_expression "(int)(uVar10 << 0x1c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar10 << 0x1c)" ( (binary_expression "uVar10 << 0x1c" identifier << number_literal) )))) )) (compound_statement "{\n                  (**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);\n                  goto LAB_001d28b8;\n                }" { (expression_statement "(**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628);" (call_expression "(**(code **)(pcVar31 + 0x2ef85c))\n                            (*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2ef85c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2ef85c)" * (pointer_expression "*(code **)(pcVar31 + 0x2ef85c)" * (cast_expression "(code **)(pcVar31 + 0x2ef85c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef85c)" ( (binary_expression "pcVar31 + 0x2ef85c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar31 + 0x2ef0a8) + 0x4570,0x6bb,\n                             *(int *)(pcVar31 + 0x2ef87c) + 0x5628)" ( (binary_expression "*(int *)(pcVar31 + 0x2ef0a8) + 0x4570" (pointer_expression "*(int *)(pcVar31 + 0x2ef0a8)" * (cast_expression "(int *)(pcVar31 + 0x2ef0a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef0a8)" ( (binary_expression "pcVar31 + 0x2ef0a8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar31 + 0x2ef87c) + 0x5628" (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_001d28b8;" goto statement_identifier ;) })) (expression_statement "puVar8[4] = (uint)puVar7;" (assignment_expression "puVar8[4] = (uint)puVar7" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = (cast_expression "(uint)puVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar8[2] = uVar10 & 0xfffffffe;" (assignment_expression "puVar8[2] = uVar10 & 0xfffffffe" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = (binary_expression "uVar10 & 0xfffffffe" identifier & number_literal)) ;) }))) }) (else_clause "else {\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }" else (compound_statement "{\n              uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);\n              if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }\n              *(undefined8 *)(puVar8 + 4) = uVar33;\n            }" { (expression_statement "uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20);" (assignment_expression "uVar33 = (**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20)" identifier = (call_expression "(**(code **)(pcVar31 + 0x2f1ad8))(p_Var27,this_00,uVar20)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2f1ad8))" ( (pointer_expression "**(code **)(pcVar31 + 0x2f1ad8)" * (pointer_expression "*(code **)(pcVar31 + 0x2f1ad8)" * (cast_expression "(code **)(pcVar31 + 0x2f1ad8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2f1ad8)" ( (binary_expression "pcVar31 + 0x2f1ad8" identifier + number_literal) ))))) )) (argument_list "(p_Var27,this_00,uVar20)" ( identifier , identifier , identifier )))) ;) (if_statement "if (uStack_12c != 0) {\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }" if (parenthesized_expression "(uStack_12c != 0)" ( (binary_expression "uStack_12c != 0" identifier != number_literal) )) (compound_statement "{\n                iVar25 = *(int *)(pcVar31 + 0x2ef87c);\n                if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;\n                uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);\n                uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);\n              }" { (expression_statement "iVar25 = *(int *)(pcVar31 + 0x2ef87c);" (assignment_expression "iVar25 = *(int *)(pcVar31 + 0x2ef87c)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(p_Var27 + 0x20)) goto LAB_001d285c;" if (parenthesized_expression "(-1 < *(int *)(p_Var27 + 0x20))" ( (binary_expression "-1 < *(int *)(p_Var27 + 0x20)" number_literal < (pointer_expression "*(int *)(p_Var27 + 0x20)" * (cast_expression "(int *)(p_Var27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0x20)" ( (binary_expression "p_Var27 + 0x20" identifier + number_literal) ))))) )) (goto_statement "goto LAB_001d285c;" goto statement_identifier ;)) (expression_statement "uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc);" (assignment_expression "uVar20 = (uint)uVar33 - *(int *)(p_Var27 + 0xc)" identifier = (binary_expression "(uint)uVar33 - *(int *)(p_Var27 + 0xc)" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) - (pointer_expression "*(int *)(p_Var27 + 0xc)" * (cast_expression "(int *)(p_Var27 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 0xc)" ( (binary_expression "p_Var27 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20);" (assignment_expression "uVar33 = CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20)" identifier = (call_expression "CONCAT44(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20)" identifier (argument_list "(((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20),uVar20)" ( (binary_expression "((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)) -\n                                  (uint)((uint)uVar33 < uVar20)" (parenthesized_expression "((int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8))" ( (binary_expression "(int)((ulonglong)uVar33 >> 0x20) - *(int *)(p_Var27 + 8)" (cast_expression "(int)((ulonglong)uVar33 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar33 >> 0x20)" ( (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) - (pointer_expression "*(int *)(p_Var27 + 8)" * (cast_expression "(int *)(p_Var27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var27 + 8)" ( (binary_expression "p_Var27 + 8" identifier + number_literal) ))))) )) - (call_expression "(uint)((uint)uVar33 < uVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar33 < uVar20)" ( (binary_expression "(uint)uVar33 < uVar20" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) , identifier )))) ;) })) (expression_statement "*(undefined8 *)(puVar8 + 4) = uVar33;" (assignment_expression "*(undefined8 *)(puVar8 + 4) = uVar33" (pointer_expression "*(undefined8 *)(puVar8 + 4)" * (cast_expression "(undefined8 *)(puVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) = identifier) ;) }))) (labeled_statement "LAB_001d22bc:\n            uVar20 = *puVar8;" statement_identifier : (expression_statement "uVar20 = *puVar8;" (assignment_expression "uVar20 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;)) (if_statement "if (uVar20 == 0) goto LAB_001d22cc;" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001d22cc;" goto statement_identifier ;)) (labeled_statement "LAB_001d248c:\n            if (uVar20 == 0xfffffffe) goto LAB_001d22cc;" statement_identifier : (if_statement "if (uVar20 == 0xfffffffe) goto LAB_001d22cc;" if (parenthesized_expression "(uVar20 == 0xfffffffe)" ( (binary_expression "uVar20 == 0xfffffffe" identifier == number_literal) )) (goto_statement "goto LAB_001d22cc;" goto statement_identifier ;))) (if_statement "if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }" if (parenthesized_expression "(uVar19 == uVar23 + 1)" ( (binary_expression "uVar19 == uVar23 + 1" identifier == (binary_expression "uVar23 + 1" identifier + number_literal)) )) (compound_statement "{\n              return uVar11;\n            }" { (return_statement "return uVar11;" return identifier ;) })) }) (else_clause "else {\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }" else (compound_statement "{\n            format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);\n            uVar28 = uVar23;\nLAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);\n            puVar8[5] = 0;\n            puVar8[4] = 0;\nLAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }\n          }" { (expression_statement "format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130);" (assignment_expression "format = (char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130)" identifier = (cast_expression "(char *)(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar31 + 0x2f3a5c))(iStack_130)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2f3a5c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2f3a5c)" * (pointer_expression "*(code **)(pcVar31 + 0x2f3a5c)" * (cast_expression "(code **)(pcVar31 + 0x2f3a5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2f3a5c)" ( (binary_expression "pcVar31 + 0x2f3a5c" identifier + number_literal) ))))) )) (argument_list "(iStack_130)" ( identifier ))))) ;) (expression_statement "uVar28 = uVar23;" (assignment_expression "uVar28 = uVar23" identifier = identifier) ;) (labeled_statement "LAB_001d24f0:\n            Object::error(this_00,format,uVar28,uVar20);" statement_identifier : (labeled_statement "Object::error(this_00,format,uVar28,uVar20);" statement_identifier : (ERROR ":" :) (expression_statement "error(this_00,format,uVar28,uVar20);" (call_expression "error(this_00,format,uVar28,uVar20)" identifier (argument_list "(this_00,format,uVar28,uVar20)" ( identifier , identifier , identifier , identifier ))) ;))) (expression_statement "puVar8[5] = 0;" (assignment_expression "puVar8[5] = 0" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[4] = 0;" (assignment_expression "puVar8[4] = 0" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_001d22e4:\n            if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }" statement_identifier : (if_statement "if (uVar19 == uVar23 + 1) {\n              return uVar11;\n            }" if (parenthesized_expression "(uVar19 == uVar23 + 1)" ( (binary_expression "uVar19 == uVar23 + 1" identifier == (binary_expression "uVar23 + 1" identifier + number_literal)) )) (compound_statement "{\n              return uVar11;\n            }" { (return_statement "return uVar11;" return identifier ;) }))) }))) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18);" (assignment_expression "puVar8 = (uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18)" identifier = (cast_expression "(uint *)(this_00[4].name_._M_string_length + uVar23 * 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00[4].name_._M_string_length + uVar23 * 0x18)" ( (binary_expression "this_00[4].name_._M_string_length + uVar23 * 0x18" (field_expression "this_00[4].name_._M_string_length" (field_expression "this_00[4].name_" (subscript_expression "this_00[4]" identifier [ number_literal ]) . field_identifier) . field_identifier) + (binary_expression "uVar23 * 0x18" identifier * number_literal)) )))) ;) (expression_statement "uVar22 = 0x96c;" (assignment_expression "uVar22 = 0x96c" identifier = number_literal) ;) }) while (parenthesized_expression "((puVar8[2] & 1) != 0)" ( (binary_expression "(puVar8[2] & 1) != 0" (parenthesized_expression "(puVar8[2] & 1)" ( (binary_expression "puVar8[2] & 1" (subscript_expression "puVar8[2]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) ;) }))) (goto_statement "goto LAB_001d283c;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_001d28b8:\n    (**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,0xa1a,*(int *)(pcVar31 + 0x2ef87c) + 0x5738);\n  }" else (compound_statement "{\nLAB_001d28b8:\n    (**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,0xa1a,*(int *)(pcVar31 + 0x2ef87c) + 0x5738);\n  }" { (labeled_statement "LAB_001d28b8:\n    (**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,0xa1a,*(int *)(pcVar31 + 0x2ef87c) + 0x5738);" statement_identifier : (expression_statement "(**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,0xa1a,*(int *)(pcVar31 + 0x2ef87c) + 0x5738);" (call_expression "(**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,0xa1a,*(int *)(pcVar31 + 0x2ef87c) + 0x5738)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2ef85c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2ef85c)" * (pointer_expression "*(code **)(pcVar31 + 0x2ef85c)" * (cast_expression "(code **)(pcVar31 + 0x2ef85c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef85c)" ( (binary_expression "pcVar31 + 0x2ef85c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,0xa1a,*(int *)(pcVar31 + 0x2ef87c) + 0x5738)" ( (binary_expression "*(int *)(pcVar31 + 0x2ef87c) + 0x4d70" (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar31 + 0x2ef87c) + 0x5738" (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) )))) + number_literal) ))) ;)) }))) (expression_statement "(**(code **)(pcVar31 + 0x2ef85c))\n            (*(int *)(pcVar31 + 0x2ef0a8) + -0x9b8,0x5c,*(int *)(pcVar31 + 0x2ef87c) + 0x61ac);" (call_expression "(**(code **)(pcVar31 + 0x2ef85c))\n            (*(int *)(pcVar31 + 0x2ef0a8) + -0x9b8,0x5c,*(int *)(pcVar31 + 0x2ef87c) + 0x61ac)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2ef85c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2ef85c)" * (pointer_expression "*(code **)(pcVar31 + 0x2ef85c)" * (cast_expression "(code **)(pcVar31 + 0x2ef85c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef85c)" ( (binary_expression "pcVar31 + 0x2ef85c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar31 + 0x2ef0a8) + -0x9b8,0x5c,*(int *)(pcVar31 + 0x2ef87c) + 0x61ac)" ( (binary_expression "*(int *)(pcVar31 + 0x2ef0a8) + -0x9b8" (pointer_expression "*(int *)(pcVar31 + 0x2ef0a8)" * (cast_expression "(int *)(pcVar31 + 0x2ef0a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef0a8)" ( (binary_expression "pcVar31 + 0x2ef0a8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar31 + 0x2ef87c) + 0x61ac" (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_001d28f0:\n  uVar22 = 0x98d;" statement_identifier : (expression_statement "uVar22 = 0x98d;" (assignment_expression "uVar22 = 0x98d" identifier = number_literal) ;)) (labeled_statement "LAB_001d283c:\n  do {\n    (**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,uVar22,*(int *)(pcVar31 + 0x2ef87c) + 0x5640);\nLAB_001d2854:\n    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\nLAB_001d285c:\n    (**(code **)(pcVar31 + 0x2ef85c))(*(int *)(pcVar31 + 0x2ef0a8) + 0x3574,0xc5,iVar25 + 0x6058);\nLAB_001d2870:\n    uVar22 = 0x995;\n  } while( true );" statement_identifier : (do_statement "do {\n    (**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,uVar22,*(int *)(pcVar31 + 0x2ef87c) + 0x5640);\nLAB_001d2854:\n    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\nLAB_001d285c:\n    (**(code **)(pcVar31 + 0x2ef85c))(*(int *)(pcVar31 + 0x2ef0a8) + 0x3574,0xc5,iVar25 + 0x6058);\nLAB_001d2870:\n    uVar22 = 0x995;\n  } while( true );" do (compound_statement "{\n    (**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,uVar22,*(int *)(pcVar31 + 0x2ef87c) + 0x5640);\nLAB_001d2854:\n    iVar25 = *(int *)(pcVar31 + 0x2ef87c);\nLAB_001d285c:\n    (**(code **)(pcVar31 + 0x2ef85c))(*(int *)(pcVar31 + 0x2ef0a8) + 0x3574,0xc5,iVar25 + 0x6058);\nLAB_001d2870:\n    uVar22 = 0x995;\n  }" { (expression_statement "(**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,uVar22,*(int *)(pcVar31 + 0x2ef87c) + 0x5640);" (call_expression "(**(code **)(pcVar31 + 0x2ef85c))\n              (*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,uVar22,*(int *)(pcVar31 + 0x2ef87c) + 0x5640)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2ef85c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2ef85c)" * (pointer_expression "*(code **)(pcVar31 + 0x2ef85c)" * (cast_expression "(code **)(pcVar31 + 0x2ef85c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef85c)" ( (binary_expression "pcVar31 + 0x2ef85c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar31 + 0x2ef87c) + 0x4d70,uVar22,*(int *)(pcVar31 + 0x2ef87c) + 0x5640)" ( (binary_expression "*(int *)(pcVar31 + 0x2ef87c) + 0x4d70" (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar31 + 0x2ef87c) + 0x5640" (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_001d2854:\n    iVar25 = *(int *)(pcVar31 + 0x2ef87c);" statement_identifier : (expression_statement "iVar25 = *(int *)(pcVar31 + 0x2ef87c);" (assignment_expression "iVar25 = *(int *)(pcVar31 + 0x2ef87c)" identifier = (pointer_expression "*(int *)(pcVar31 + 0x2ef87c)" * (cast_expression "(int *)(pcVar31 + 0x2ef87c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef87c)" ( (binary_expression "pcVar31 + 0x2ef87c" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_001d285c:\n    (**(code **)(pcVar31 + 0x2ef85c))(*(int *)(pcVar31 + 0x2ef0a8) + 0x3574,0xc5,iVar25 + 0x6058);" statement_identifier : (expression_statement "(**(code **)(pcVar31 + 0x2ef85c))(*(int *)(pcVar31 + 0x2ef0a8) + 0x3574,0xc5,iVar25 + 0x6058);" (call_expression "(**(code **)(pcVar31 + 0x2ef85c))(*(int *)(pcVar31 + 0x2ef0a8) + 0x3574,0xc5,iVar25 + 0x6058)" (parenthesized_expression "(**(code **)(pcVar31 + 0x2ef85c))" ( (pointer_expression "**(code **)(pcVar31 + 0x2ef85c)" * (pointer_expression "*(code **)(pcVar31 + 0x2ef85c)" * (cast_expression "(code **)(pcVar31 + 0x2ef85c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x2ef85c)" ( (binary_expression "pcVar31 + 0x2ef85c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar31 + 0x2ef0a8) + 0x3574,0xc5,iVar25 + 0x6058)" ( (binary_expression "*(int *)(pcVar31 + 0x2ef0a8) + 0x3574" (pointer_expression "*(int *)(pcVar31 + 0x2ef0a8)" * (cast_expression "(int *)(pcVar31 + 0x2ef0a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0x2ef0a8)" ( (binary_expression "pcVar31 + 0x2ef0a8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar25 + 0x6058" identifier + number_literal) ))) ;)) (labeled_statement "LAB_001d2870:\n    uVar22 = 0x995;" statement_identifier : (expression_statement "uVar22 = 0x995;" (assignment_expression "uVar22 = 0x995" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) (ERROR "}" }))
(translation_unit "int FUN_001d1c68(int param_1,int param_2)\n\n{\n  int *piVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  \n  uVar8 = *(uint *)(param_1 + 0xb8);\n  if (uVar8 < 2) {\n    return param_2;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);\n  while (iVar5 = *piVar1, iVar5 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }\n  while (iVar5 == 0) {\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }\n  iVar5 = 0x740;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);\nLAB_001d1d30:\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;\n  puVar10 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  uVar8 = *(uint *)(puVar3 + 0xb8);\n  if (uVar8 < 2) {\n    return iVar5;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);\n  while (iVar6 = *piVar1, iVar6 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }\n  while (iVar6 == 0) {\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }\n  uVar7 = 0x740;\n  (**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8);\nLAB_001d1e10:\n  pcVar11 = *(code **)(puVar10 + 0x2efce8);\n  iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;\n  (*pcVar11)();\n  uVar8 = *(uint *)(iVar5 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efc28);\nLAB_001d1eb0:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efc08);\n  iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efb7c);\nLAB_001d1f5c:\n  uVar2 = 0x8a7;\n  pcVar11 = *(code **)(pcVar12 + 0x2efb5c);\n  iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;\n  (*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efad0);\nLAB_001d2008:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efab0);\n  iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efa24);\nLAB_001d20b4:\n  iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);\n  return iVar5;\n}\n\n" (function_definition "int FUN_001d1c68(int param_1,int param_2)\n\n{\n  int *piVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  \n  uVar8 = *(uint *)(param_1 + 0xb8);\n  if (uVar8 < 2) {\n    return param_2;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);\n  while (iVar5 = *piVar1, iVar5 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }\n  while (iVar5 == 0) {\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }\n  iVar5 = 0x740;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);\nLAB_001d1d30:\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;\n  puVar10 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  uVar8 = *(uint *)(puVar3 + 0xb8);\n  if (uVar8 < 2) {\n    return iVar5;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);\n  while (iVar6 = *piVar1, iVar6 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }\n  while (iVar6 == 0) {\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }\n  uVar7 = 0x740;\n  (**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8);\nLAB_001d1e10:\n  pcVar11 = *(code **)(puVar10 + 0x2efce8);\n  iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;\n  (*pcVar11)();\n  uVar8 = *(uint *)(iVar5 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efc28);\nLAB_001d1eb0:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efc08);\n  iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efb7c);\nLAB_001d1f5c:\n  uVar2 = 0x8a7;\n  pcVar11 = *(code **)(pcVar12 + 0x2efb5c);\n  iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;\n  (*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efad0);\nLAB_001d2008:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efab0);\n  iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efa24);\nLAB_001d20b4:\n  iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);\n  return iVar5;\n}" primitive_type (function_declarator "FUN_001d1c68(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  \n  uVar8 = *(uint *)(param_1 + 0xb8);\n  if (uVar8 < 2) {\n    return param_2;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);\n  while (iVar5 = *piVar1, iVar5 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }\n  while (iVar5 == 0) {\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }\n  iVar5 = 0x740;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);\nLAB_001d1d30:\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;\n  puVar10 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  uVar8 = *(uint *)(puVar3 + 0xb8);\n  if (uVar8 < 2) {\n    return iVar5;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);\n  while (iVar6 = *piVar1, iVar6 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }\n  while (iVar6 == 0) {\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }\n  uVar7 = 0x740;\n  (**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8);\nLAB_001d1e10:\n  pcVar11 = *(code **)(puVar10 + 0x2efce8);\n  iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;\n  (*pcVar11)();\n  uVar8 = *(uint *)(iVar5 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efc28);\nLAB_001d1eb0:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efc08);\n  iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efb7c);\nLAB_001d1f5c:\n  uVar2 = 0x8a7;\n  pcVar11 = *(code **)(pcVar12 + 0x2efb5c);\n  iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;\n  (*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efad0);\nLAB_001d2008:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efab0);\n  iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efa24);\nLAB_001d20b4:\n  iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);\n  return iVar5;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (expression_statement "uVar8 = *(uint *)(param_1 + 0xb8);" (assignment_expression "uVar8 = *(uint *)(param_1 + 0xb8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xb8)" * (cast_expression "(uint *)(param_1 + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 < 2) {\n    return param_2;\n  }" if (parenthesized_expression "(uVar8 < 2)" ( (binary_expression "uVar8 < 2" identifier < number_literal) )) (compound_statement "{\n    return param_2;\n  }" { (return_statement "return param_2;" return identifier ;) })) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (expression_statement "piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);" (assignment_expression "piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0xe8) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xe8) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0xe8) + 0x1c" (pointer_expression "*(int *)(param_1 + 0xe8)" * (cast_expression "(int *)(param_1 + 0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) + number_literal) )))) ;) (while_statement "while (iVar5 = *piVar1, iVar5 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }" while (parenthesized_expression "(iVar5 = *piVar1, iVar5 == -1)" ( (comma_expression "iVar5 = *piVar1, iVar5 == -1" (assignment_expression "iVar5 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) , (binary_expression "iVar5 == -1" identifier == number_literal)) )) (compound_statement "{\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }" { (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = piVar1 + 6;" (assignment_expression "piVar1 = piVar1 + 6" identifier = (binary_expression "piVar1 + 6" identifier + number_literal)) ;) (if_statement "if (uVar8 == uVar2) {\n      return param_2;\n    }" if (parenthesized_expression "(uVar8 == uVar2)" ( (binary_expression "uVar8 == uVar2" identifier == identifier) )) (compound_statement "{\n      return param_2;\n    }" { (return_statement "return param_2;" return identifier ;) })) })) (while_statement "while (iVar5 == 0) {\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }" while (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }" { (expression_statement "iVar5 = 0x741;" (assignment_expression "iVar5 = 0x741" identifier = number_literal) ;) (if_statement "if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;" if (parenthesized_expression "(0xfffffffd < param_2 - 1U)" ( (binary_expression "0xfffffffd < param_2 - 1U" number_literal < (binary_expression "param_2 - 1U" identifier - number_literal)) )) (goto_statement "goto LAB_001d1d30;" goto statement_identifier ;)) (expression_statement "*piVar1 = param_2;" (assignment_expression "*piVar1 = param_2" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (do_statement "do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);" do (compound_statement "{\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    }" { (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar8 == uVar2) {\n        return param_2;\n      }" if (parenthesized_expression "(uVar8 == uVar2)" ( (binary_expression "uVar8 == uVar2" identifier == identifier) )) (compound_statement "{\n        return param_2;\n      }" { (return_statement "return param_2;" return identifier ;) })) (expression_statement "piVar1 = piVar1 + 6;" (assignment_expression "piVar1 = piVar1 + 6" identifier = (binary_expression "piVar1 + 6" identifier + number_literal)) ;) (expression_statement "iVar5 = *piVar1;" (assignment_expression "iVar5 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) }) while (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) ;) })) (expression_statement "iVar5 = 0x740;" (assignment_expression "iVar5 = 0x740" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) , number_literal , (binary_expression "PTR_s__s_004c1a50 + 0x5708" identifier + number_literal) ))) ;) (labeled_statement "LAB_001d1d30:\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;" statement_identifier : (expression_statement "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;" (assignment_expression "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal)) ;)) (expression_statement "puVar10 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar10 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar8 = *(uint *)(puVar3 + 0xb8);" (assignment_expression "uVar8 = *(uint *)(puVar3 + 0xb8)" identifier = (pointer_expression "*(uint *)(puVar3 + 0xb8)" * (cast_expression "(uint *)(puVar3 + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xb8)" ( (binary_expression "puVar3 + 0xb8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 < 2) {\n    return iVar5;\n  }" if (parenthesized_expression "(uVar8 < 2)" ( (binary_expression "uVar8 < 2" identifier < number_literal) )) (compound_statement "{\n    return iVar5;\n  }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (expression_statement "piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);" (assignment_expression "piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14)" identifier = (cast_expression "(int *)(*(int *)(puVar3 + 0xe8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0xe8) + 0x14)" ( (binary_expression "*(int *)(puVar3 + 0xe8) + 0x14" (pointer_expression "*(int *)(puVar3 + 0xe8)" * (cast_expression "(int *)(puVar3 + 0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xe8)" ( (binary_expression "puVar3 + 0xe8" identifier + number_literal) )))) + number_literal) )))) ;) (while_statement "while (iVar6 = *piVar1, iVar6 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }" while (parenthesized_expression "(iVar6 = *piVar1, iVar6 == -1)" ( (comma_expression "iVar6 = *piVar1, iVar6 == -1" (assignment_expression "iVar6 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) , (binary_expression "iVar6 == -1" identifier == number_literal)) )) (compound_statement "{\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }" { (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = piVar1 + 4;" (assignment_expression "piVar1 = piVar1 + 4" identifier = (binary_expression "piVar1 + 4" identifier + number_literal)) ;) (if_statement "if (uVar8 == uVar2) {\n      return iVar5;\n    }" if (parenthesized_expression "(uVar8 == uVar2)" ( (binary_expression "uVar8 == uVar2" identifier == identifier) )) (compound_statement "{\n      return iVar5;\n    }" { (return_statement "return iVar5;" return identifier ;) })) })) (while_statement "while (iVar6 == 0) {\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }" while (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }" { (expression_statement "uVar7 = 0x741;" (assignment_expression "uVar7 = 0x741" identifier = number_literal) ;) (if_statement "if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;" if (parenthesized_expression "(0xfffffffd < iVar5 - 1U)" ( (binary_expression "0xfffffffd < iVar5 - 1U" number_literal < (binary_expression "iVar5 - 1U" identifier - number_literal)) )) (goto_statement "goto LAB_001d1e10;" goto statement_identifier ;)) (expression_statement "*piVar1 = iVar5;" (assignment_expression "*piVar1 = iVar5" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (do_statement "do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);" do (compound_statement "{\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    }" { (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar8 == uVar2) {\n        return iVar5;\n      }" if (parenthesized_expression "(uVar8 == uVar2)" ( (binary_expression "uVar8 == uVar2" identifier == identifier) )) (compound_statement "{\n        return iVar5;\n      }" { (return_statement "return iVar5;" return identifier ;) })) (expression_statement "piVar1 = piVar1 + 4;" (assignment_expression "piVar1 = piVar1 + 4" identifier = (binary_expression "piVar1 + 4" identifier + number_literal)) ;) (expression_statement "iVar6 = *piVar1;" (assignment_expression "iVar6 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) }) while (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) ;) })) (expression_statement "uVar7 = 0x740;" (assignment_expression "uVar7 = 0x740" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8);" (call_expression "(**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8)" (parenthesized_expression "(**(code **)(puVar10 + 0x2efce8))" ( (pointer_expression "**(code **)(puVar10 + 0x2efce8)" * (pointer_expression "*(code **)(puVar10 + 0x2efce8)" * (cast_expression "(code **)(puVar10 + 0x2efce8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x2efce8)" ( (binary_expression "puVar10 + 0x2efce8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8)" ( (binary_expression "*(int *)(puVar10 + 0x2ef534) + 0x4570" (pointer_expression "*(int *)(puVar10 + 0x2ef534)" * (cast_expression "(int *)(puVar10 + 0x2ef534)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2ef534)" ( (binary_expression "puVar10 + 0x2ef534" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar10 + 0x2efd08) + 0x5d90" (pointer_expression "*(int *)(puVar10 + 0x2efd08)" * (cast_expression "(int *)(puVar10 + 0x2efd08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2efd08)" ( (binary_expression "puVar10 + 0x2efd08" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "puVar10 + 0x2f74f8" identifier + number_literal) ))) ;) (labeled_statement "LAB_001d1e10:\n  pcVar11 = *(code **)(puVar10 + 0x2efce8);" statement_identifier : (expression_statement "pcVar11 = *(code **)(puVar10 + 0x2efce8);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x2efce8)" identifier = (pointer_expression "*(code **)(puVar10 + 0x2efce8)" * (cast_expression "(code **)(puVar10 + 0x2efce8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x2efce8)" ( (binary_expression "puVar10 + 0x2efce8" identifier + number_literal) ))))) ;)) (expression_statement "iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;" (assignment_expression "iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570" identifier = (binary_expression "*(int *)(puVar10 + 0x2ef534) + 0x4570" (pointer_expression "*(int *)(puVar10 + 0x2ef534)" * (cast_expression "(int *)(puVar10 + 0x2ef534)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2ef534)" ( (binary_expression "puVar10 + 0x2ef534" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar8 = *(uint *)(iVar5 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar5 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar5 + 0xf8)" * (cast_expression "(uint *)(iVar5 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xf8)" ( (binary_expression "iVar5 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" * (cast_expression "(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" ( (binary_expression "*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4" (pointer_expression "*(int *)(iVar5 + 0xf4)" * (cast_expression "(int *)(iVar5 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xf4)" ( (binary_expression "iVar5 + 0xf4" identifier + number_literal) )))) + (binary_expression "(uVar7 % uVar8) * 4" (parenthesized_expression "(uVar7 % uVar8)" ( (binary_expression "uVar7 % uVar8" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }" { (expression_statement "uVar2 = ((int *)*piVar1)[1];" (assignment_expression "uVar2 = ((int *)*piVar1)[1]" identifier = (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" ( (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);" do (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" { (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" identifier = identifier) ;) (if_statement "if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }" if (parenthesized_expression "(uVar2 == uVar7)" ( (binary_expression "uVar2 == uVar7" identifier == identifier) )) (compound_statement "{\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }" { (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efc28);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efc28)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2efc28)" * (cast_expression "(int *)(pcVar11 + 0x2efc28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efc28)" ( (binary_expression "pcVar11 + 0x2efc28" identifier + number_literal) ))))) ;) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" { (return_statement "return *(int *)(*piVar1 + 8);" return (pointer_expression "*(int *)(*piVar1 + 8)" * (cast_expression "(int *)(*piVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 8)" ( (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" * identifier) + number_literal) )))) ;) })) (goto_statement "goto LAB_001d1eb0;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar9 == (int *)0x0) break;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar2 = piVar9[1];" (assignment_expression "uVar2 = piVar9[1]" identifier = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar7 % uVar8 == uVar2 % uVar8)" ( (binary_expression "uVar7 % uVar8 == uVar2 % uVar8" (binary_expression "uVar7 % uVar8" identifier % identifier) == (binary_expression "uVar2 % uVar8" identifier % identifier)) )) ;) })) (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efc28);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efc28)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2efc28)" * (cast_expression "(int *)(pcVar11 + 0x2efc28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efc28)" ( (binary_expression "pcVar11 + 0x2efc28" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d1eb0:\n  uVar2 = 0x8a7;" statement_identifier : (expression_statement "uVar2 = 0x8a7;" (assignment_expression "uVar2 = 0x8a7" identifier = number_literal) ;)) (expression_statement "pcVar12 = *(code **)(pcVar11 + 0x2efc08);" (assignment_expression "pcVar12 = *(code **)(pcVar11 + 0x2efc08)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x2efc08)" * (cast_expression "(code **)(pcVar11 + 0x2efc08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2efc08)" ( (binary_expression "pcVar11 + 0x2efc08" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;" (assignment_expression "iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70" identifier = (binary_expression "*(int *)(pcVar11 + 0x2efc28) + 0x4d70" (pointer_expression "*(int *)(pcVar11 + 0x2efc28)" * (cast_expression "(int *)(pcVar11 + 0x2efc28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efc28)" ( (binary_expression "pcVar11 + 0x2efc28" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);" (call_expression "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(iVar6,0x8a7,iVar5 + 0x57f0)" ( identifier , number_literal , (binary_expression "iVar5 + 0x57f0" identifier + number_literal) ))) ;) (expression_statement "uVar8 = *(uint *)(iVar6 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar6 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar6 + 0xf8)" * (cast_expression "(uint *)(iVar6 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf8)" ( (binary_expression "iVar6 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" * (cast_expression "(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (binary_expression "*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4" (pointer_expression "*(int *)(iVar6 + 0xf4)" * (cast_expression "(int *)(iVar6 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf4)" ( (binary_expression "iVar6 + 0xf4" identifier + number_literal) )))) + (binary_expression "(uVar2 % uVar8) * 4" (parenthesized_expression "(uVar2 % uVar8)" ( (binary_expression "uVar2 % uVar8" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" { (expression_statement "uVar7 = ((int *)*piVar1)[1];" (assignment_expression "uVar7 = ((int *)*piVar1)[1]" identifier = (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" ( (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);" do (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" { (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" identifier = identifier) ;) (if_statement "if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }" if (parenthesized_expression "(uVar7 == uVar2)" ( (binary_expression "uVar7 == uVar2" identifier == identifier) )) (compound_statement "{\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }" { (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efb7c);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efb7c)" identifier = (pointer_expression "*(int *)(pcVar12 + 0x2efb7c)" * (cast_expression "(int *)(pcVar12 + 0x2efb7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efb7c)" ( (binary_expression "pcVar12 + 0x2efb7c" identifier + number_literal) ))))) ;) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" { (return_statement "return *(int *)(*piVar1 + 8);" return (pointer_expression "*(int *)(*piVar1 + 8)" * (cast_expression "(int *)(*piVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 8)" ( (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" * identifier) + number_literal) )))) ;) })) (goto_statement "goto LAB_001d1f5c;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar9 == (int *)0x0) break;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = piVar9[1];" (assignment_expression "uVar7 = piVar9[1]" identifier = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar2 % uVar8 == uVar7 % uVar8)" ( (binary_expression "uVar2 % uVar8 == uVar7 % uVar8" (binary_expression "uVar2 % uVar8" identifier % identifier) == (binary_expression "uVar7 % uVar8" identifier % identifier)) )) ;) })) (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efb7c);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efb7c)" identifier = (pointer_expression "*(int *)(pcVar12 + 0x2efb7c)" * (cast_expression "(int *)(pcVar12 + 0x2efb7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efb7c)" ( (binary_expression "pcVar12 + 0x2efb7c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d1f5c:\n  uVar2 = 0x8a7;" statement_identifier : (expression_statement "uVar2 = 0x8a7;" (assignment_expression "uVar2 = 0x8a7" identifier = number_literal) ;)) (expression_statement "pcVar11 = *(code **)(pcVar12 + 0x2efb5c);" (assignment_expression "pcVar11 = *(code **)(pcVar12 + 0x2efb5c)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x2efb5c)" * (cast_expression "(code **)(pcVar12 + 0x2efb5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x2efb5c)" ( (binary_expression "pcVar12 + 0x2efb5c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;" (assignment_expression "iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70" identifier = (binary_expression "*(int *)(pcVar12 + 0x2efb7c) + 0x4d70" (pointer_expression "*(int *)(pcVar12 + 0x2efb7c)" * (cast_expression "(int *)(pcVar12 + 0x2efb7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efb7c)" ( (binary_expression "pcVar12 + 0x2efb7c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);" (call_expression "(*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar6,0x8a7,iVar5 + 0x5ac4)" ( identifier , number_literal , (binary_expression "iVar5 + 0x5ac4" identifier + number_literal) ))) ;) (expression_statement "uVar8 = *(uint *)(iVar6 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar6 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar6 + 0xf8)" * (cast_expression "(uint *)(iVar6 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf8)" ( (binary_expression "iVar6 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" * (cast_expression "(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (binary_expression "*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4" (pointer_expression "*(int *)(iVar6 + 0xf4)" * (cast_expression "(int *)(iVar6 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf4)" ( (binary_expression "iVar6 + 0xf4" identifier + number_literal) )))) + (binary_expression "(uVar2 % uVar8) * 4" (parenthesized_expression "(uVar2 % uVar8)" ( (binary_expression "uVar2 % uVar8" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" { (expression_statement "uVar7 = ((int *)*piVar1)[1];" (assignment_expression "uVar7 = ((int *)*piVar1)[1]" identifier = (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" ( (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);" do (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" { (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" identifier = identifier) ;) (if_statement "if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }" if (parenthesized_expression "(uVar7 == uVar2)" ( (binary_expression "uVar7 == uVar2" identifier == identifier) )) (compound_statement "{\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }" { (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efad0);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efad0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2efad0)" * (cast_expression "(int *)(pcVar11 + 0x2efad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efad0)" ( (binary_expression "pcVar11 + 0x2efad0" identifier + number_literal) ))))) ;) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" { (return_statement "return *(int *)(*piVar1 + 8);" return (pointer_expression "*(int *)(*piVar1 + 8)" * (cast_expression "(int *)(*piVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 8)" ( (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" * identifier) + number_literal) )))) ;) })) (goto_statement "goto LAB_001d2008;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar9 == (int *)0x0) break;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = piVar9[1];" (assignment_expression "uVar7 = piVar9[1]" identifier = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar2 % uVar8 == uVar7 % uVar8)" ( (binary_expression "uVar2 % uVar8 == uVar7 % uVar8" (binary_expression "uVar2 % uVar8" identifier % identifier) == (binary_expression "uVar7 % uVar8" identifier % identifier)) )) ;) })) (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efad0);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efad0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2efad0)" * (cast_expression "(int *)(pcVar11 + 0x2efad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efad0)" ( (binary_expression "pcVar11 + 0x2efad0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d2008:\n  uVar2 = 0x8a7;" statement_identifier : (expression_statement "uVar2 = 0x8a7;" (assignment_expression "uVar2 = 0x8a7" identifier = number_literal) ;)) (expression_statement "pcVar12 = *(code **)(pcVar11 + 0x2efab0);" (assignment_expression "pcVar12 = *(code **)(pcVar11 + 0x2efab0)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x2efab0)" * (cast_expression "(code **)(pcVar11 + 0x2efab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2efab0)" ( (binary_expression "pcVar11 + 0x2efab0" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;" (assignment_expression "iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70" identifier = (binary_expression "*(int *)(pcVar11 + 0x2efad0) + 0x4d70" (pointer_expression "*(int *)(pcVar11 + 0x2efad0)" * (cast_expression "(int *)(pcVar11 + 0x2efad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2efad0)" ( (binary_expression "pcVar11 + 0x2efad0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);" (call_expression "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(iVar6,0x8a7,iVar5 + 0x54a8)" ( identifier , number_literal , (binary_expression "iVar5 + 0x54a8" identifier + number_literal) ))) ;) (expression_statement "uVar8 = *(uint *)(iVar6 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar6 + 0xf8)" identifier = (pointer_expression "*(uint *)(iVar6 + 0xf8)" * (cast_expression "(uint *)(iVar6 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf8)" ( (binary_expression "iVar6 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" * (cast_expression "(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" ( (binary_expression "*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4" (pointer_expression "*(int *)(iVar6 + 0xf4)" * (cast_expression "(int *)(iVar6 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xf4)" ( (binary_expression "iVar6 + 0xf4" identifier + number_literal) )))) + (binary_expression "(uVar2 % uVar8) * 4" (parenthesized_expression "(uVar2 % uVar8)" ( (binary_expression "uVar2 % uVar8" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" { (expression_statement "uVar7 = ((int *)*piVar1)[1];" (assignment_expression "uVar7 = ((int *)*piVar1)[1]" identifier = (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" ( (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);" do (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" { (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" identifier = identifier) ;) (if_statement "if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }" if (parenthesized_expression "(uVar7 == uVar2)" ( (binary_expression "uVar7 == uVar2" identifier == identifier) )) (compound_statement "{\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }" { (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efa24);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efa24)" identifier = (pointer_expression "*(int *)(pcVar12 + 0x2efa24)" * (cast_expression "(int *)(pcVar12 + 0x2efa24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efa24)" ( (binary_expression "pcVar12 + 0x2efa24" identifier + number_literal) ))))) ;) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" { (return_statement "return *(int *)(*piVar1 + 8);" return (pointer_expression "*(int *)(*piVar1 + 8)" * (cast_expression "(int *)(*piVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 8)" ( (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" * identifier) + number_literal) )))) ;) })) (goto_statement "goto LAB_001d20b4;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar9 == (int *)0x0) break;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = piVar9[1];" (assignment_expression "uVar7 = piVar9[1]" identifier = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar2 % uVar8 == uVar7 % uVar8)" ( (binary_expression "uVar2 % uVar8 == uVar7 % uVar8" (binary_expression "uVar2 % uVar8" identifier % identifier) == (binary_expression "uVar7 % uVar8" identifier % identifier)) )) ;) })) (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efa24);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efa24)" identifier = (pointer_expression "*(int *)(pcVar12 + 0x2efa24)" * (cast_expression "(int *)(pcVar12 + 0x2efa24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efa24)" ( (binary_expression "pcVar12 + 0x2efa24" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001d20b4:\n  iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);" statement_identifier : (expression_statement "iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);" (assignment_expression "iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4)" identifier = (call_expression "(**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4)" (parenthesized_expression "(**(code **)(pcVar12 + 0x2efa04))" ( (pointer_expression "**(code **)(pcVar12 + 0x2efa04)" * (pointer_expression "*(code **)(pcVar12 + 0x2efa04)" * (cast_expression "(code **)(pcVar12 + 0x2efa04)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x2efa04)" ( (binary_expression "pcVar12 + 0x2efa04" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4)" ( (binary_expression "*(int *)(pcVar12 + 0x2efa24) + 0x4d70" (pointer_expression "*(int *)(pcVar12 + 0x2efa24)" * (cast_expression "(int *)(pcVar12 + 0x2efa24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x2efa24)" ( (binary_expression "pcVar12 + 0x2efa24" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar5 + 0x5ea4" identifier + number_literal) )))) ;)) (return_statement "return iVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (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 IDENT < LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (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) )))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) })) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) })) (expression_statement (assignment_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) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (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 ( ))) ;) (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 IDENT < LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (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) )))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) })) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) })) (expression_statement (assignment_expression IDENT = 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 ( (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) , LIT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement 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) ))))) ;)) (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 ( ))) ;) (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 IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 (pointer_expression * IDENT) != LIT) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) == (binary_expression IDENT % IDENT)) )) ;) })) (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 = 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 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 IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 (pointer_expression * IDENT) != LIT) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) == (binary_expression IDENT % IDENT)) )) ;) })) (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 = 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 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 IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 (pointer_expression * IDENT) != LIT) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) == (binary_expression IDENT % IDENT)) )) ;) })) (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 = 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 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 IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 (pointer_expression * IDENT) != LIT) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) == (binary_expression IDENT % IDENT)) )) ;) })) (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 = (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 IDENT + LIT) )))) ;)) (return_statement return IDENT ;) })))
(function_definition "int FUN_001d1c68(int param_1,int param_2)\n\n{\n  int *piVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  \n  uVar8 = *(uint *)(param_1 + 0xb8);\n  if (uVar8 < 2) {\n    return param_2;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);\n  while (iVar5 = *piVar1, iVar5 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }\n  while (iVar5 == 0) {\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }\n  iVar5 = 0x740;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);\nLAB_001d1d30:\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;\n  puVar10 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  uVar8 = *(uint *)(puVar3 + 0xb8);\n  if (uVar8 < 2) {\n    return iVar5;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);\n  while (iVar6 = *piVar1, iVar6 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }\n  while (iVar6 == 0) {\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }\n  uVar7 = 0x740;\n  (**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8);\nLAB_001d1e10:\n  pcVar11 = *(code **)(puVar10 + 0x2efce8);\n  iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;\n  (*pcVar11)();\n  uVar8 = *(uint *)(iVar5 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efc28);\nLAB_001d1eb0:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efc08);\n  iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efb7c);\nLAB_001d1f5c:\n  uVar2 = 0x8a7;\n  pcVar11 = *(code **)(pcVar12 + 0x2efb5c);\n  iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;\n  (*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efad0);\nLAB_001d2008:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efab0);\n  iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efa24);\nLAB_001d20b4:\n  iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);\n  return iVar5;\n}" (primitive_type "int") (function_declarator "FUN_001d1c68(int param_1,int param_2)" (identifier "FUN_001d1c68") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  \n  uVar8 = *(uint *)(param_1 + 0xb8);\n  if (uVar8 < 2) {\n    return param_2;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);\n  while (iVar5 = *piVar1, iVar5 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }\n  while (iVar5 == 0) {\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }\n  iVar5 = 0x740;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);\nLAB_001d1d30:\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;\n  puVar10 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  uVar8 = *(uint *)(puVar3 + 0xb8);\n  if (uVar8 < 2) {\n    return iVar5;\n  }\n  uVar2 = 1;\n  piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);\n  while (iVar6 = *piVar1, iVar6 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }\n  while (iVar6 == 0) {\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }\n  uVar7 = 0x740;\n  (**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8);\nLAB_001d1e10:\n  pcVar11 = *(code **)(puVar10 + 0x2efce8);\n  iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;\n  (*pcVar11)();\n  uVar8 = *(uint *)(iVar5 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efc28);\nLAB_001d1eb0:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efc08);\n  iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efb7c);\nLAB_001d1f5c:\n  uVar2 = 0x8a7;\n  pcVar11 = *(code **)(pcVar12 + 0x2efb5c);\n  iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;\n  (*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar11 + 0x2efad0);\nLAB_001d2008:\n  uVar2 = 0x8a7;\n  pcVar12 = *(code **)(pcVar11 + 0x2efab0);\n  iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;\n  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);\n  uVar8 = *(uint *)(iVar6 + 0xf8);\n  if (uVar8 == 0) {\n    trap(7);\n  }\n  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);\n  if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }\n  iVar5 = *(int *)(pcVar12 + 0x2efa24);\nLAB_001d20b4:\n  iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);\n  return iVar5;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (expression_statement "uVar8 = *(uint *)(param_1 + 0xb8);" (assignment_expression "uVar8 = *(uint *)(param_1 + 0xb8)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(param_1 + 0xb8)" (* "*") (cast_expression "(uint *)(param_1 + 0xb8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb8)" (( "(") (binary_expression "param_1 + 0xb8" (identifier "param_1") (+ "+") (number_literal "0xb8")) () ")"))))) (; ";")) (if_statement "if (uVar8 < 2) {\n    return param_2;\n  }" (if "if") (parenthesized_expression "(uVar8 < 2)" (( "(") (binary_expression "uVar8 < 2" (identifier "uVar8") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n    return param_2;\n  }" ({ "{") (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";")) (} "}"))) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);" (assignment_expression "piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c)" (identifier "piVar1") (= "=") (cast_expression "(int *)(*(int *)(param_1 + 0xe8) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xe8) + 0x1c)" (( "(") (binary_expression "*(int *)(param_1 + 0xe8) + 0x1c" (pointer_expression "*(int *)(param_1 + 0xe8)" (* "*") (cast_expression "(int *)(param_1 + 0xe8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe8)" (( "(") (binary_expression "param_1 + 0xe8" (identifier "param_1") (+ "+") (number_literal "0xe8")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (; ";")) (while_statement "while (iVar5 = *piVar1, iVar5 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }" (while "while") (parenthesized_expression "(iVar5 = *piVar1, iVar5 == -1)" (( "(") (comma_expression "iVar5 = *piVar1, iVar5 == -1" (assignment_expression "iVar5 = *piVar1" (identifier "iVar5") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (, ",") (binary_expression "iVar5 == -1" (identifier "iVar5") (== "==") (number_literal "-1"))) () ")")) (compound_statement "{\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 6;\n    if (uVar8 == uVar2) {\n      return param_2;\n    }\n  }" ({ "{") (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar1 = piVar1 + 6;" (assignment_expression "piVar1 = piVar1 + 6" (identifier "piVar1") (= "=") (binary_expression "piVar1 + 6" (identifier "piVar1") (+ "+") (number_literal "6"))) (; ";")) (if_statement "if (uVar8 == uVar2) {\n      return param_2;\n    }" (if "if") (parenthesized_expression "(uVar8 == uVar2)" (( "(") (binary_expression "uVar8 == uVar2" (identifier "uVar8") (== "==") (identifier "uVar2")) () ")")) (compound_statement "{\n      return param_2;\n    }" ({ "{") (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";")) (} "}"))) (} "}"))) (while_statement "while (iVar5 == 0) {\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }" (while "while") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = 0x741;\n    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;\n    *piVar1 = param_2;\n    param_2 = param_2 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);\n  }" ({ "{") (expression_statement "iVar5 = 0x741;" (assignment_expression "iVar5 = 0x741" (identifier "iVar5") (= "=") (number_literal "0x741")) (; ";")) (if_statement "if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;" (if "if") (parenthesized_expression "(0xfffffffd < param_2 - 1U)" (( "(") (binary_expression "0xfffffffd < param_2 - 1U" (number_literal "0xfffffffd") (< "<") (binary_expression "param_2 - 1U" (identifier "param_2") (- "-") (number_literal "1U"))) () ")")) (goto_statement "goto LAB_001d1d30;" (goto "goto") (statement_identifier "LAB_001d1d30") (; ";"))) (expression_statement "*piVar1 = param_2;" (assignment_expression "*piVar1 = param_2" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    } while (iVar5 == -1);" (do "do") (compound_statement "{\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return param_2;\n      }\n      piVar1 = piVar1 + 6;\n      iVar5 = *piVar1;\n    }" ({ "{") (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar8 == uVar2) {\n        return param_2;\n      }" (if "if") (parenthesized_expression "(uVar8 == uVar2)" (( "(") (binary_expression "uVar8 == uVar2" (identifier "uVar8") (== "==") (identifier "uVar2")) () ")")) (compound_statement "{\n        return param_2;\n      }" ({ "{") (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";")) (} "}"))) (expression_statement "piVar1 = piVar1 + 6;" (assignment_expression "piVar1 = piVar1 + 6" (identifier "piVar1") (= "=") (binary_expression "piVar1 + 6" (identifier "piVar1") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "iVar5 = *piVar1;" (assignment_expression "iVar5 = *piVar1" (identifier "iVar5") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 == -1)" (( "(") (binary_expression "iVar5 == -1" (identifier "iVar5") (== "==") (number_literal "-1")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar5 = 0x740;" (assignment_expression "iVar5 = 0x740" (identifier "iVar5") (= "=") (number_literal "0x740")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x4570")) (, ",") (number_literal "0x740") (, ",") (binary_expression "PTR_s__s_004c1a50 + 0x5708" (identifier "PTR_s__s_004c1a50") (+ "+") (number_literal "0x5708")) () ")"))) (; ";")) (labeled_statement "LAB_001d1d30:\n  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;" (statement_identifier "LAB_001d1d30") (: ":") (expression_statement "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;" (assignment_expression "puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" (identifier "puVar3") (= "=") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x4570"))) (; ";"))) (expression_statement "puVar10 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar10 = PTR_do_gold_unreachable_004c1a30" (identifier "puVar10") (= "=") (identifier "PTR_do_gold_unreachable_004c1a30")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = *(uint *)(puVar3 + 0xb8);" (assignment_expression "uVar8 = *(uint *)(puVar3 + 0xb8)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(puVar3 + 0xb8)" (* "*") (cast_expression "(uint *)(puVar3 + 0xb8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0xb8)" (( "(") (binary_expression "puVar3 + 0xb8" (identifier "puVar3") (+ "+") (number_literal "0xb8")) () ")"))))) (; ";")) (if_statement "if (uVar8 < 2) {\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(uVar8 < 2)" (( "(") (binary_expression "uVar8 < 2" (identifier "uVar8") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n    return iVar5;\n  }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}"))) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);" (assignment_expression "piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14)" (identifier "piVar1") (= "=") (cast_expression "(int *)(*(int *)(puVar3 + 0xe8) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar3 + 0xe8) + 0x14)" (( "(") (binary_expression "*(int *)(puVar3 + 0xe8) + 0x14" (pointer_expression "*(int *)(puVar3 + 0xe8)" (* "*") (cast_expression "(int *)(puVar3 + 0xe8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0xe8)" (( "(") (binary_expression "puVar3 + 0xe8" (identifier "puVar3") (+ "+") (number_literal "0xe8")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (while_statement "while (iVar6 = *piVar1, iVar6 == -1) {\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }" (while "while") (parenthesized_expression "(iVar6 = *piVar1, iVar6 == -1)" (( "(") (comma_expression "iVar6 = *piVar1, iVar6 == -1" (assignment_expression "iVar6 = *piVar1" (identifier "iVar6") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (, ",") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1"))) () ")")) (compound_statement "{\n    uVar2 = uVar2 + 1;\n    piVar1 = piVar1 + 4;\n    if (uVar8 == uVar2) {\n      return iVar5;\n    }\n  }" ({ "{") (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar1 = piVar1 + 4;" (assignment_expression "piVar1 = piVar1 + 4" (identifier "piVar1") (= "=") (binary_expression "piVar1 + 4" (identifier "piVar1") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (uVar8 == uVar2) {\n      return iVar5;\n    }" (if "if") (parenthesized_expression "(uVar8 == uVar2)" (( "(") (binary_expression "uVar8 == uVar2" (identifier "uVar8") (== "==") (identifier "uVar2")) () ")")) (compound_statement "{\n      return iVar5;\n    }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}"))) (} "}"))) (while_statement "while (iVar6 == 0) {\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }" (while "while") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar7 = 0x741;\n    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;\n    *piVar1 = iVar5;\n    iVar5 = iVar5 + 1;\n    do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);\n  }" ({ "{") (expression_statement "uVar7 = 0x741;" (assignment_expression "uVar7 = 0x741" (identifier "uVar7") (= "=") (number_literal "0x741")) (; ";")) (if_statement "if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;" (if "if") (parenthesized_expression "(0xfffffffd < iVar5 - 1U)" (( "(") (binary_expression "0xfffffffd < iVar5 - 1U" (number_literal "0xfffffffd") (< "<") (binary_expression "iVar5 - 1U" (identifier "iVar5") (- "-") (number_literal "1U"))) () ")")) (goto_statement "goto LAB_001d1e10;" (goto "goto") (statement_identifier "LAB_001d1e10") (; ";"))) (expression_statement "*piVar1 = iVar5;" (assignment_expression "*piVar1 = iVar5" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    } while (iVar6 == -1);" (do "do") (compound_statement "{\n      uVar2 = uVar2 + 1;\n      if (uVar8 == uVar2) {\n        return iVar5;\n      }\n      piVar1 = piVar1 + 4;\n      iVar6 = *piVar1;\n    }" ({ "{") (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar8 == uVar2) {\n        return iVar5;\n      }" (if "if") (parenthesized_expression "(uVar8 == uVar2)" (( "(") (binary_expression "uVar8 == uVar2" (identifier "uVar8") (== "==") (identifier "uVar2")) () ")")) (compound_statement "{\n        return iVar5;\n      }" ({ "{") (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}"))) (expression_statement "piVar1 = piVar1 + 4;" (assignment_expression "piVar1 = piVar1 + 4" (identifier "piVar1") (= "=") (binary_expression "piVar1 + 4" (identifier "piVar1") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar6 = *piVar1;" (assignment_expression "iVar6 = *piVar1" (identifier "iVar6") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar7 = 0x740;" (assignment_expression "uVar7 = 0x740" (identifier "uVar7") (= "=") (number_literal "0x740")) (; ";")) (expression_statement "(**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8);" (call_expression "(**(code **)(puVar10 + 0x2efce8))\n            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8)" (parenthesized_expression "(**(code **)(puVar10 + 0x2efce8))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x2efce8)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x2efce8)" (* "*") (cast_expression "(code **)(puVar10 + 0x2efce8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x2efce8)" (( "(") (binary_expression "puVar10 + 0x2efce8" (identifier "puVar10") (+ "+") (number_literal "0x2efce8")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,\n             0xffffffff,puVar10 + 0x2f74f8)" (( "(") (binary_expression "*(int *)(puVar10 + 0x2ef534) + 0x4570" (pointer_expression "*(int *)(puVar10 + 0x2ef534)" (* "*") (cast_expression "(int *)(puVar10 + 0x2ef534)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x2ef534)" (( "(") (binary_expression "puVar10 + 0x2ef534" (identifier "puVar10") (+ "+") (number_literal "0x2ef534")) () ")")))) (+ "+") (number_literal "0x4570")) (, ",") (number_literal "0x740") (, ",") (binary_expression "*(int *)(puVar10 + 0x2efd08) + 0x5d90" (pointer_expression "*(int *)(puVar10 + 0x2efd08)" (* "*") (cast_expression "(int *)(puVar10 + 0x2efd08)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x2efd08)" (( "(") (binary_expression "puVar10 + 0x2efd08" (identifier "puVar10") (+ "+") (number_literal "0x2efd08")) () ")")))) (+ "+") (number_literal "0x5d90")) (, ",") (number_literal "0xffffffff") (, ",") (binary_expression "puVar10 + 0x2f74f8" (identifier "puVar10") (+ "+") (number_literal "0x2f74f8")) () ")"))) (; ";")) (labeled_statement "LAB_001d1e10:\n  pcVar11 = *(code **)(puVar10 + 0x2efce8);" (statement_identifier "LAB_001d1e10") (: ":") (expression_statement "pcVar11 = *(code **)(puVar10 + 0x2efce8);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x2efce8)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(puVar10 + 0x2efce8)" (* "*") (cast_expression "(code **)(puVar10 + 0x2efce8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x2efce8)" (( "(") (binary_expression "puVar10 + 0x2efce8" (identifier "puVar10") (+ "+") (number_literal "0x2efce8")) () ")"))))) (; ";"))) (expression_statement "iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;" (assignment_expression "iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570" (identifier "iVar5") (= "=") (binary_expression "*(int *)(puVar10 + 0x2ef534) + 0x4570" (pointer_expression "*(int *)(puVar10 + 0x2ef534)" (* "*") (cast_expression "(int *)(puVar10 + 0x2ef534)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x2ef534)" (( "(") (binary_expression "puVar10 + 0x2ef534" (identifier "puVar10") (+ "+") (number_literal "0x2ef534")) () ")")))) (+ "+") (number_literal "0x4570"))) (; ";")) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar5 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar5 + 0xf8)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar5 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar5 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xf8)" (( "(") (binary_expression "iVar5 + 0xf8" (identifier "iVar5") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" (* "*") (cast_expression "(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4)" (( "(") (binary_expression "*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4" (pointer_expression "*(int *)(iVar5 + 0xf4)" (* "*") (cast_expression "(int *)(iVar5 + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xf4)" (( "(") (binary_expression "iVar5 + 0xf4" (identifier "iVar5") (+ "+") (number_literal "0xf4")) () ")")))) (+ "+") (binary_expression "(uVar7 % uVar8) * 4" (parenthesized_expression "(uVar7 % uVar8)" (( "(") (binary_expression "uVar7 % uVar8" (identifier "uVar7") (% "%") (identifier "uVar8")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }" (if "if") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar2 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);\n  }" ({ "{") (expression_statement "uVar2 = ((int *)*piVar1)[1];" (assignment_expression "uVar2 = ((int *)*piVar1)[1]" (identifier "uVar2") (= "=") (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" (( "(") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" (identifier "piVar9") (= "=") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar7 % uVar8 == uVar2 % uVar8);" (do "do") (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar2 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" ({ "{") (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" (identifier "piVar4") (= "=") (identifier "piVar9")) (; ";")) (if_statement "if (uVar2 == uVar7) {\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }" (if "if") (parenthesized_expression "(uVar2 == uVar7)" (( "(") (binary_expression "uVar2 == uVar7" (identifier "uVar2") (== "==") (identifier "uVar7")) () ")")) (compound_statement "{\n        iVar5 = *(int *)(pcVar11 + 0x2efc28);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1eb0;\n      }" ({ "{") (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efc28);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efc28)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar11 + 0x2efc28)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2efc28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2efc28)" (( "(") (binary_expression "pcVar11 + 0x2efc28" (identifier "pcVar11") (+ "+") (number_literal "0x2efc28")) () ")"))))) (; ";")) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" (if "if") (parenthesized_expression "(*piVar1 != 0)" (( "(") (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" ({ "{") (return_statement "return *(int *)(*piVar1 + 8);" (return "return") (pointer_expression "*(int *)(*piVar1 + 8)" (* "*") (cast_expression "(int *)(*piVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar1 + 8)" (( "(") (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_001d1eb0;" (goto "goto") (statement_identifier "LAB_001d1eb0") (; ";")) (} "}"))) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" (identifier "piVar9") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (if_statement "if (piVar9 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar9 == (int *)0x0)" (( "(") (binary_expression "piVar9 == (int *)0x0" (identifier "piVar9") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar2 = piVar9[1];" (assignment_expression "uVar2 = piVar9[1]" (identifier "uVar2") (= "=") (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" (identifier "piVar1") (= "=") (identifier "piVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar7 % uVar8 == uVar2 % uVar8)" (( "(") (binary_expression "uVar7 % uVar8 == uVar2 % uVar8" (binary_expression "uVar7 % uVar8" (identifier "uVar7") (% "%") (identifier "uVar8")) (== "==") (binary_expression "uVar2 % uVar8" (identifier "uVar2") (% "%") (identifier "uVar8"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efc28);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efc28)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar11 + 0x2efc28)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2efc28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2efc28)" (( "(") (binary_expression "pcVar11 + 0x2efc28" (identifier "pcVar11") (+ "+") (number_literal "0x2efc28")) () ")"))))) (; ";")) (labeled_statement "LAB_001d1eb0:\n  uVar2 = 0x8a7;" (statement_identifier "LAB_001d1eb0") (: ":") (expression_statement "uVar2 = 0x8a7;" (assignment_expression "uVar2 = 0x8a7" (identifier "uVar2") (= "=") (number_literal "0x8a7")) (; ";"))) (expression_statement "pcVar12 = *(code **)(pcVar11 + 0x2efc08);" (assignment_expression "pcVar12 = *(code **)(pcVar11 + 0x2efc08)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(pcVar11 + 0x2efc08)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2efc08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2efc08)" (( "(") (binary_expression "pcVar11 + 0x2efc08" (identifier "pcVar11") (+ "+") (number_literal "0x2efc08")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;" (assignment_expression "iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70" (identifier "iVar6") (= "=") (binary_expression "*(int *)(pcVar11 + 0x2efc28) + 0x4d70" (pointer_expression "*(int *)(pcVar11 + 0x2efc28)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2efc28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2efc28)" (( "(") (binary_expression "pcVar11 + 0x2efc28" (identifier "pcVar11") (+ "+") (number_literal "0x2efc28")) () ")")))) (+ "+") (number_literal "0x4d70"))) (; ";")) (expression_statement "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);" (call_expression "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(iVar6,0x8a7,iVar5 + 0x57f0)" (( "(") (identifier "iVar6") (, ",") (number_literal "0x8a7") (, ",") (binary_expression "iVar5 + 0x57f0" (identifier "iVar5") (+ "+") (number_literal "0x57f0")) () ")"))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar6 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar6 + 0xf8)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar6 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar6 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xf8)" (( "(") (binary_expression "iVar6 + 0xf8" (identifier "iVar6") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (* "*") (cast_expression "(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (( "(") (binary_expression "*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4" (pointer_expression "*(int *)(iVar6 + 0xf4)" (* "*") (cast_expression "(int *)(iVar6 + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xf4)" (( "(") (binary_expression "iVar6 + 0xf4" (identifier "iVar6") (+ "+") (number_literal "0xf4")) () ")")))) (+ "+") (binary_expression "(uVar2 % uVar8) * 4" (parenthesized_expression "(uVar2 % uVar8)" (( "(") (binary_expression "uVar2 % uVar8" (identifier "uVar2") (% "%") (identifier "uVar8")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" (if "if") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" ({ "{") (expression_statement "uVar7 = ((int *)*piVar1)[1];" (assignment_expression "uVar7 = ((int *)*piVar1)[1]" (identifier "uVar7") (= "=") (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" (( "(") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" (identifier "piVar9") (= "=") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);" (do "do") (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" ({ "{") (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" (identifier "piVar4") (= "=") (identifier "piVar9")) (; ";")) (if_statement "if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }" (if "if") (parenthesized_expression "(uVar7 == uVar2)" (( "(") (binary_expression "uVar7 == uVar2" (identifier "uVar7") (== "==") (identifier "uVar2")) () ")")) (compound_statement "{\n        iVar5 = *(int *)(pcVar12 + 0x2efb7c);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d1f5c;\n      }" ({ "{") (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efb7c);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efb7c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar12 + 0x2efb7c)" (* "*") (cast_expression "(int *)(pcVar12 + 0x2efb7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x2efb7c)" (( "(") (binary_expression "pcVar12 + 0x2efb7c" (identifier "pcVar12") (+ "+") (number_literal "0x2efb7c")) () ")"))))) (; ";")) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" (if "if") (parenthesized_expression "(*piVar1 != 0)" (( "(") (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" ({ "{") (return_statement "return *(int *)(*piVar1 + 8);" (return "return") (pointer_expression "*(int *)(*piVar1 + 8)" (* "*") (cast_expression "(int *)(*piVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar1 + 8)" (( "(") (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_001d1f5c;" (goto "goto") (statement_identifier "LAB_001d1f5c") (; ";")) (} "}"))) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" (identifier "piVar9") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (if_statement "if (piVar9 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar9 == (int *)0x0)" (( "(") (binary_expression "piVar9 == (int *)0x0" (identifier "piVar9") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar7 = piVar9[1];" (assignment_expression "uVar7 = piVar9[1]" (identifier "uVar7") (= "=") (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" (identifier "piVar1") (= "=") (identifier "piVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 % uVar8 == uVar7 % uVar8)" (( "(") (binary_expression "uVar2 % uVar8 == uVar7 % uVar8" (binary_expression "uVar2 % uVar8" (identifier "uVar2") (% "%") (identifier "uVar8")) (== "==") (binary_expression "uVar7 % uVar8" (identifier "uVar7") (% "%") (identifier "uVar8"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efb7c);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efb7c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar12 + 0x2efb7c)" (* "*") (cast_expression "(int *)(pcVar12 + 0x2efb7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x2efb7c)" (( "(") (binary_expression "pcVar12 + 0x2efb7c" (identifier "pcVar12") (+ "+") (number_literal "0x2efb7c")) () ")"))))) (; ";")) (labeled_statement "LAB_001d1f5c:\n  uVar2 = 0x8a7;" (statement_identifier "LAB_001d1f5c") (: ":") (expression_statement "uVar2 = 0x8a7;" (assignment_expression "uVar2 = 0x8a7" (identifier "uVar2") (= "=") (number_literal "0x8a7")) (; ";"))) (expression_statement "pcVar11 = *(code **)(pcVar12 + 0x2efb5c);" (assignment_expression "pcVar11 = *(code **)(pcVar12 + 0x2efb5c)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(pcVar12 + 0x2efb5c)" (* "*") (cast_expression "(code **)(pcVar12 + 0x2efb5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x2efb5c)" (( "(") (binary_expression "pcVar12 + 0x2efb5c" (identifier "pcVar12") (+ "+") (number_literal "0x2efb5c")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;" (assignment_expression "iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70" (identifier "iVar6") (= "=") (binary_expression "*(int *)(pcVar12 + 0x2efb7c) + 0x4d70" (pointer_expression "*(int *)(pcVar12 + 0x2efb7c)" (* "*") (cast_expression "(int *)(pcVar12 + 0x2efb7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x2efb7c)" (( "(") (binary_expression "pcVar12 + 0x2efb7c" (identifier "pcVar12") (+ "+") (number_literal "0x2efb7c")) () ")")))) (+ "+") (number_literal "0x4d70"))) (; ";")) (expression_statement "(*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);" (call_expression "(*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar6,0x8a7,iVar5 + 0x5ac4)" (( "(") (identifier "iVar6") (, ",") (number_literal "0x8a7") (, ",") (binary_expression "iVar5 + 0x5ac4" (identifier "iVar5") (+ "+") (number_literal "0x5ac4")) () ")"))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar6 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar6 + 0xf8)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar6 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar6 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xf8)" (( "(") (binary_expression "iVar6 + 0xf8" (identifier "iVar6") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (* "*") (cast_expression "(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (( "(") (binary_expression "*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4" (pointer_expression "*(int *)(iVar6 + 0xf4)" (* "*") (cast_expression "(int *)(iVar6 + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xf4)" (( "(") (binary_expression "iVar6 + 0xf4" (identifier "iVar6") (+ "+") (number_literal "0xf4")) () ")")))) (+ "+") (binary_expression "(uVar2 % uVar8) * 4" (parenthesized_expression "(uVar2 % uVar8)" (( "(") (binary_expression "uVar2 % uVar8" (identifier "uVar2") (% "%") (identifier "uVar8")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" (if "if") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" ({ "{") (expression_statement "uVar7 = ((int *)*piVar1)[1];" (assignment_expression "uVar7 = ((int *)*piVar1)[1]" (identifier "uVar7") (= "=") (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" (( "(") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" (identifier "piVar9") (= "=") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);" (do "do") (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" ({ "{") (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" (identifier "piVar4") (= "=") (identifier "piVar9")) (; ";")) (if_statement "if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }" (if "if") (parenthesized_expression "(uVar7 == uVar2)" (( "(") (binary_expression "uVar7 == uVar2" (identifier "uVar7") (== "==") (identifier "uVar2")) () ")")) (compound_statement "{\n        iVar5 = *(int *)(pcVar11 + 0x2efad0);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d2008;\n      }" ({ "{") (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efad0);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efad0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar11 + 0x2efad0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2efad0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2efad0)" (( "(") (binary_expression "pcVar11 + 0x2efad0" (identifier "pcVar11") (+ "+") (number_literal "0x2efad0")) () ")"))))) (; ";")) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" (if "if") (parenthesized_expression "(*piVar1 != 0)" (( "(") (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" ({ "{") (return_statement "return *(int *)(*piVar1 + 8);" (return "return") (pointer_expression "*(int *)(*piVar1 + 8)" (* "*") (cast_expression "(int *)(*piVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar1 + 8)" (( "(") (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_001d2008;" (goto "goto") (statement_identifier "LAB_001d2008") (; ";")) (} "}"))) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" (identifier "piVar9") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (if_statement "if (piVar9 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar9 == (int *)0x0)" (( "(") (binary_expression "piVar9 == (int *)0x0" (identifier "piVar9") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar7 = piVar9[1];" (assignment_expression "uVar7 = piVar9[1]" (identifier "uVar7") (= "=") (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" (identifier "piVar1") (= "=") (identifier "piVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 % uVar8 == uVar7 % uVar8)" (( "(") (binary_expression "uVar2 % uVar8 == uVar7 % uVar8" (binary_expression "uVar2 % uVar8" (identifier "uVar2") (% "%") (identifier "uVar8")) (== "==") (binary_expression "uVar7 % uVar8" (identifier "uVar7") (% "%") (identifier "uVar8"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(pcVar11 + 0x2efad0);" (assignment_expression "iVar5 = *(int *)(pcVar11 + 0x2efad0)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar11 + 0x2efad0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2efad0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2efad0)" (( "(") (binary_expression "pcVar11 + 0x2efad0" (identifier "pcVar11") (+ "+") (number_literal "0x2efad0")) () ")"))))) (; ";")) (labeled_statement "LAB_001d2008:\n  uVar2 = 0x8a7;" (statement_identifier "LAB_001d2008") (: ":") (expression_statement "uVar2 = 0x8a7;" (assignment_expression "uVar2 = 0x8a7" (identifier "uVar2") (= "=") (number_literal "0x8a7")) (; ";"))) (expression_statement "pcVar12 = *(code **)(pcVar11 + 0x2efab0);" (assignment_expression "pcVar12 = *(code **)(pcVar11 + 0x2efab0)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(pcVar11 + 0x2efab0)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2efab0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2efab0)" (( "(") (binary_expression "pcVar11 + 0x2efab0" (identifier "pcVar11") (+ "+") (number_literal "0x2efab0")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;" (assignment_expression "iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70" (identifier "iVar6") (= "=") (binary_expression "*(int *)(pcVar11 + 0x2efad0) + 0x4d70" (pointer_expression "*(int *)(pcVar11 + 0x2efad0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2efad0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2efad0)" (( "(") (binary_expression "pcVar11 + 0x2efad0" (identifier "pcVar11") (+ "+") (number_literal "0x2efad0")) () ")")))) (+ "+") (number_literal "0x4d70"))) (; ";")) (expression_statement "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);" (call_expression "(*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(iVar6,0x8a7,iVar5 + 0x54a8)" (( "(") (identifier "iVar6") (, ",") (number_literal "0x8a7") (, ",") (binary_expression "iVar5 + 0x54a8" (identifier "iVar5") (+ "+") (number_literal "0x54a8")) () ")"))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar6 + 0xf8);" (assignment_expression "uVar8 = *(uint *)(iVar6 + 0xf8)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar6 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar6 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xf8)" (( "(") (binary_expression "iVar6 + 0xf8" (identifier "iVar6") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (if_statement "if (uVar8 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);" (assignment_expression "piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (* "*") (cast_expression "(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4)" (( "(") (binary_expression "*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4" (pointer_expression "*(int *)(iVar6 + 0xf4)" (* "*") (cast_expression "(int *)(iVar6 + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xf4)" (( "(") (binary_expression "iVar6 + 0xf4" (identifier "iVar6") (+ "+") (number_literal "0xf4")) () ")")))) (+ "+") (binary_expression "(uVar2 % uVar8) * 4" (parenthesized_expression "(uVar2 % uVar8)" (( "(") (binary_expression "uVar2 % uVar8" (identifier "uVar2") (% "%") (identifier "uVar8")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar1 != (int *)0x0) {\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" (if "if") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar7 = ((int *)*piVar1)[1];\n    piVar9 = (int *)*piVar1;\n    do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);\n  }" ({ "{") (expression_statement "uVar7 = ((int *)*piVar1)[1];" (assignment_expression "uVar7 = ((int *)*piVar1)[1]" (identifier "uVar7") (= "=") (subscript_expression "((int *)*piVar1)[1]" (parenthesized_expression "((int *)*piVar1)" (( "(") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar9 = (int *)*piVar1;" (assignment_expression "piVar9 = (int *)*piVar1" (identifier "piVar9") (= "=") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (do_statement "do {\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    } while (uVar2 % uVar8 == uVar7 % uVar8);" (do "do") (compound_statement "{\n      piVar4 = piVar9;\n      if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }\n      piVar9 = (int *)*piVar4;\n      if (piVar9 == (int *)0x0) break;\n      uVar7 = piVar9[1];\n      if (uVar8 == 0) {\n        trap(7);\n      }\n      piVar1 = piVar4;\n    }" ({ "{") (expression_statement "piVar4 = piVar9;" (assignment_expression "piVar4 = piVar9" (identifier "piVar4") (= "=") (identifier "piVar9")) (; ";")) (if_statement "if (uVar7 == uVar2) {\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }" (if "if") (parenthesized_expression "(uVar7 == uVar2)" (( "(") (binary_expression "uVar7 == uVar2" (identifier "uVar7") (== "==") (identifier "uVar2")) () ")")) (compound_statement "{\n        iVar5 = *(int *)(pcVar12 + 0x2efa24);\n        if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }\n        goto LAB_001d20b4;\n      }" ({ "{") (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efa24);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efa24)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar12 + 0x2efa24)" (* "*") (cast_expression "(int *)(pcVar12 + 0x2efa24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x2efa24)" (( "(") (binary_expression "pcVar12 + 0x2efa24" (identifier "pcVar12") (+ "+") (number_literal "0x2efa24")) () ")"))))) (; ";")) (if_statement "if (*piVar1 != 0) {\n          return *(int *)(*piVar1 + 8);\n        }" (if "if") (parenthesized_expression "(*piVar1 != 0)" (( "(") (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return *(int *)(*piVar1 + 8);\n        }" ({ "{") (return_statement "return *(int *)(*piVar1 + 8);" (return "return") (pointer_expression "*(int *)(*piVar1 + 8)" (* "*") (cast_expression "(int *)(*piVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar1 + 8)" (( "(") (binary_expression "*piVar1 + 8" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_001d20b4;" (goto "goto") (statement_identifier "LAB_001d20b4") (; ";")) (} "}"))) (expression_statement "piVar9 = (int *)*piVar4;" (assignment_expression "piVar9 = (int *)*piVar4" (identifier "piVar9") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (if_statement "if (piVar9 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar9 == (int *)0x0)" (( "(") (binary_expression "piVar9 == (int *)0x0" (identifier "piVar9") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar7 = piVar9[1];" (assignment_expression "uVar7 = piVar9[1]" (identifier "uVar7") (= "=") (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar8 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = piVar4;" (assignment_expression "piVar1 = piVar4" (identifier "piVar1") (= "=") (identifier "piVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 % uVar8 == uVar7 % uVar8)" (( "(") (binary_expression "uVar2 % uVar8 == uVar7 % uVar8" (binary_expression "uVar2 % uVar8" (identifier "uVar2") (% "%") (identifier "uVar8")) (== "==") (binary_expression "uVar7 % uVar8" (identifier "uVar7") (% "%") (identifier "uVar8"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(pcVar12 + 0x2efa24);" (assignment_expression "iVar5 = *(int *)(pcVar12 + 0x2efa24)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar12 + 0x2efa24)" (* "*") (cast_expression "(int *)(pcVar12 + 0x2efa24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x2efa24)" (( "(") (binary_expression "pcVar12 + 0x2efa24" (identifier "pcVar12") (+ "+") (number_literal "0x2efa24")) () ")"))))) (; ";")) (labeled_statement "LAB_001d20b4:\n  iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);" (statement_identifier "LAB_001d20b4") (: ":") (expression_statement "iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);" (assignment_expression "iVar5 = (**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(pcVar12 + 0x2efa04))\n                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4)" (parenthesized_expression "(**(code **)(pcVar12 + 0x2efa04))" (( "(") (pointer_expression "**(code **)(pcVar12 + 0x2efa04)" (* "*") (pointer_expression "*(code **)(pcVar12 + 0x2efa04)" (* "*") (cast_expression "(code **)(pcVar12 + 0x2efa04)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x2efa04)" (( "(") (binary_expression "pcVar12 + 0x2efa04" (identifier "pcVar12") (+ "+") (number_literal "0x2efa04")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4)" (( "(") (binary_expression "*(int *)(pcVar12 + 0x2efa24) + 0x4d70" (pointer_expression "*(int *)(pcVar12 + 0x2efa24)" (* "*") (cast_expression "(int *)(pcVar12 + 0x2efa24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x2efa24)" (( "(") (binary_expression "pcVar12 + 0x2efa24" (identifier "pcVar12") (+ "+") (number_literal "0x2efa24")) () ")")))) (+ "+") (number_literal "0x4d70")) (, ",") (number_literal "0x8a7") (, ",") (binary_expression "iVar5 + 0x5ea4" (identifier "iVar5") (+ "+") (number_literal "0x5ea4")) () ")")))) (; ";"))) (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (pointer_declarator declarator: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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)))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_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))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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))) (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: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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)))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) 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 (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)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_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: (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))) (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: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))))))) (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 (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (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: (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: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))))))) (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 (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (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: (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: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))))))) (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 (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (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: (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: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))))))) (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 (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (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: (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: (identifier) right: (number_literal))))))) (return_statement (identifier)))))

int MASKED(int param_1,int param_2)

{
  int *piVar1;
  uint uVar2;
  undefined *puVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  int *piVar9;
  undefined *puVar10;
  code *pcVar11;
  code *pcVar12;
  
  uVar8 = *(uint *)(param_1 + 0xb8);
  if (uVar8 < 2) {
    return param_2;
  }
  uVar2 = 1;
  piVar1 = (int *)(*(int *)(param_1 + 0xe8) + 0x1c);
  while (iVar5 = *piVar1, iVar5 == -1) {
    uVar2 = uVar2 + 1;
    piVar1 = piVar1 + 6;
    if (uVar8 == uVar2) {
      return param_2;
    }
  }
  while (iVar5 == 0) {
    iVar5 = 0x741;
    if (0xfffffffd < param_2 - 1U) goto LAB_001d1d30;
    *piVar1 = param_2;
    param_2 = param_2 + 1;
    do {
      uVar2 = uVar2 + 1;
      if (uVar8 == uVar2) {
        return param_2;
      }
      piVar1 = piVar1 + 6;
      iVar5 = *piVar1;
    } while (iVar5 == -1);
  }
  iVar5 = 0x740;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x740,PTR_s__s_004c1a50 + 0x5708);
LAB_001d1d30:
  puVar3 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570;
  puVar10 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)();
  uVar8 = *(uint *)(puVar3 + 0xb8);
  if (uVar8 < 2) {
    return iVar5;
  }
  uVar2 = 1;
  piVar1 = (int *)(*(int *)(puVar3 + 0xe8) + 0x14);
  while (iVar6 = *piVar1, iVar6 == -1) {
    uVar2 = uVar2 + 1;
    piVar1 = piVar1 + 4;
    if (uVar8 == uVar2) {
      return iVar5;
    }
  }
  while (iVar6 == 0) {
    uVar7 = 0x741;
    if (0xfffffffd < iVar5 - 1U) goto LAB_001d1e10;
    *piVar1 = iVar5;
    iVar5 = iVar5 + 1;
    do {
      uVar2 = uVar2 + 1;
      if (uVar8 == uVar2) {
        return iVar5;
      }
      piVar1 = piVar1 + 4;
      iVar6 = *piVar1;
    } while (iVar6 == -1);
  }
  uVar7 = 0x740;
  (**(code **)(puVar10 + 0x2efce8))
            (*(int *)(puVar10 + 0x2ef534) + 0x4570,0x740,*(int *)(puVar10 + 0x2efd08) + 0x5d90,
             0xffffffff,puVar10 + 0x2f74f8);
LAB_001d1e10:
  pcVar11 = *(code **)(puVar10 + 0x2efce8);
  iVar5 = *(int *)(puVar10 + 0x2ef534) + 0x4570;
  (*pcVar11)();
  uVar8 = *(uint *)(iVar5 + 0xf8);
  if (uVar8 == 0) {
    trap(7);
  }
  piVar1 = *(int **)(*(int *)(iVar5 + 0xf4) + (uVar7 % uVar8) * 4);
  if (piVar1 != (int *)0x0) {
    uVar2 = ((int *)*piVar1)[1];
    piVar9 = (int *)*piVar1;
    do {
      piVar4 = piVar9;
      if (uVar2 == uVar7) {
        iVar5 = *(int *)(pcVar11 + 0x2efc28);
        if (*piVar1 != 0) {
          return *(int *)(*piVar1 + 8);
        }
        goto LAB_001d1eb0;
      }
      piVar9 = (int *)*piVar4;
      if (piVar9 == (int *)0x0) break;
      uVar2 = piVar9[1];
      if (uVar8 == 0) {
        trap(7);
      }
      piVar1 = piVar4;
    } while (uVar7 % uVar8 == uVar2 % uVar8);
  }
  iVar5 = *(int *)(pcVar11 + 0x2efc28);
LAB_001d1eb0:
  uVar2 = 0x8a7;
  pcVar12 = *(code **)(pcVar11 + 0x2efc08);
  iVar6 = *(int *)(pcVar11 + 0x2efc28) + 0x4d70;
  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x57f0);
  uVar8 = *(uint *)(iVar6 + 0xf8);
  if (uVar8 == 0) {
    trap(7);
  }
  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);
  if (piVar1 != (int *)0x0) {
    uVar7 = ((int *)*piVar1)[1];
    piVar9 = (int *)*piVar1;
    do {
      piVar4 = piVar9;
      if (uVar7 == uVar2) {
        iVar5 = *(int *)(pcVar12 + 0x2efb7c);
        if (*piVar1 != 0) {
          return *(int *)(*piVar1 + 8);
        }
        goto LAB_001d1f5c;
      }
      piVar9 = (int *)*piVar4;
      if (piVar9 == (int *)0x0) break;
      uVar7 = piVar9[1];
      if (uVar8 == 0) {
        trap(7);
      }
      piVar1 = piVar4;
    } while (uVar2 % uVar8 == uVar7 % uVar8);
  }
  iVar5 = *(int *)(pcVar12 + 0x2efb7c);
LAB_001d1f5c:
  uVar2 = 0x8a7;
  pcVar11 = *(code **)(pcVar12 + 0x2efb5c);
  iVar6 = *(int *)(pcVar12 + 0x2efb7c) + 0x4d70;
  (*pcVar11)(iVar6,0x8a7,iVar5 + 0x5ac4);
  uVar8 = *(uint *)(iVar6 + 0xf8);
  if (uVar8 == 0) {
    trap(7);
  }
  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);
  if (piVar1 != (int *)0x0) {
    uVar7 = ((int *)*piVar1)[1];
    piVar9 = (int *)*piVar1;
    do {
      piVar4 = piVar9;
      if (uVar7 == uVar2) {
        iVar5 = *(int *)(pcVar11 + 0x2efad0);
        if (*piVar1 != 0) {
          return *(int *)(*piVar1 + 8);
        }
        goto LAB_001d2008;
      }
      piVar9 = (int *)*piVar4;
      if (piVar9 == (int *)0x0) break;
      uVar7 = piVar9[1];
      if (uVar8 == 0) {
        trap(7);
      }
      piVar1 = piVar4;
    } while (uVar2 % uVar8 == uVar7 % uVar8);
  }
  iVar5 = *(int *)(pcVar11 + 0x2efad0);
LAB_001d2008:
  uVar2 = 0x8a7;
  pcVar12 = *(code **)(pcVar11 + 0x2efab0);
  iVar6 = *(int *)(pcVar11 + 0x2efad0) + 0x4d70;
  (*pcVar12)(iVar6,0x8a7,iVar5 + 0x54a8);
  uVar8 = *(uint *)(iVar6 + 0xf8);
  if (uVar8 == 0) {
    trap(7);
  }
  piVar1 = *(int **)(*(int *)(iVar6 + 0xf4) + (uVar2 % uVar8) * 4);
  if (piVar1 != (int *)0x0) {
    uVar7 = ((int *)*piVar1)[1];
    piVar9 = (int *)*piVar1;
    do {
      piVar4 = piVar9;
      if (uVar7 == uVar2) {
        iVar5 = *(int *)(pcVar12 + 0x2efa24);
        if (*piVar1 != 0) {
          return *(int *)(*piVar1 + 8);
        }
        goto LAB_001d20b4;
      }
      piVar9 = (int *)*piVar4;
      if (piVar9 == (int *)0x0) break;
      uVar7 = piVar9[1];
      if (uVar8 == 0) {
        trap(7);
      }
      piVar1 = piVar4;
    } while (uVar2 % uVar8 == uVar7 % uVar8);
  }
  iVar5 = *(int *)(pcVar12 + 0x2efa24);
LAB_001d20b4:
  iVar5 = (**(code **)(pcVar12 + 0x2efa04))
                    (*(int *)(pcVar12 + 0x2efa24) + 0x4d70,0x8a7,iVar5 + 0x5ea4);
  return iVar5;
}

