
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */

Image * GetFirstImageInList(Image *images)

{
  bool bVar1;
  Image *pIVar2;
  _Image *p_Var3;
  int iVar4;
  ClassType CVar5;
  Image *pIVar6;
  undefined *puVar7;
  int *piVar8;
  undefined *puVar9;
  int iVar10;
  int iVar11;
  undefined *puVar12;
  code *pcVar13;
  code *pcVar14;
  
  if (images == (Image *)0x0) {
    return (Image *)0x0;
  }
  if (images->signature == 0xabacadab) {
    do {
      pIVar2 = images;
      images = pIVar2->previous;
    } while (images != (_Image *)0x0);
    return pIVar2;
  }
  puVar7 = PTR_LAB_003a88e0 + 0x1e64;
  puVar12 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)
            (puVar7,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);
  if (puVar7 == (undefined *)0x0) {
    return (Image *)0xffffffff;
  }
  iVar10 = *(int *)(puVar12 + 0x2a2cb4);
  if (*(int *)(puVar7 + 0x336c) == -0x54535255) {
    puVar9 = *(undefined **)(puVar7 + 0x3364);
    pIVar2 = (Image *)0x0;
    if (puVar9 == (undefined *)0x0) {
      return (Image *)0x0;
    }
    if (puVar7 != puVar9) {
      do {
        puVar7 = *(undefined **)(puVar9 + 0x3364);
        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);
        if (puVar7 == (undefined *)0x0) {
          return pIVar2;
        }
        bVar1 = puVar7 != puVar9;
        puVar9 = puVar7;
      } while (bVar1);
      iVar10 = *(int *)(puVar12 + 0x2a2cb4);
    }
    iVar10 = iVar10 + -0x4528;
    (**(code **)(puVar12 + 0x2a39d8))
              (*(int *)(puVar12 + 0x2a2cb4) + -0x490c,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a8,
               iVar10,puVar12 + 0x2aac80);
  }
  pcVar13 = *(code **)(puVar12 + 0x2a39d8);
  pIVar2 = (Image *)(*(int *)(puVar12 + 0x2a2cb0) + 0x1e64);
  (*pcVar13)(pIVar2,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a5,iVar10 + -0x4528);
  if (pIVar2 == (Image *)0x0) {
    return (Image *)0x0;
  }
  if (pIVar2->signature == 0xabacadab) {
    do {
      pIVar6 = pIVar2;
      pIVar2 = pIVar6->next;
    } while (pIVar2 != (_Image *)0x0);
    return pIVar6;
  }
  pcVar14 = *(code **)(pcVar13 + 0x2a391c);
  iVar10 = *(int *)(pcVar13 + 0x2a2bf8) + -0x4920;
  piVar8 = (int *)(*(int *)(pcVar13 + 0x2a2bf4) + 0x1e64);
  pIVar2 = (Image *)(*pcVar14)(piVar8,iVar10,0x2f5,*(int *)(pcVar13 + 0x2a2bf8) + -0x4564,
                               pcVar13 + 0x2aabc4);
  if (piVar8 == (int *)0x0) {
    iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4434;
    (**(code **)(pcVar14 + 0x2a38ac))
              (*(int *)(pcVar14 + 0x2a2b88) + -0x48f0,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x56,
               iVar11);
LAB_00105e7c:
    (**(code **)(pcVar14 + 0x2a38ac))
              (*(int *)(pcVar14 + 0x2a2b88) + -0x48d4,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x59,
               iVar11 + -0x4434);
  }
  else {
    if (iVar10 == 0) {
      return pIVar2;
    }
    iVar11 = *(int *)(pcVar14 + 0x2a2b88);
    if (*(int *)(iVar10 + 0x336c) != -0x54535255) goto LAB_00105e7c;
    if (*(int *)(iVar10 + 0x3350) == 0) {
      iVar11 = *piVar8;
      pIVar2 = (Image *)0x0;
    }
    else {
      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))
                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,
                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,
                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340);
      iVar11 = *piVar8;
    }
    if (iVar11 == 0) {
      *piVar8 = iVar10;
      return pIVar2;
    }
    if (*(int *)(iVar11 + 0x336c) == -0x54535255) {
      p_Var3 = (_Image *)(**(code **)(pcVar14 + 0x2a31fc))();
      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10);
      p_Var3->next = pIVar2;
      pIVar2->previous = p_Var3;
      return pIVar2;
    }
  }
  pcVar13 = *(code **)(pcVar14 + 0x2a38ac);
  iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4920;
  iVar10 = *(int *)(pcVar14 + 0x2a2b88) + -0x4d48;
  (*pcVar13)(iVar10,iVar11,0x61,*(int *)(pcVar14 + 0x2a2b88) + -0x4434);
  if (iVar10 == 0) {
    return (Image *)0x0;
  }
  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {
    if (*(int *)(iVar10 + 0x3350) != 0) {
      (**(code **)(pcVar13 + 0x2a3320))
                (0x8000,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,
                 *(int *)(pcVar13 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar13 + 0x2a2a24) + -0x62ac
                 ,iVar10 + 0x340);
    }
    if (iVar11 < 0) {
      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a3098))(iVar10);
      if (pIVar2 != (Image *)0x0) {
        if (iVar11 == -1) {
          return pIVar2;
        }
        iVar10 = -2;
        while( true ) {
          pIVar2 = pIVar2->previous;
          if (pIVar2 == (Image *)0x0) break;
          bVar1 = iVar10 == iVar11;
          iVar10 = iVar10 + -1;
          if (bVar1) {
            return pIVar2;
          }
        }
      }
    }
    else {
      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10);
      if (pIVar2 != (Image *)0x0) {
        if (iVar11 == 0) {
          return pIVar2;
        }
        iVar10 = 0;
        while( true ) {
          pIVar2 = pIVar2->next;
          iVar10 = iVar10 + 1;
          if (pIVar2 == (Image *)0x0) break;
          if (iVar11 == iVar10) {
            return pIVar2;
          }
        }
      }
    }
    return (Image *)0x0;
  }
  pcVar14 = *(code **)(pcVar13 + 0x2a3748);
  iVar10 = *(int *)(pcVar13 + 0x2a2a20) + 0x1e64;
  (*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,0x274,
             *(int *)(pcVar13 + 0x2a2a24) + -0x4500);
  if (iVar10 == 0) {
    return (Image *)0x0;
  }
  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {
    if (*(int *)(iVar10 + 0x3350) != 0) {
      (**(code **)(pcVar14 + 0x2a31cc))
                (0x8000,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,
                 *(int *)(pcVar14 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar14 + 0x2a28d0) + -0x62ac
                 ,iVar10 + 0x340);
    }
    iVar10 = (**(code **)(pcVar14 + 0x2a2f44))(iVar10);
    if (iVar10 == 0) {
      return (Image *)0x0;
    }
    pIVar2 = (Image *)0x0;
    iVar11 = *(int *)(iVar10 + 0x3364);
    if (iVar10 == *(int *)(iVar10 + 0x3364)) {
      iVar10 = *(int *)(pcVar14 + 0x2a28d0);
    }
    else {
      do {
        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);
        if (iVar11 == 0) {
          return pIVar2;
        }
        bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;
        iVar11 = *(int *)(iVar11 + 0x3364);
      } while (bVar1);
      iVar10 = *(int *)(pcVar14 + 0x2a28d0);
    }
    (**(code **)(pcVar14 + 0x2a35f4))
              (*(int *)(pcVar14 + 0x2a28d0) + -0x490c,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2d2,
               iVar10 + -0x453c);
  }
  pcVar13 = *(code **)(pcVar14 + 0x2a35f4);
  iVar10 = *(int *)(pcVar14 + 0x2a28cc) + 0x1e64;
  (*pcVar13)(iVar10,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2cc,
             *(int *)(pcVar14 + 0x2a28d0) + -0x453c);
  if (iVar10 == 0) {
    return (Image *)0x0;
  }
  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {
    if (*(int *)(iVar10 + 0x3350) != 0) {
      (**(code **)(pcVar13 + 0x2a30a8))
                (0x8000,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,
                 *(int *)(pcVar13 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar13 + 0x2a27ac) + -0x62ac
                 ,iVar10 + 0x340,pcVar13 + 0x2aa778);
      return *(Image **)(iVar10 + 0x3368);
    }
    return *(Image **)(iVar10 + 0x3368);
  }
  pcVar14 = *(code **)(pcVar13 + 0x2a34d0);
  iVar10 = *(int *)(pcVar13 + 0x2a27a8) + 0x1e64;
  (*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,0x314,
             *(int *)(pcVar13 + 0x2a27ac) + -0x4578);
  if (iVar10 == 0) {
    return (Image *)0x0;
  }
  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {
    return *(Image **)(iVar10 + 0x3364);
  }
  pcVar13 = *(code **)(pcVar14 + 0x2a3408);
  iVar11 = *(int *)(pcVar14 + 0x2a26e4) + -0x4920;
  iVar10 = *(int *)(pcVar14 + 0x2a26e0) + 0x1e64;
  (*pcVar13)(iVar10,iVar11,0x334,*(int *)(pcVar14 + 0x2a26e4) + -0x45a4,pcVar14 + 0x2aa6b0);
  if (iVar10 == 0) {
    pIVar2 = (Image *)0x0;
  }
  else {
    if (*(int *)(iVar10 + 0x336c) != -0x54535255) {
LAB_00106404:
      (**(code **)(pcVar13 + 0x2a33a4))
                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,
                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8);
      return (Image *)0x0;
    }
    if (*(int *)(iVar10 + 0x3350) != 0) {
      (**(code **)(pcVar13 + 0x2a2f7c))
                (0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,
                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac
                 ,iVar10 + 0x340);
    }
    iVar4 = (**(code **)(pcVar13 + 0x2a3014))(iVar10);
    pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a32a8))(iVar4 + 1,4);
    if (pIVar2 == (Image *)0x0) {
      (**(code **)(pcVar13 + 0x2a2cbc))
                (iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,
                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,
                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,
                 iVar10 + 0x340);
    }
    else {
      CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10);
      pIVar6 = pIVar2;
      if (CVar5 != UndefinedClass) {
        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {
          iVar10 = 0;
          do {
            pIVar6->storage_class = CVar5;
            CVar5 = *(ClassType *)(CVar5 + 0x3368);
            if (CVar5 == UndefinedClass) {
              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);
              goto LAB_00106328;
            }
            pIVar6 = (Image *)&pIVar6->colorspace;
            iVar10 = iVar10 + 1;
          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);
        }
        (**(code **)(pcVar13 + 0x2a33a4))
                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,
                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);
        goto LAB_00106404;
      }
LAB_00106328:
      pIVar6->storage_class = UndefinedClass;
    }
  }
  return pIVar2;
}



int * GetFirstImageInList(int *param_1)

{
  bool bVar1;
  int *piVar2;
  int iVar3;
  undefined *puVar4;
  int *piVar5;
  undefined *puVar6;
  int iVar7;
  int iVar8;
  undefined *puVar9;
  code *pcVar10;
  code *pcVar11;
  
  if (param_1 == (int *)0x0) {
    return (int *)0x0;
  }
  if (param_1[0xcdb] == -0x54535255) {
    do {
      piVar2 = param_1;
      param_1 = (int *)piVar2[0xcd9];
    } while (param_1 != (int *)0x0);
    return piVar2;
  }
  puVar4 = PTR_LAB_003a88e0 + 0x1e64;
  puVar9 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)
            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);
  if (puVar4 == (undefined *)0x0) {
    return (int *)0xffffffff;
  }
  iVar7 = *(int *)(puVar9 + 0x2a2cb4);
  if (*(int *)(puVar4 + 0x336c) == -0x54535255) {
    puVar6 = *(undefined **)(puVar4 + 0x3364);
    piVar2 = (int *)0x0;
    if (puVar6 == (undefined *)0x0) {
      return (int *)0x0;
    }
    if (puVar4 != puVar6) {
      do {
        puVar4 = *(undefined **)(puVar6 + 0x3364);
        piVar2 = (int *)((int)piVar2 + 1);
        if (puVar4 == (undefined *)0x0) {
          return piVar2;
        }
        bVar1 = puVar4 != puVar6;
        puVar6 = puVar4;
      } while (bVar1);
      iVar7 = *(int *)(puVar9 + 0x2a2cb4);
    }
    iVar7 = iVar7 + -0x4528;
    (**(code **)(puVar9 + 0x2a39d8))
              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,
               iVar7,puVar9 + 0x2aac80);
  }
  pcVar10 = *(code **)(puVar9 + 0x2a39d8);
  piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);
  (*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);
  if (piVar2 == (int *)0x0) {
    return (int *)0x0;
  }
  if (piVar2[0xcdb] == -0x54535255) {
    do {
      piVar5 = piVar2;
      piVar2 = (int *)piVar5[0xcda];
    } while (piVar2 != (int *)0x0);
    return piVar5;
  }
  pcVar11 = *(code **)(pcVar10 + 0x2a391c);
  iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;
  piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);
  piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,
                             pcVar10 + 0x2aabc4);
  if (piVar5 == (int *)0x0) {
    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;
    (**(code **)(pcVar11 + 0x2a38ac))
              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,
               iVar8);
LAB_00105e7c:
    (**(code **)(pcVar11 + 0x2a38ac))
              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,
               iVar8 + -0x4434);
  }
  else {
    if (iVar7 == 0) {
      return piVar2;
    }
    iVar8 = *(int *)(pcVar11 + 0x2a2b88);
    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;
    if (*(int *)(iVar7 + 0x3350) == 0) {
      iVar8 = *piVar5;
      piVar2 = (int *)0x0;
    }
    else {
      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))
                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,
                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,
                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);
      iVar8 = *piVar5;
    }
    if (iVar8 == 0) {
      *piVar5 = iVar7;
      return piVar2;
    }
    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {
      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();
      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);
      *(int **)(iVar8 + 0x3368) = piVar2;
      piVar2[0xcd9] = iVar8;
      return piVar2;
    }
  }
  pcVar10 = *(code **)(pcVar11 + 0x2a38ac);
  iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;
  iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;
  (*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);
  if (iVar7 == 0) {
    return (int *)0x0;
  }
  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {
    if (*(int *)(iVar7 + 0x3350) != 0) {
      (**(code **)(pcVar10 + 0x2a3320))
                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,
                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac
                 ,iVar7 + 0x340);
    }
    if (iVar8 < 0) {
      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);
      if (piVar2 != (int *)0x0) {
        if (iVar8 == -1) {
          return piVar2;
        }
        iVar7 = -2;
        while( true ) {
          piVar2 = (int *)piVar2[0xcd9];
          if (piVar2 == (int *)0x0) break;
          bVar1 = iVar7 == iVar8;
          iVar7 = iVar7 + -1;
          if (bVar1) {
            return piVar2;
          }
        }
      }
    }
    else {
      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);
      if (piVar2 != (int *)0x0) {
        if (iVar8 == 0) {
          return piVar2;
        }
        iVar7 = 0;
        while( true ) {
          piVar2 = (int *)piVar2[0xcda];
          iVar7 = iVar7 + 1;
          if (piVar2 == (int *)0x0) break;
          if (iVar8 == iVar7) {
            return piVar2;
          }
        }
      }
    }
    return (int *)0x0;
  }
  pcVar11 = *(code **)(pcVar10 + 0x2a3748);
  iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;
  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,
             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);
  if (iVar7 == 0) {
    return (int *)0x0;
  }
  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {
    if (*(int *)(iVar7 + 0x3350) != 0) {
      (**(code **)(pcVar11 + 0x2a31cc))
                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,
                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac
                 ,iVar7 + 0x340);
    }
    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);
    if (iVar7 == 0) {
      return (int *)0x0;
    }
    piVar2 = (int *)0x0;
    iVar8 = *(int *)(iVar7 + 0x3364);
    if (iVar7 == *(int *)(iVar7 + 0x3364)) {
      iVar7 = *(int *)(pcVar11 + 0x2a28d0);
    }
    else {
      do {
        piVar2 = (int *)((int)piVar2 + 1);
        if (iVar8 == 0) {
          return piVar2;
        }
        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;
        iVar8 = *(int *)(iVar8 + 0x3364);
      } while (bVar1);
      iVar7 = *(int *)(pcVar11 + 0x2a28d0);
    }
    (**(code **)(pcVar11 + 0x2a35f4))
              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,
               iVar7 + -0x453c);
  }
  pcVar10 = *(code **)(pcVar11 + 0x2a35f4);
  iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;
  (*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,
             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);
  if (iVar7 == 0) {
    return (int *)0x0;
  }
  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {
    if (*(int *)(iVar7 + 0x3350) != 0) {
      (**(code **)(pcVar10 + 0x2a30a8))
                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,
                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac
                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);
      return *(int **)(iVar7 + 0x3368);
    }
    return *(int **)(iVar7 + 0x3368);
  }
  pcVar11 = *(code **)(pcVar10 + 0x2a34d0);
  iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;
  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,
             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);
  if (iVar7 == 0) {
    return (int *)0x0;
  }
  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {
    return *(int **)(iVar7 + 0x3364);
  }
  pcVar10 = *(code **)(pcVar11 + 0x2a3408);
  iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;
  iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;
  (*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);
  if (iVar7 == 0) {
    piVar2 = (int *)0x0;
  }
  else {
    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {
LAB_00106404:
      (**(code **)(pcVar10 + 0x2a33a4))
                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,
                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);
      return (int *)0x0;
    }
    if (*(int *)(iVar7 + 0x3350) != 0) {
      (**(code **)(pcVar10 + 0x2a2f7c))
                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,
                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac
                 ,iVar7 + 0x340);
    }
    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);
    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);
    if (piVar2 == (int *)0x0) {
      (**(code **)(pcVar10 + 0x2a2cbc))
                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc
                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,
                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);
    }
    else {
      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);
      piVar5 = piVar2;
      if (iVar7 != 0) {
        if (iVar7 != *(int *)(iVar7 + 0x3368)) {
          iVar8 = 0;
          do {
            *piVar5 = iVar7;
            iVar7 = *(int *)(iVar7 + 0x3368);
            iVar8 = iVar8 + 1;
            if (iVar7 == 0) {
              piVar5 = piVar2 + iVar8;
              goto LAB_00106328;
            }
            piVar5 = piVar5 + 1;
          } while (*(int *)(iVar7 + 0x3368) != iVar7);
        }
        (**(code **)(pcVar10 + 0x2a33a4))
                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,
                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);
        goto LAB_00106404;
      }
LAB_00106328:
      *piVar5 = 0;
    }
  }
  return piVar2;
}


lui gp,0x2b
addiu gp,gp,-0x5310
addu gp,gp,t9
beq a0,zero,0x00105c00
_or v0,a0,zero
lui v1,0xabac
lw a0,0x336c(a0)
ori v1,v1,0xadab
beq a0,v1,0x00105bf4
_lw a3,-0x7fcc(gp)
b 0x00105c08
_addiu sp,sp,-0x20
or v0,v1,zero
lw v1,0x3364(v0)
bne v1,zero,0x00105bf0
_nop
jr ra
_nop
lw a1,-0x7fcc(gp)
li a2,0x245
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x44ec
addiu a1,a1,-0x4920
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_addiu a0,a0,0x1e64
(translation_unit "int * GetFirstImageInList(int *param_1)\n\n{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  \n  if (param_1 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (param_1[0xcdb] == -0x54535255) {\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }\n  puVar4 = PTR_LAB_003a88e0 + 0x1e64;\n  puVar9 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);\n  if (puVar4 == (undefined *)0x0) {\n    return (int *)0xffffffff;\n  }\n  iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n  if (*(int *)(puVar4 + 0x336c) == -0x54535255) {\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }\n  pcVar10 = *(code **)(puVar9 + 0x2a39d8);\n  piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);\n  (*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);\n  if (piVar2 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (piVar2[0xcdb] == -0x54535255) {\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a391c);\n  iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;\n  piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);\n  piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4);\n  if (piVar5 == (int *)0x0) {\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }\n  else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a38ac);\n  iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;\n  (*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a3748);\n  iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a35f4);\n  iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;\n  (*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a34d0);\n  iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    return *(int **)(iVar7 + 0x3364);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a3408);\n  iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;\n  (*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);\n  if (iVar7 == 0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }\n  return piVar2;\n}\n\n" (function_definition "int * GetFirstImageInList(int *param_1)\n\n{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  \n  if (param_1 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (param_1[0xcdb] == -0x54535255) {\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }\n  puVar4 = PTR_LAB_003a88e0 + 0x1e64;\n  puVar9 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);\n  if (puVar4 == (undefined *)0x0) {\n    return (int *)0xffffffff;\n  }\n  iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n  if (*(int *)(puVar4 + 0x336c) == -0x54535255) {\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }\n  pcVar10 = *(code **)(puVar9 + 0x2a39d8);\n  piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);\n  (*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);\n  if (piVar2 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (piVar2[0xcdb] == -0x54535255) {\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a391c);\n  iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;\n  piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);\n  piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4);\n  if (piVar5 == (int *)0x0) {\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }\n  else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a38ac);\n  iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;\n  (*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a3748);\n  iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a35f4);\n  iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;\n  (*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a34d0);\n  iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    return *(int **)(iVar7 + 0x3364);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a3408);\n  iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;\n  (*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);\n  if (iVar7 == 0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }\n  return piVar2;\n}" primitive_type (pointer_declarator "* GetFirstImageInList(int *param_1)" * (function_declarator "GetFirstImageInList(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  \n  if (param_1 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (param_1[0xcdb] == -0x54535255) {\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }\n  puVar4 = PTR_LAB_003a88e0 + 0x1e64;\n  puVar9 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);\n  if (puVar4 == (undefined *)0x0) {\n    return (int *)0xffffffff;\n  }\n  iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n  if (*(int *)(puVar4 + 0x336c) == -0x54535255) {\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }\n  pcVar10 = *(code **)(puVar9 + 0x2a39d8);\n  piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);\n  (*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);\n  if (piVar2 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (piVar2[0xcdb] == -0x54535255) {\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a391c);\n  iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;\n  piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);\n  piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4);\n  if (piVar5 == (int *)0x0) {\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }\n  else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a38ac);\n  iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;\n  (*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a3748);\n  iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a35f4);\n  iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;\n  (*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a34d0);\n  iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    return *(int **)(iVar7 + 0x3364);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a3408);\n  iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;\n  (*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);\n  if (iVar7 == 0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }\n  return piVar2;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (if_statement "if (param_1 == (int *)0x0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (param_1[0xcdb] == -0x54535255) {\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }" if (parenthesized_expression "(param_1[0xcdb] == -0x54535255)" ( (binary_expression "param_1[0xcdb] == -0x54535255" (subscript_expression "param_1[0xcdb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }" { (do_statement "do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);" do (compound_statement "{\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    }" { (expression_statement "piVar2 = param_1;" (assignment_expression "piVar2 = param_1" identifier = identifier) ;) (expression_statement "param_1 = (int *)piVar2[0xcd9];" (assignment_expression "param_1 = (int *)piVar2[0xcd9]" identifier = (cast_expression "(int *)piVar2[0xcd9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[0xcd9]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (return_statement "return piVar2;" return identifier ;) })) (expression_statement "puVar4 = PTR_LAB_003a88e0 + 0x1e64;" (assignment_expression "puVar4 = PTR_LAB_003a88e0 + 0x1e64" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x1e64" identifier + number_literal)) ;) (expression_statement "puVar9 = PTR___assert_fail_003a9608;" (assignment_expression "puVar9 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x4920" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x44ec" identifier + number_literal) ))) ;) (if_statement "if (puVar4 == (undefined *)0x0) {\n    return (int *)0xffffffff;\n  }" if (parenthesized_expression "(puVar4 == (undefined *)0x0)" ( (binary_expression "puVar4 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (int *)0xffffffff;\n  }" { (return_statement "return (int *)0xffffffff;" return (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar7 = *(int *)(puVar9 + 0x2a2cb4);" (assignment_expression "iVar7 = *(int *)(puVar9 + 0x2a2cb4)" identifier = (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" * (cast_expression "(int *)(puVar9 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb4)" ( (binary_expression "puVar9 + 0x2a2cb4" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar4 + 0x336c) == -0x54535255) {\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }" if (parenthesized_expression "(*(int *)(puVar4 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(puVar4 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(puVar4 + 0x336c)" * (cast_expression "(int *)(puVar4 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x336c)" ( (binary_expression "puVar4 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }" { (expression_statement "puVar6 = *(undefined **)(puVar4 + 0x3364);" (assignment_expression "puVar6 = *(undefined **)(puVar4 + 0x3364)" identifier = (pointer_expression "*(undefined **)(puVar4 + 0x3364)" * (cast_expression "(undefined **)(puVar4 + 0x3364)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x3364)" ( (binary_expression "puVar4 + 0x3364" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }" if (parenthesized_expression "(puVar6 == (undefined *)0x0)" ( (binary_expression "puVar6 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (int *)0x0;\n    }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }" if (parenthesized_expression "(puVar4 != puVar6)" ( (binary_expression "puVar4 != puVar6" identifier != identifier) )) (compound_statement "{\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }" { (do_statement "do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);" do (compound_statement "{\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      }" { (expression_statement "puVar4 = *(undefined **)(puVar6 + 0x3364);" (assignment_expression "puVar4 = *(undefined **)(puVar6 + 0x3364)" identifier = (pointer_expression "*(undefined **)(puVar6 + 0x3364)" * (cast_expression "(undefined **)(puVar6 + 0x3364)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x3364)" ( (binary_expression "puVar6 + 0x3364" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = (int *)((int)piVar2 + 1);" (assignment_expression "piVar2 = (int *)((int)piVar2 + 1)" identifier = (cast_expression "(int *)((int)piVar2 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 1)" ( (binary_expression "(int)piVar2 + 1" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }" if (parenthesized_expression "(puVar4 == (undefined *)0x0)" ( (binary_expression "puVar4 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return piVar2;\n        }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "bVar1 = puVar4 != puVar6;" (assignment_expression "bVar1 = puVar4 != puVar6" identifier = (binary_expression "puVar4 != puVar6" identifier != identifier)) ;) (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (expression_statement "iVar7 = *(int *)(puVar9 + 0x2a2cb4);" (assignment_expression "iVar7 = *(int *)(puVar9 + 0x2a2cb4)" identifier = (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" * (cast_expression "(int *)(puVar9 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb4)" ( (binary_expression "puVar9 + 0x2a2cb4" identifier + number_literal) ))))) ;) })) (expression_statement "iVar7 = iVar7 + -0x4528;" (assignment_expression "iVar7 = iVar7 + -0x4528" identifier = (binary_expression "iVar7 + -0x4528" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);" (call_expression "(**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80)" (parenthesized_expression "(**(code **)(puVar9 + 0x2a39d8))" ( (pointer_expression "**(code **)(puVar9 + 0x2a39d8)" * (pointer_expression "*(code **)(puVar9 + 0x2a39d8)" * (cast_expression "(code **)(puVar9 + 0x2a39d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x2a39d8)" ( (binary_expression "puVar9 + 0x2a39d8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80)" ( (binary_expression "*(int *)(puVar9 + 0x2a2cb4) + -0x490c" (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" * (cast_expression "(int *)(puVar9 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb4)" ( (binary_expression "puVar9 + 0x2a2cb4" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar9 + 0x2a2cb4) + -0x4920" (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" * (cast_expression "(int *)(puVar9 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb4)" ( (binary_expression "puVar9 + 0x2a2cb4" identifier + number_literal) )))) + number_literal) , number_literal , identifier , (binary_expression "puVar9 + 0x2aac80" identifier + number_literal) ))) ;) })) (expression_statement "pcVar10 = *(code **)(puVar9 + 0x2a39d8);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0x2a39d8)" identifier = (pointer_expression "*(code **)(puVar9 + 0x2a39d8)" * (cast_expression "(code **)(puVar9 + 0x2a39d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x2a39d8)" ( (binary_expression "puVar9 + 0x2a39d8" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);" (assignment_expression "piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64)" identifier = (cast_expression "(int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64)" ( (binary_expression "*(int *)(puVar9 + 0x2a2cb0) + 0x1e64" (pointer_expression "*(int *)(puVar9 + 0x2a2cb0)" * (cast_expression "(int *)(puVar9 + 0x2a2cb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb0)" ( (binary_expression "puVar9 + 0x2a2cb0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);" (call_expression "(*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528)" ( identifier , (binary_expression "*(int *)(puVar9 + 0x2a2cb4) + -0x4920" (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" * (cast_expression "(int *)(puVar9 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb4)" ( (binary_expression "puVar9 + 0x2a2cb4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar7 + -0x4528" identifier + number_literal) ))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (piVar2[0xcdb] == -0x54535255) {\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }" if (parenthesized_expression "(piVar2[0xcdb] == -0x54535255)" ( (binary_expression "piVar2[0xcdb] == -0x54535255" (subscript_expression "piVar2[0xcdb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }" { (do_statement "do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);" do (compound_statement "{\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    }" { (expression_statement "piVar5 = piVar2;" (assignment_expression "piVar5 = piVar2" identifier = identifier) ;) (expression_statement "piVar2 = (int *)piVar5[0xcda];" (assignment_expression "piVar2 = (int *)piVar5[0xcda]" identifier = (cast_expression "(int *)piVar5[0xcda]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[0xcda]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (return_statement "return piVar5;" return identifier ;) })) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x2a391c);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x2a391c)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x2a391c)" * (cast_expression "(code **)(pcVar10 + 0x2a391c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a391c)" ( (binary_expression "pcVar10 + 0x2a391c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;" (assignment_expression "iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920" identifier = (binary_expression "*(int *)(pcVar10 + 0x2a2bf8) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2bf8)" * (cast_expression "(int *)(pcVar10 + 0x2a2bf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2bf8)" ( (binary_expression "pcVar10 + 0x2a2bf8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);" (assignment_expression "piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64)" identifier = (cast_expression "(int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64)" ( (binary_expression "*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a2bf4)" * (cast_expression "(int *)(pcVar10 + 0x2a2bf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2bf4)" ( (binary_expression "pcVar10 + 0x2a2bf4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4);" (assignment_expression "piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" identifier = (cast_expression "(int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2bf8) + -0x4564" (pointer_expression "*(int *)(pcVar10 + 0x2a2bf8)" * (cast_expression "(int *)(pcVar10 + 0x2a2bf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2bf8)" ( (binary_expression "pcVar10 + 0x2a2bf8" identifier + number_literal) )))) + number_literal) , (binary_expression "pcVar10 + 0x2aabc4" identifier + number_literal) ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }\n  else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }" { (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4434" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);" (call_expression "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a38ac))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a38ac)" * (pointer_expression "*(code **)(pcVar11 + 0x2a38ac)" * (cast_expression "(code **)(pcVar11 + 0x2a38ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a38ac)" ( (binary_expression "pcVar11 + 0x2a38ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8)" ( (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x48f0" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);" statement_identifier : (expression_statement "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);" (call_expression "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a38ac))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a38ac)" * (pointer_expression "*(code **)(pcVar11 + 0x2a38ac)" * (cast_expression "(code **)(pcVar11 + 0x2a38ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a38ac)" ( (binary_expression "pcVar11 + 0x2a38ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434)" ( (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x48d4" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar8 + -0x4434" identifier + number_literal) ))) ;)) }) (else_clause "else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }" else (compound_statement "{\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }" { (if_statement "if (iVar7 == 0) {\n      return piVar2;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      return piVar2;\n    }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a2b88);" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a2b88)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00105e7c;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x3350) == 0)" ( (binary_expression "*(int *)(iVar7 + 0x3350) == 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" * (cast_expression "(int *)(iVar7 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3350)" ( (binary_expression "iVar7 + 0x3350" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }" { (expression_statement "iVar8 = *piVar5;" (assignment_expression "iVar8 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }" else (compound_statement "{\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }" { (expression_statement "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" identifier = (cast_expression "(int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a3484))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a3484)" * (pointer_expression "*(code **)(pcVar11 + 0x2a3484)" * (cast_expression "(code **)(pcVar11 + 0x2a3484)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a3484)" ( (binary_expression "pcVar11 + 0x2a3484" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4448" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x62ac" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *piVar5;" (assignment_expression "iVar8 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) }))) (if_statement "if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      *piVar5 = iVar7;\n      return piVar2;\n    }" { (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" * identifier) = identifier) ;) (return_statement "return piVar2;" return identifier ;) })) (if_statement "if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }" if (parenthesized_expression "(*(int *)(iVar8 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar8 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar8 + 0x336c)" * (cast_expression "(int *)(iVar8 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x336c)" ( (binary_expression "iVar8 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }" { (expression_statement "iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();" (assignment_expression "iVar8 = (**(code **)(pcVar11 + 0x2a31fc))()" identifier = (call_expression "(**(code **)(pcVar11 + 0x2a31fc))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a31fc))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a31fc)" * (pointer_expression "*(code **)(pcVar11 + 0x2a31fc)" * (cast_expression "(code **)(pcVar11 + 0x2a31fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a31fc)" ( (binary_expression "pcVar11 + 0x2a31fc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7)" identifier = (cast_expression "(int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar11 + 0x2a36f0))(iVar7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a36f0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a36f0)" * (pointer_expression "*(code **)(pcVar11 + 0x2a36f0)" * (cast_expression "(code **)(pcVar11 + 0x2a36f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a36f0)" ( (binary_expression "pcVar11 + 0x2a36f0" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "*(int **)(iVar8 + 0x3368) = piVar2;" (assignment_expression "*(int **)(iVar8 + 0x3368) = piVar2" (pointer_expression "*(int **)(iVar8 + 0x3368)" * (cast_expression "(int **)(iVar8 + 0x3368)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x3368)" ( (binary_expression "iVar8 + 0x3368" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar2[0xcd9] = iVar8;" (assignment_expression "piVar2[0xcd9] = iVar8" (subscript_expression "piVar2[0xcd9]" identifier [ number_literal ]) = identifier) ;) (return_statement "return piVar2;" return identifier ;) })) }))) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x2a38ac);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x2a38ac)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x2a38ac)" * (cast_expression "(code **)(pcVar11 + 0x2a38ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a38ac)" ( (binary_expression "pcVar11 + 0x2a38ac" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4d48" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);" (call_expression "(*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4434" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }" { (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" * (cast_expression "(int *)(iVar7 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3350)" ( (binary_expression "iVar7 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a3320))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a3320)" * (pointer_expression "*(code **)(pcVar10 + 0x2a3320)" * (cast_expression "(code **)(pcVar10 + 0x2a3320)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a3320)" ( (binary_expression "pcVar10 + 0x2a3320" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" * (cast_expression "(int *)(pcVar10 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a24)" ( (binary_expression "pcVar10 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4514" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" * (cast_expression "(int *)(pcVar10 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a24)" ( (binary_expression "pcVar10 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x62ac" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" * (cast_expression "(int *)(pcVar10 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a24)" ( (binary_expression "pcVar10 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) ))) ;) })) (if_statement "if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }" { (expression_statement "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7)" identifier = (cast_expression "(int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar10 + 0x2a3098))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a3098))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a3098)" * (pointer_expression "*(code **)(pcVar10 + 0x2a3098)" * (cast_expression "(code **)(pcVar10 + 0x2a3098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a3098)" ( (binary_expression "pcVar10 + 0x2a3098" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))))) ;) (if_statement "if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }" { (if_statement "if (iVar8 == -1) {\n          return piVar2;\n        }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n          return piVar2;\n        }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "iVar7 = -2;" (assignment_expression "iVar7 = -2" identifier = number_literal) ;) (while_statement "while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }" { (expression_statement "piVar2 = (int *)piVar2[0xcd9];" (assignment_expression "piVar2 = (int *)piVar2[0xcd9]" identifier = (cast_expression "(int *)piVar2[0xcd9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[0xcd9]" identifier [ number_literal ]))) ;) (if_statement "if (piVar2 == (int *)0x0) break;" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = iVar7 == iVar8;" (assignment_expression "bVar1 = iVar7 == iVar8" identifier = (binary_expression "iVar7 == iVar8" identifier == identifier)) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (if_statement "if (bVar1) {\n            return piVar2;\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            return piVar2;\n          }" { (return_statement "return piVar2;" return identifier ;) })) })) })) }) (else_clause "else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }" else (compound_statement "{\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }" { (expression_statement "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7)" identifier = (cast_expression "(int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar10 + 0x2a358c))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a358c))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a358c)" * (pointer_expression "*(code **)(pcVar10 + 0x2a358c)" * (cast_expression "(code **)(pcVar10 + 0x2a358c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a358c)" ( (binary_expression "pcVar10 + 0x2a358c" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))))) ;) (if_statement "if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }" { (if_statement "if (iVar8 == 0) {\n          return piVar2;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          return piVar2;\n        }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }" { (expression_statement "piVar2 = (int *)piVar2[0xcda];" (assignment_expression "piVar2 = (int *)piVar2[0xcda]" identifier = (cast_expression "(int *)piVar2[0xcda]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[0xcda]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (piVar2 == (int *)0x0) break;" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (iVar8 == iVar7) {\n            return piVar2;\n          }" if (parenthesized_expression "(iVar8 == iVar7)" ( (binary_expression "iVar8 == iVar7" identifier == identifier) )) (compound_statement "{\n            return piVar2;\n          }" { (return_statement "return piVar2;" return identifier ;) })) })) })) }))) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x2a3748);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x2a3748)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x2a3748)" * (cast_expression "(code **)(pcVar10 + 0x2a3748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a3748)" ( (binary_expression "pcVar10 + 0x2a3748" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar10 + 0x2a2a20) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a2a20)" * (cast_expression "(int *)(pcVar10 + 0x2a2a20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a20)" ( (binary_expression "pcVar10 + 0x2a2a20" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);" (call_expression "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500)" ( identifier , (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" * (cast_expression "(int *)(pcVar10 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a24)" ( (binary_expression "pcVar10 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4500" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" * (cast_expression "(int *)(pcVar10 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a24)" ( (binary_expression "pcVar10 + 0x2a2a24" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }" { (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" * (cast_expression "(int *)(iVar7 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3350)" ( (binary_expression "iVar7 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a31cc))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a31cc)" * (pointer_expression "*(code **)(pcVar11 + 0x2a31cc)" * (cast_expression "(code **)(pcVar11 + 0x2a31cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a31cc)" ( (binary_expression "pcVar11 + 0x2a31cc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4550" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x62ac" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) ))) ;) })) (expression_statement "iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);" (assignment_expression "iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7)" identifier = (call_expression "(**(code **)(pcVar11 + 0x2a2f44))(iVar7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a2f44))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a2f44)" * (pointer_expression "*(code **)(pcVar11 + 0x2a2f44)" * (cast_expression "(code **)(pcVar11 + 0x2a2f44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a2f44)" ( (binary_expression "pcVar11 + 0x2a2f44" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar7 == 0) {\n      return (int *)0x0;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      return (int *)0x0;\n    }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = *(int *)(iVar7 + 0x3364);" (assignment_expression "iVar8 = *(int *)(iVar7 + 0x3364)" identifier = (pointer_expression "*(int *)(iVar7 + 0x3364)" * (cast_expression "(int *)(iVar7 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3364)" ( (binary_expression "iVar7 + 0x3364" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" if (parenthesized_expression "(iVar7 == *(int *)(iVar7 + 0x3364))" ( (binary_expression "iVar7 == *(int *)(iVar7 + 0x3364)" identifier == (pointer_expression "*(int *)(iVar7 + 0x3364)" * (cast_expression "(int *)(iVar7 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3364)" ( (binary_expression "iVar7 + 0x3364" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" { (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a28d0);" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a28d0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" else (compound_statement "{\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" { (do_statement "do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);" do (compound_statement "{\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      }" { (expression_statement "piVar2 = (int *)((int)piVar2 + 1);" (assignment_expression "piVar2 = (int *)((int)piVar2 + 1)" identifier = (cast_expression "(int *)((int)piVar2 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 1)" ( (binary_expression "(int)piVar2 + 1" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (iVar8 == 0) {\n          return piVar2;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          return piVar2;\n        }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;" (assignment_expression "bVar1 = *(int *)(iVar8 + 0x3364) != iVar8" identifier = (binary_expression "*(int *)(iVar8 + 0x3364) != iVar8" (pointer_expression "*(int *)(iVar8 + 0x3364)" * (cast_expression "(int *)(iVar8 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3364)" ( (binary_expression "iVar8 + 0x3364" identifier + number_literal) )))) != identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar8 + 0x3364);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x3364)" identifier = (pointer_expression "*(int *)(iVar8 + 0x3364)" * (cast_expression "(int *)(iVar8 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3364)" ( (binary_expression "iVar8 + 0x3364" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a28d0);" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a28d0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);" (call_expression "(**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a35f4))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a35f4)" * (pointer_expression "*(code **)(pcVar11 + 0x2a35f4)" * (cast_expression "(code **)(pcVar11 + 0x2a35f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a35f4)" ( (binary_expression "pcVar11 + 0x2a35f4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c)" ( (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x490c" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar7 + -0x453c" identifier + number_literal) ))) ;) })) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x2a35f4);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x2a35f4)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x2a35f4)" * (cast_expression "(code **)(pcVar11 + 0x2a35f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a35f4)" ( (binary_expression "pcVar11 + 0x2a35f4" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a28cc) + 0x1e64" (pointer_expression "*(int *)(pcVar11 + 0x2a28cc)" * (cast_expression "(int *)(pcVar11 + 0x2a28cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28cc)" ( (binary_expression "pcVar11 + 0x2a28cc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);" (call_expression "(*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c)" ( identifier , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x453c" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }" { (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" * (cast_expression "(int *)(iVar7 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3350)" ( (binary_expression "iVar7 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }" { (expression_statement "(**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);" (call_expression "(**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a30a8))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a30a8)" * (pointer_expression "*(code **)(pcVar10 + 0x2a30a8)" * (cast_expression "(code **)(pcVar10 + 0x2a30a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a30a8)" ( (binary_expression "pcVar10 + 0x2a30a8" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778)" ( number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" * (cast_expression "(int *)(pcVar10 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27ac)" ( (binary_expression "pcVar10 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x458c" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" * (cast_expression "(int *)(pcVar10 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27ac)" ( (binary_expression "pcVar10 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x62ac" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" * (cast_expression "(int *)(pcVar10 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27ac)" ( (binary_expression "pcVar10 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) , (binary_expression "pcVar10 + 0x2aa778" identifier + number_literal) ))) ;) (return_statement "return *(int **)(iVar7 + 0x3368);" return (pointer_expression "*(int **)(iVar7 + 0x3368)" * (cast_expression "(int **)(iVar7 + 0x3368)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3368)" ( (binary_expression "iVar7 + 0x3368" identifier + number_literal) )))) ;) })) (return_statement "return *(int **)(iVar7 + 0x3368);" return (pointer_expression "*(int **)(iVar7 + 0x3368)" * (cast_expression "(int **)(iVar7 + 0x3368)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3368)" ( (binary_expression "iVar7 + 0x3368" identifier + number_literal) )))) ;) })) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x2a34d0);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x2a34d0)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x2a34d0)" * (cast_expression "(code **)(pcVar10 + 0x2a34d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a34d0)" ( (binary_expression "pcVar10 + 0x2a34d0" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar10 + 0x2a27a8) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a27a8)" * (cast_expression "(int *)(pcVar10 + 0x2a27a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27a8)" ( (binary_expression "pcVar10 + 0x2a27a8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);" (call_expression "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578)" ( identifier , (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" * (cast_expression "(int *)(pcVar10 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27ac)" ( (binary_expression "pcVar10 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x4578" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" * (cast_expression "(int *)(pcVar10 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27ac)" ( (binary_expression "pcVar10 + 0x2a27ac" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    return *(int **)(iVar7 + 0x3364);\n  }" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    return *(int **)(iVar7 + 0x3364);\n  }" { (return_statement "return *(int **)(iVar7 + 0x3364);" return (pointer_expression "*(int **)(iVar7 + 0x3364)" * (cast_expression "(int **)(iVar7 + 0x3364)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3364)" ( (binary_expression "iVar7 + 0x3364" identifier + number_literal) )))) ;) })) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x2a3408);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x2a3408)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x2a3408)" * (cast_expression "(code **)(pcVar11 + 0x2a3408)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a3408)" ( (binary_expression "pcVar11 + 0x2a3408" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a26e4) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a26e4)" * (cast_expression "(int *)(pcVar11 + 0x2a26e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a26e4)" ( (binary_expression "pcVar11 + 0x2a26e4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a26e0) + 0x1e64" (pointer_expression "*(int *)(pcVar11 + 0x2a26e0)" * (cast_expression "(int *)(pcVar11 + 0x2a26e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a26e0)" ( (binary_expression "pcVar11 + 0x2a26e0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);" (call_expression "(*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a26e4) + -0x45a4" (pointer_expression "*(int *)(pcVar11 + 0x2a26e4)" * (cast_expression "(int *)(pcVar11 + 0x2a26e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a26e4)" ( (binary_expression "pcVar11 + 0x2a26e4" identifier + number_literal) )))) + number_literal) , (binary_expression "pcVar11 + 0x2aa6b0" identifier + number_literal) ))) ;) (if_statement "if (iVar7 == 0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar2 = (int *)0x0;\n  }" { (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }" else (compound_statement "{\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }" { (if_statement "if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }" { (labeled_statement "LAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);" statement_identifier : (expression_statement "(**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);" (call_expression "(**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a33a4))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a33a4)" * (pointer_expression "*(code **)(pcVar10 + 0x2a33a4)" * (cast_expression "(code **)(pcVar10 + 0x2a33a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a33a4)" ( (binary_expression "pcVar10 + 0x2a33a4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8)" ( (binary_expression "*(int *)(pcVar10 + 0x2a267c) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a267c)" * (cast_expression "(int *)(pcVar10 + 0x2a267c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a267c)" ( (binary_expression "pcVar10 + 0x2a267c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45b8" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) ))) ;)) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" * (cast_expression "(int *)(iVar7 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3350)" ( (binary_expression "iVar7 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a2f7c))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a2f7c)" * (pointer_expression "*(code **)(pcVar10 + 0x2a2f7c)" * (cast_expression "(code **)(pcVar10 + 0x2a2f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a2f7c)" ( (binary_expression "pcVar10 + 0x2a2f7c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45cc" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x62ac" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7)" identifier = (call_expression "(**(code **)(pcVar10 + 0x2a3014))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a3014))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a3014)" * (pointer_expression "*(code **)(pcVar10 + 0x2a3014)" * (cast_expression "(code **)(pcVar10 + 0x2a3014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a3014)" ( (binary_expression "pcVar10 + 0x2a3014" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4)" identifier = (cast_expression "(int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a32a8))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a32a8)" * (pointer_expression "*(code **)(pcVar10 + 0x2a32a8)" * (cast_expression "(code **)(pcVar10 + 0x2a32a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a32a8)" ( (binary_expression "pcVar10 + 0x2a32a8" identifier + number_literal) ))))) )) (argument_list "(iVar3 + 1,4)" ( (binary_expression "iVar3 + 1" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a2cbc))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a2cbc)" * (pointer_expression "*(code **)(pcVar10 + 0x2a2cbc)" * (cast_expression "(code **)(pcVar10 + 0x2a2cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a2cbc)" ( (binary_expression "pcVar10 + 0x2a2cbc" identifier + number_literal) ))))) )) (argument_list "(iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340)" ( identifier , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45cc" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a267c) + 0x16f8" (pointer_expression "*(int *)(pcVar10 + 0x2a267c)" * (cast_expression "(int *)(pcVar10 + 0x2a267c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a267c)" ( (binary_expression "pcVar10 + 0x2a267c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a267c) + 0x3e28" (pointer_expression "*(int *)(pcVar10 + 0x2a267c)" * (cast_expression "(int *)(pcVar10 + 0x2a267c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a267c)" ( (binary_expression "pcVar10 + 0x2a267c" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) ))) ;) }) (else_clause "else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }" else (compound_statement "{\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }" { (expression_statement "iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);" (assignment_expression "iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7)" identifier = (call_expression "(**(code **)(pcVar10 + 0x2a31e8))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a31e8))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a31e8)" * (pointer_expression "*(code **)(pcVar10 + 0x2a31e8)" * (cast_expression "(code **)(pcVar10 + 0x2a31e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a31e8)" ( (binary_expression "pcVar10 + 0x2a31e8" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "piVar5 = piVar2;" (assignment_expression "piVar5 = piVar2" identifier = identifier) ;) (if_statement "if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }" { (if_statement "if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }" if (parenthesized_expression "(iVar7 != *(int *)(iVar7 + 0x3368))" ( (binary_expression "iVar7 != *(int *)(iVar7 + 0x3368)" identifier != (pointer_expression "*(int *)(iVar7 + 0x3368)" * (cast_expression "(int *)(iVar7 + 0x3368)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3368)" ( (binary_expression "iVar7 + 0x3368" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);" do (compound_statement "{\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          }" { (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" * identifier) = identifier) ;) (expression_statement "iVar7 = *(int *)(iVar7 + 0x3368);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x3368)" identifier = (pointer_expression "*(int *)(iVar7 + 0x3368)" * (cast_expression "(int *)(iVar7 + 0x3368)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3368)" ( (binary_expression "iVar7 + 0x3368" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }" { (expression_statement "piVar5 = piVar2 + iVar8;" (assignment_expression "piVar5 = piVar2 + iVar8" identifier = (binary_expression "piVar2 + iVar8" identifier + identifier)) ;) (goto_statement "goto LAB_00106328;" goto statement_identifier ;) })) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)(iVar7 + 0x3368) != iVar7)" ( (binary_expression "*(int *)(iVar7 + 0x3368) != iVar7" (pointer_expression "*(int *)(iVar7 + 0x3368)" * (cast_expression "(int *)(iVar7 + 0x3368)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3368)" ( (binary_expression "iVar7 + 0x3368" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);" (call_expression "(**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a33a4))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a33a4)" * (pointer_expression "*(code **)(pcVar10 + 0x2a33a4)" * (cast_expression "(code **)(pcVar10 + 0x2a33a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a33a4)" ( (binary_expression "pcVar10 + 0x2a33a4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8)" ( (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x48a8" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45b8" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00106404;" goto statement_identifier ;) })) (labeled_statement "LAB_00106328:\n      *piVar5 = 0;" statement_identifier : (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;)) }))) }))) (return_statement "return piVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n\nImage * GetFirstImageInList(Image *images)\n\n{\n  bool bVar1;\n  Image *pIVar2;\n  _Image *p_Var3;\n  int iVar4;\n  ClassType CVar5;\n  Image *pIVar6;\n  undefined *puVar7;\n  int *piVar8;\n  undefined *puVar9;\n  int iVar10;\n  int iVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  code *pcVar14;\n  \n  if (images == (Image *)0x0) {\n    return (Image *)0x0;\n  }\n  if (images->signature == 0xabacadab) {\n    do {\n      pIVar2 = images;\n      images = pIVar2->previous;\n    } while (images != (_Image *)0x0);\n    return pIVar2;\n  }\n  puVar7 = PTR_LAB_003a88e0 + 0x1e64;\n  puVar12 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar7,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);\n  if (puVar7 == (undefined *)0x0) {\n    return (Image *)0xffffffff;\n  }\n  iVar10 = *(int *)(puVar12 + 0x2a2cb4);\n  if (*(int *)(puVar7 + 0x336c) == -0x54535255) {\n    puVar9 = *(undefined **)(puVar7 + 0x3364);\n    pIVar2 = (Image *)0x0;\n    if (puVar9 == (undefined *)0x0) {\n      return (Image *)0x0;\n    }\n    if (puVar7 != puVar9) {\n      do {\n        puVar7 = *(undefined **)(puVar9 + 0x3364);\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (puVar7 == (undefined *)0x0) {\n          return pIVar2;\n        }\n        bVar1 = puVar7 != puVar9;\n        puVar9 = puVar7;\n      } while (bVar1);\n      iVar10 = *(int *)(puVar12 + 0x2a2cb4);\n    }\n    iVar10 = iVar10 + -0x4528;\n    (**(code **)(puVar12 + 0x2a39d8))\n              (*(int *)(puVar12 + 0x2a2cb4) + -0x490c,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar10,puVar12 + 0x2aac80);\n  }\n  pcVar13 = *(code **)(puVar12 + 0x2a39d8);\n  pIVar2 = (Image *)(*(int *)(puVar12 + 0x2a2cb0) + 0x1e64);\n  (*pcVar13)(pIVar2,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a5,iVar10 + -0x4528);\n  if (pIVar2 == (Image *)0x0) {\n    return (Image *)0x0;\n  }\n  if (pIVar2->signature == 0xabacadab) {\n    do {\n      pIVar6 = pIVar2;\n      pIVar2 = pIVar6->next;\n    } while (pIVar2 != (_Image *)0x0);\n    return pIVar6;\n  }\n  pcVar14 = *(code **)(pcVar13 + 0x2a391c);\n  iVar10 = *(int *)(pcVar13 + 0x2a2bf8) + -0x4920;\n  piVar8 = (int *)(*(int *)(pcVar13 + 0x2a2bf4) + 0x1e64);\n  pIVar2 = (Image *)(*pcVar14)(piVar8,iVar10,0x2f5,*(int *)(pcVar13 + 0x2a2bf8) + -0x4564,\n                               pcVar13 + 0x2aabc4);\n  if (piVar8 == (int *)0x0) {\n    iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48f0,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x56,\n               iVar11);\nLAB_00105e7c:\n    (**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48d4,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x59,\n               iVar11 + -0x4434);\n  }\n  else {\n    if (iVar10 == 0) {\n      return pIVar2;\n    }\n    iVar11 = *(int *)(pcVar14 + 0x2a2b88);\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar10 + 0x3350) == 0) {\n      iVar11 = *piVar8;\n      pIVar2 = (Image *)0x0;\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340);\n      iVar11 = *piVar8;\n    }\n    if (iVar11 == 0) {\n      *piVar8 = iVar10;\n      return pIVar2;\n    }\n    if (*(int *)(iVar11 + 0x336c) == -0x54535255) {\n      p_Var3 = (_Image *)(**(code **)(pcVar14 + 0x2a31fc))();\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10);\n      p_Var3->next = pIVar2;\n      pIVar2->previous = p_Var3;\n      return pIVar2;\n    }\n  }\n  pcVar13 = *(code **)(pcVar14 + 0x2a38ac);\n  iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4920;\n  iVar10 = *(int *)(pcVar14 + 0x2a2b88) + -0x4d48;\n  (*pcVar13)(iVar10,iVar11,0x61,*(int *)(pcVar14 + 0x2a2b88) + -0x4434);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a3320))\n                (0x8000,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar13 + 0x2a2a24) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    if (iVar11 < 0) {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a3098))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == -1) {\n          return pIVar2;\n        }\n        iVar10 = -2;\n        while( true ) {\n          pIVar2 = pIVar2->previous;\n          if (pIVar2 == (Image *)0x0) break;\n          bVar1 = iVar10 == iVar11;\n          iVar10 = iVar10 + -1;\n          if (bVar1) {\n            return pIVar2;\n          }\n        }\n      }\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        iVar10 = 0;\n        while( true ) {\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }\n      }\n    }\n    return (Image *)0x0;\n  }\n  pcVar14 = *(code **)(pcVar13 + 0x2a3748);\n  iVar10 = *(int *)(pcVar13 + 0x2a2a20) + 0x1e64;\n  (*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar13 + 0x2a2a24) + -0x4500);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar14 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar14 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar14 + 0x2a28d0) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    iVar10 = (**(code **)(pcVar14 + 0x2a2f44))(iVar10);\n    if (iVar10 == 0) {\n      return (Image *)0x0;\n    }\n    pIVar2 = (Image *)0x0;\n    iVar11 = *(int *)(iVar10 + 0x3364);\n    if (iVar10 == *(int *)(iVar10 + 0x3364)) {\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }\n    else {\n      do {\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;\n        iVar11 = *(int *)(iVar11 + 0x3364);\n      } while (bVar1);\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }\n    (**(code **)(pcVar14 + 0x2a35f4))\n              (*(int *)(pcVar14 + 0x2a28d0) + -0x490c,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar10 + -0x453c);\n  }\n  pcVar13 = *(code **)(pcVar14 + 0x2a35f4);\n  iVar10 = *(int *)(pcVar14 + 0x2a28cc) + 0x1e64;\n  (*pcVar13)(iVar10,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar14 + 0x2a28d0) + -0x453c);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar13 + 0x2a27ac) + -0x62ac\n                 ,iVar10 + 0x340,pcVar13 + 0x2aa778);\n      return *(Image **)(iVar10 + 0x3368);\n    }\n    return *(Image **)(iVar10 + 0x3368);\n  }\n  pcVar14 = *(code **)(pcVar13 + 0x2a34d0);\n  iVar10 = *(int *)(pcVar13 + 0x2a27a8) + 0x1e64;\n  (*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar13 + 0x2a27ac) + -0x4578);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    return *(Image **)(iVar10 + 0x3364);\n  }\n  pcVar13 = *(code **)(pcVar14 + 0x2a3408);\n  iVar11 = *(int *)(pcVar14 + 0x2a26e4) + -0x4920;\n  iVar10 = *(int *)(pcVar14 + 0x2a26e0) + 0x1e64;\n  (*pcVar13)(iVar10,iVar11,0x334,*(int *)(pcVar14 + 0x2a26e4) + -0x45a4,pcVar14 + 0x2aa6b0);\n  if (iVar10 == 0) {\n    pIVar2 = (Image *)0x0;\n  }\n  else {\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar13 + 0x2a33a4))\n                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n      return (Image *)0x0;\n    }\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    iVar4 = (**(code **)(pcVar13 + 0x2a3014))(iVar10);\n    pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a32a8))(iVar4 + 1,4);\n    if (pIVar2 == (Image *)0x0) {\n      (**(code **)(pcVar13 + 0x2a2cbc))\n                (iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,\n                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,\n                 iVar10 + 0x340);\n    }\n    else {\n      CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10);\n      pIVar6 = pIVar2;\n      if (CVar5 != UndefinedClass) {\n        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }\n        (**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      pIVar6->storage_class = UndefinedClass;\n    }\n  }\n  return pIVar2;\n}\n\n" comment comment comment comment (function_definition "Image * GetFirstImageInList(Image *images)\n\n{\n  bool bVar1;\n  Image *pIVar2;\n  _Image *p_Var3;\n  int iVar4;\n  ClassType CVar5;\n  Image *pIVar6;\n  undefined *puVar7;\n  int *piVar8;\n  undefined *puVar9;\n  int iVar10;\n  int iVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  code *pcVar14;\n  \n  if (images == (Image *)0x0) {\n    return (Image *)0x0;\n  }\n  if (images->signature == 0xabacadab) {\n    do {\n      pIVar2 = images;\n      images = pIVar2->previous;\n    } while (images != (_Image *)0x0);\n    return pIVar2;\n  }\n  puVar7 = PTR_LAB_003a88e0 + 0x1e64;\n  puVar12 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar7,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);\n  if (puVar7 == (undefined *)0x0) {\n    return (Image *)0xffffffff;\n  }\n  iVar10 = *(int *)(puVar12 + 0x2a2cb4);\n  if (*(int *)(puVar7 + 0x336c) == -0x54535255) {\n    puVar9 = *(undefined **)(puVar7 + 0x3364);\n    pIVar2 = (Image *)0x0;\n    if (puVar9 == (undefined *)0x0) {\n      return (Image *)0x0;\n    }\n    if (puVar7 != puVar9) {\n      do {\n        puVar7 = *(undefined **)(puVar9 + 0x3364);\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (puVar7 == (undefined *)0x0) {\n          return pIVar2;\n        }\n        bVar1 = puVar7 != puVar9;\n        puVar9 = puVar7;\n      } while (bVar1);\n      iVar10 = *(int *)(puVar12 + 0x2a2cb4);\n    }\n    iVar10 = iVar10 + -0x4528;\n    (**(code **)(puVar12 + 0x2a39d8))\n              (*(int *)(puVar12 + 0x2a2cb4) + -0x490c,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar10,puVar12 + 0x2aac80);\n  }\n  pcVar13 = *(code **)(puVar12 + 0x2a39d8);\n  pIVar2 = (Image *)(*(int *)(puVar12 + 0x2a2cb0) + 0x1e64);\n  (*pcVar13)(pIVar2,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a5,iVar10 + -0x4528);\n  if (pIVar2 == (Image *)0x0) {\n    return (Image *)0x0;\n  }\n  if (pIVar2->signature == 0xabacadab) {\n    do {\n      pIVar6 = pIVar2;\n      pIVar2 = pIVar6->next;\n    } while (pIVar2 != (_Image *)0x0);\n    return pIVar6;\n  }\n  pcVar14 = *(code **)(pcVar13 + 0x2a391c);\n  iVar10 = *(int *)(pcVar13 + 0x2a2bf8) + -0x4920;\n  piVar8 = (int *)(*(int *)(pcVar13 + 0x2a2bf4) + 0x1e64);\n  pIVar2 = (Image *)(*pcVar14)(piVar8,iVar10,0x2f5,*(int *)(pcVar13 + 0x2a2bf8) + -0x4564,\n                               pcVar13 + 0x2aabc4);\n  if (piVar8 == (int *)0x0) {\n    iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48f0,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x56,\n               iVar11);\nLAB_00105e7c:\n    (**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48d4,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x59,\n               iVar11 + -0x4434);\n  }\n  else {\n    if (iVar10 == 0) {\n      return pIVar2;\n    }\n    iVar11 = *(int *)(pcVar14 + 0x2a2b88);\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar10 + 0x3350) == 0) {\n      iVar11 = *piVar8;\n      pIVar2 = (Image *)0x0;\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340);\n      iVar11 = *piVar8;\n    }\n    if (iVar11 == 0) {\n      *piVar8 = iVar10;\n      return pIVar2;\n    }\n    if (*(int *)(iVar11 + 0x336c) == -0x54535255) {\n      p_Var3 = (_Image *)(**(code **)(pcVar14 + 0x2a31fc))();\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10);\n      p_Var3->next = pIVar2;\n      pIVar2->previous = p_Var3;\n      return pIVar2;\n    }\n  }\n  pcVar13 = *(code **)(pcVar14 + 0x2a38ac);\n  iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4920;\n  iVar10 = *(int *)(pcVar14 + 0x2a2b88) + -0x4d48;\n  (*pcVar13)(iVar10,iVar11,0x61,*(int *)(pcVar14 + 0x2a2b88) + -0x4434);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a3320))\n                (0x8000,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar13 + 0x2a2a24) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    if (iVar11 < 0) {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a3098))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == -1) {\n          return pIVar2;\n        }\n        iVar10 = -2;\n        while( true ) {\n          pIVar2 = pIVar2->previous;\n          if (pIVar2 == (Image *)0x0) break;\n          bVar1 = iVar10 == iVar11;\n          iVar10 = iVar10 + -1;\n          if (bVar1) {\n            return pIVar2;\n          }\n        }\n      }\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        iVar10 = 0;\n        while( true ) {\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }\n      }\n    }\n    return (Image *)0x0;\n  }\n  pcVar14 = *(code **)(pcVar13 + 0x2a3748);\n  iVar10 = *(int *)(pcVar13 + 0x2a2a20) + 0x1e64;\n  (*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar13 + 0x2a2a24) + -0x4500);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar14 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar14 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar14 + 0x2a28d0) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    iVar10 = (**(code **)(pcVar14 + 0x2a2f44))(iVar10);\n    if (iVar10 == 0) {\n      return (Image *)0x0;\n    }\n    pIVar2 = (Image *)0x0;\n    iVar11 = *(int *)(iVar10 + 0x3364);\n    if (iVar10 == *(int *)(iVar10 + 0x3364)) {\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }\n    else {\n      do {\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;\n        iVar11 = *(int *)(iVar11 + 0x3364);\n      } while (bVar1);\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }\n    (**(code **)(pcVar14 + 0x2a35f4))\n              (*(int *)(pcVar14 + 0x2a28d0) + -0x490c,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar10 + -0x453c);\n  }\n  pcVar13 = *(code **)(pcVar14 + 0x2a35f4);\n  iVar10 = *(int *)(pcVar14 + 0x2a28cc) + 0x1e64;\n  (*pcVar13)(iVar10,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar14 + 0x2a28d0) + -0x453c);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar13 + 0x2a27ac) + -0x62ac\n                 ,iVar10 + 0x340,pcVar13 + 0x2aa778);\n      return *(Image **)(iVar10 + 0x3368);\n    }\n    return *(Image **)(iVar10 + 0x3368);\n  }\n  pcVar14 = *(code **)(pcVar13 + 0x2a34d0);\n  iVar10 = *(int *)(pcVar13 + 0x2a27a8) + 0x1e64;\n  (*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar13 + 0x2a27ac) + -0x4578);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    return *(Image **)(iVar10 + 0x3364);\n  }\n  pcVar13 = *(code **)(pcVar14 + 0x2a3408);\n  iVar11 = *(int *)(pcVar14 + 0x2a26e4) + -0x4920;\n  iVar10 = *(int *)(pcVar14 + 0x2a26e0) + 0x1e64;\n  (*pcVar13)(iVar10,iVar11,0x334,*(int *)(pcVar14 + 0x2a26e4) + -0x45a4,pcVar14 + 0x2aa6b0);\n  if (iVar10 == 0) {\n    pIVar2 = (Image *)0x0;\n  }\n  else {\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar13 + 0x2a33a4))\n                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n      return (Image *)0x0;\n    }\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    iVar4 = (**(code **)(pcVar13 + 0x2a3014))(iVar10);\n    pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a32a8))(iVar4 + 1,4);\n    if (pIVar2 == (Image *)0x0) {\n      (**(code **)(pcVar13 + 0x2a2cbc))\n                (iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,\n                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,\n                 iVar10 + 0x340);\n    }\n    else {\n      CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10);\n      pIVar6 = pIVar2;\n      if (CVar5 != UndefinedClass) {\n        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }\n        (**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      pIVar6->storage_class = UndefinedClass;\n    }\n  }\n  return pIVar2;\n}" type_identifier (pointer_declarator "* GetFirstImageInList(Image *images)" * (function_declarator "GetFirstImageInList(Image *images)" identifier (parameter_list "(Image *images)" ( (parameter_declaration "Image *images" type_identifier (pointer_declarator "*images" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  Image *pIVar2;\n  _Image *p_Var3;\n  int iVar4;\n  ClassType CVar5;\n  Image *pIVar6;\n  undefined *puVar7;\n  int *piVar8;\n  undefined *puVar9;\n  int iVar10;\n  int iVar11;\n  undefined *puVar12;\n  code *pcVar13;\n  code *pcVar14;\n  \n  if (images == (Image *)0x0) {\n    return (Image *)0x0;\n  }\n  if (images->signature == 0xabacadab) {\n    do {\n      pIVar2 = images;\n      images = pIVar2->previous;\n    } while (images != (_Image *)0x0);\n    return pIVar2;\n  }\n  puVar7 = PTR_LAB_003a88e0 + 0x1e64;\n  puVar12 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar7,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);\n  if (puVar7 == (undefined *)0x0) {\n    return (Image *)0xffffffff;\n  }\n  iVar10 = *(int *)(puVar12 + 0x2a2cb4);\n  if (*(int *)(puVar7 + 0x336c) == -0x54535255) {\n    puVar9 = *(undefined **)(puVar7 + 0x3364);\n    pIVar2 = (Image *)0x0;\n    if (puVar9 == (undefined *)0x0) {\n      return (Image *)0x0;\n    }\n    if (puVar7 != puVar9) {\n      do {\n        puVar7 = *(undefined **)(puVar9 + 0x3364);\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (puVar7 == (undefined *)0x0) {\n          return pIVar2;\n        }\n        bVar1 = puVar7 != puVar9;\n        puVar9 = puVar7;\n      } while (bVar1);\n      iVar10 = *(int *)(puVar12 + 0x2a2cb4);\n    }\n    iVar10 = iVar10 + -0x4528;\n    (**(code **)(puVar12 + 0x2a39d8))\n              (*(int *)(puVar12 + 0x2a2cb4) + -0x490c,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar10,puVar12 + 0x2aac80);\n  }\n  pcVar13 = *(code **)(puVar12 + 0x2a39d8);\n  pIVar2 = (Image *)(*(int *)(puVar12 + 0x2a2cb0) + 0x1e64);\n  (*pcVar13)(pIVar2,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a5,iVar10 + -0x4528);\n  if (pIVar2 == (Image *)0x0) {\n    return (Image *)0x0;\n  }\n  if (pIVar2->signature == 0xabacadab) {\n    do {\n      pIVar6 = pIVar2;\n      pIVar2 = pIVar6->next;\n    } while (pIVar2 != (_Image *)0x0);\n    return pIVar6;\n  }\n  pcVar14 = *(code **)(pcVar13 + 0x2a391c);\n  iVar10 = *(int *)(pcVar13 + 0x2a2bf8) + -0x4920;\n  piVar8 = (int *)(*(int *)(pcVar13 + 0x2a2bf4) + 0x1e64);\n  pIVar2 = (Image *)(*pcVar14)(piVar8,iVar10,0x2f5,*(int *)(pcVar13 + 0x2a2bf8) + -0x4564,\n                               pcVar13 + 0x2aabc4);\n  if (piVar8 == (int *)0x0) {\n    iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48f0,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x56,\n               iVar11);\nLAB_00105e7c:\n    (**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48d4,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x59,\n               iVar11 + -0x4434);\n  }\n  else {\n    if (iVar10 == 0) {\n      return pIVar2;\n    }\n    iVar11 = *(int *)(pcVar14 + 0x2a2b88);\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar10 + 0x3350) == 0) {\n      iVar11 = *piVar8;\n      pIVar2 = (Image *)0x0;\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340);\n      iVar11 = *piVar8;\n    }\n    if (iVar11 == 0) {\n      *piVar8 = iVar10;\n      return pIVar2;\n    }\n    if (*(int *)(iVar11 + 0x336c) == -0x54535255) {\n      p_Var3 = (_Image *)(**(code **)(pcVar14 + 0x2a31fc))();\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10);\n      p_Var3->next = pIVar2;\n      pIVar2->previous = p_Var3;\n      return pIVar2;\n    }\n  }\n  pcVar13 = *(code **)(pcVar14 + 0x2a38ac);\n  iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4920;\n  iVar10 = *(int *)(pcVar14 + 0x2a2b88) + -0x4d48;\n  (*pcVar13)(iVar10,iVar11,0x61,*(int *)(pcVar14 + 0x2a2b88) + -0x4434);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a3320))\n                (0x8000,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar13 + 0x2a2a24) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    if (iVar11 < 0) {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a3098))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == -1) {\n          return pIVar2;\n        }\n        iVar10 = -2;\n        while( true ) {\n          pIVar2 = pIVar2->previous;\n          if (pIVar2 == (Image *)0x0) break;\n          bVar1 = iVar10 == iVar11;\n          iVar10 = iVar10 + -1;\n          if (bVar1) {\n            return pIVar2;\n          }\n        }\n      }\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        iVar10 = 0;\n        while( true ) {\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }\n      }\n    }\n    return (Image *)0x0;\n  }\n  pcVar14 = *(code **)(pcVar13 + 0x2a3748);\n  iVar10 = *(int *)(pcVar13 + 0x2a2a20) + 0x1e64;\n  (*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar13 + 0x2a2a24) + -0x4500);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar14 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar14 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar14 + 0x2a28d0) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    iVar10 = (**(code **)(pcVar14 + 0x2a2f44))(iVar10);\n    if (iVar10 == 0) {\n      return (Image *)0x0;\n    }\n    pIVar2 = (Image *)0x0;\n    iVar11 = *(int *)(iVar10 + 0x3364);\n    if (iVar10 == *(int *)(iVar10 + 0x3364)) {\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }\n    else {\n      do {\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;\n        iVar11 = *(int *)(iVar11 + 0x3364);\n      } while (bVar1);\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }\n    (**(code **)(pcVar14 + 0x2a35f4))\n              (*(int *)(pcVar14 + 0x2a28d0) + -0x490c,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar10 + -0x453c);\n  }\n  pcVar13 = *(code **)(pcVar14 + 0x2a35f4);\n  iVar10 = *(int *)(pcVar14 + 0x2a28cc) + 0x1e64;\n  (*pcVar13)(iVar10,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar14 + 0x2a28d0) + -0x453c);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar13 + 0x2a27ac) + -0x62ac\n                 ,iVar10 + 0x340,pcVar13 + 0x2aa778);\n      return *(Image **)(iVar10 + 0x3368);\n    }\n    return *(Image **)(iVar10 + 0x3368);\n  }\n  pcVar14 = *(code **)(pcVar13 + 0x2a34d0);\n  iVar10 = *(int *)(pcVar13 + 0x2a27a8) + 0x1e64;\n  (*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar13 + 0x2a27ac) + -0x4578);\n  if (iVar10 == 0) {\n    return (Image *)0x0;\n  }\n  if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    return *(Image **)(iVar10 + 0x3364);\n  }\n  pcVar13 = *(code **)(pcVar14 + 0x2a3408);\n  iVar11 = *(int *)(pcVar14 + 0x2a26e4) + -0x4920;\n  iVar10 = *(int *)(pcVar14 + 0x2a26e0) + 0x1e64;\n  (*pcVar13)(iVar10,iVar11,0x334,*(int *)(pcVar14 + 0x2a26e4) + -0x45a4,pcVar14 + 0x2aa6b0);\n  if (iVar10 == 0) {\n    pIVar2 = (Image *)0x0;\n  }\n  else {\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar13 + 0x2a33a4))\n                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n      return (Image *)0x0;\n    }\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    iVar4 = (**(code **)(pcVar13 + 0x2a3014))(iVar10);\n    pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a32a8))(iVar4 + 1,4);\n    if (pIVar2 == (Image *)0x0) {\n      (**(code **)(pcVar13 + 0x2a2cbc))\n                (iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,\n                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,\n                 iVar10 + 0x340);\n    }\n    else {\n      CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10);\n      pIVar6 = pIVar2;\n      if (CVar5 != UndefinedClass) {\n        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }\n        (**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      pIVar6->storage_class = UndefinedClass;\n    }\n  }\n  return pIVar2;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "Image *pIVar2;" type_identifier (pointer_declarator "*pIVar2" * identifier) ;) (declaration "_Image *p_Var3;" type_identifier (pointer_declarator "*p_Var3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ClassType CVar5;" type_identifier identifier ;) (declaration "Image *pIVar6;" type_identifier (pointer_declarator "*pIVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (if_statement "if (images == (Image *)0x0) {\n    return (Image *)0x0;\n  }" if (parenthesized_expression "(images == (Image *)0x0)" ( (binary_expression "images == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (Image *)0x0;\n  }" { (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (images->signature == 0xabacadab) {\n    do {\n      pIVar2 = images;\n      images = pIVar2->previous;\n    } while (images != (_Image *)0x0);\n    return pIVar2;\n  }" if (parenthesized_expression "(images->signature == 0xabacadab)" ( (binary_expression "images->signature == 0xabacadab" (field_expression "images->signature" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    do {\n      pIVar2 = images;\n      images = pIVar2->previous;\n    } while (images != (_Image *)0x0);\n    return pIVar2;\n  }" { (do_statement "do {\n      pIVar2 = images;\n      images = pIVar2->previous;\n    } while (images != (_Image *)0x0);" do (compound_statement "{\n      pIVar2 = images;\n      images = pIVar2->previous;\n    }" { (expression_statement "pIVar2 = images;" (assignment_expression "pIVar2 = images" identifier = identifier) ;) (expression_statement "images = pIVar2->previous;" (assignment_expression "images = pIVar2->previous" identifier = (field_expression "pIVar2->previous" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(images != (_Image *)0x0)" ( (binary_expression "images != (_Image *)0x0" identifier != (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (return_statement "return pIVar2;" return identifier ;) })) (expression_statement "puVar7 = PTR_LAB_003a88e0 + 0x1e64;" (assignment_expression "puVar7 = PTR_LAB_003a88e0 + 0x1e64" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x1e64" identifier + number_literal)) ;) (expression_statement "puVar12 = PTR___assert_fail_003a9608;" (assignment_expression "puVar12 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar7,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar7,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x4920" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x44ec" identifier + number_literal) ))) ;) (if_statement "if (puVar7 == (undefined *)0x0) {\n    return (Image *)0xffffffff;\n  }" if (parenthesized_expression "(puVar7 == (undefined *)0x0)" ( (binary_expression "puVar7 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (Image *)0xffffffff;\n  }" { (return_statement "return (Image *)0xffffffff;" return (cast_expression "(Image *)0xffffffff" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar10 = *(int *)(puVar12 + 0x2a2cb4);" (assignment_expression "iVar10 = *(int *)(puVar12 + 0x2a2cb4)" identifier = (pointer_expression "*(int *)(puVar12 + 0x2a2cb4)" * (cast_expression "(int *)(puVar12 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x2a2cb4)" ( (binary_expression "puVar12 + 0x2a2cb4" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar7 + 0x336c) == -0x54535255) {\n    puVar9 = *(undefined **)(puVar7 + 0x3364);\n    pIVar2 = (Image *)0x0;\n    if (puVar9 == (undefined *)0x0) {\n      return (Image *)0x0;\n    }\n    if (puVar7 != puVar9) {\n      do {\n        puVar7 = *(undefined **)(puVar9 + 0x3364);\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (puVar7 == (undefined *)0x0) {\n          return pIVar2;\n        }\n        bVar1 = puVar7 != puVar9;\n        puVar9 = puVar7;\n      } while (bVar1);\n      iVar10 = *(int *)(puVar12 + 0x2a2cb4);\n    }\n    iVar10 = iVar10 + -0x4528;\n    (**(code **)(puVar12 + 0x2a39d8))\n              (*(int *)(puVar12 + 0x2a2cb4) + -0x490c,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar10,puVar12 + 0x2aac80);\n  }" if (parenthesized_expression "(*(int *)(puVar7 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(puVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(puVar7 + 0x336c)" * (cast_expression "(int *)(puVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x336c)" ( (binary_expression "puVar7 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar9 = *(undefined **)(puVar7 + 0x3364);\n    pIVar2 = (Image *)0x0;\n    if (puVar9 == (undefined *)0x0) {\n      return (Image *)0x0;\n    }\n    if (puVar7 != puVar9) {\n      do {\n        puVar7 = *(undefined **)(puVar9 + 0x3364);\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (puVar7 == (undefined *)0x0) {\n          return pIVar2;\n        }\n        bVar1 = puVar7 != puVar9;\n        puVar9 = puVar7;\n      } while (bVar1);\n      iVar10 = *(int *)(puVar12 + 0x2a2cb4);\n    }\n    iVar10 = iVar10 + -0x4528;\n    (**(code **)(puVar12 + 0x2a39d8))\n              (*(int *)(puVar12 + 0x2a2cb4) + -0x490c,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar10,puVar12 + 0x2aac80);\n  }" { (expression_statement "puVar9 = *(undefined **)(puVar7 + 0x3364);" (assignment_expression "puVar9 = *(undefined **)(puVar7 + 0x3364)" identifier = (pointer_expression "*(undefined **)(puVar7 + 0x3364)" * (cast_expression "(undefined **)(puVar7 + 0x3364)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x3364)" ( (binary_expression "puVar7 + 0x3364" identifier + number_literal) ))))) ;) (expression_statement "pIVar2 = (Image *)0x0;" (assignment_expression "pIVar2 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (puVar9 == (undefined *)0x0) {\n      return (Image *)0x0;\n    }" if (parenthesized_expression "(puVar9 == (undefined *)0x0)" ( (binary_expression "puVar9 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (Image *)0x0;\n    }" { (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (puVar7 != puVar9) {\n      do {\n        puVar7 = *(undefined **)(puVar9 + 0x3364);\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (puVar7 == (undefined *)0x0) {\n          return pIVar2;\n        }\n        bVar1 = puVar7 != puVar9;\n        puVar9 = puVar7;\n      } while (bVar1);\n      iVar10 = *(int *)(puVar12 + 0x2a2cb4);\n    }" if (parenthesized_expression "(puVar7 != puVar9)" ( (binary_expression "puVar7 != puVar9" identifier != identifier) )) (compound_statement "{\n      do {\n        puVar7 = *(undefined **)(puVar9 + 0x3364);\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (puVar7 == (undefined *)0x0) {\n          return pIVar2;\n        }\n        bVar1 = puVar7 != puVar9;\n        puVar9 = puVar7;\n      } while (bVar1);\n      iVar10 = *(int *)(puVar12 + 0x2a2cb4);\n    }" { (do_statement "do {\n        puVar7 = *(undefined **)(puVar9 + 0x3364);\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (puVar7 == (undefined *)0x0) {\n          return pIVar2;\n        }\n        bVar1 = puVar7 != puVar9;\n        puVar9 = puVar7;\n      } while (bVar1);" do (compound_statement "{\n        puVar7 = *(undefined **)(puVar9 + 0x3364);\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (puVar7 == (undefined *)0x0) {\n          return pIVar2;\n        }\n        bVar1 = puVar7 != puVar9;\n        puVar9 = puVar7;\n      }" { (expression_statement "puVar7 = *(undefined **)(puVar9 + 0x3364);" (assignment_expression "puVar7 = *(undefined **)(puVar9 + 0x3364)" identifier = (pointer_expression "*(undefined **)(puVar9 + 0x3364)" * (cast_expression "(undefined **)(puVar9 + 0x3364)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x3364)" ( (binary_expression "puVar9 + 0x3364" identifier + number_literal) ))))) ;) (expression_statement "pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);" (assignment_expression "pIVar2 = (Image *)((int)&pIVar2->storage_class + 1)" identifier = (cast_expression "(Image *)((int)&pIVar2->storage_class + 1)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar2->storage_class + 1)" ( (binary_expression "(int)&pIVar2->storage_class + 1" (cast_expression "(int)&pIVar2->storage_class" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar2->storage_class" & (field_expression "pIVar2->storage_class" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (puVar7 == (undefined *)0x0) {\n          return pIVar2;\n        }" if (parenthesized_expression "(puVar7 == (undefined *)0x0)" ( (binary_expression "puVar7 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return pIVar2;\n        }" { (return_statement "return pIVar2;" return identifier ;) })) (expression_statement "bVar1 = puVar7 != puVar9;" (assignment_expression "bVar1 = puVar7 != puVar9" identifier = (binary_expression "puVar7 != puVar9" identifier != identifier)) ;) (expression_statement "puVar9 = puVar7;" (assignment_expression "puVar9 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (expression_statement "iVar10 = *(int *)(puVar12 + 0x2a2cb4);" (assignment_expression "iVar10 = *(int *)(puVar12 + 0x2a2cb4)" identifier = (pointer_expression "*(int *)(puVar12 + 0x2a2cb4)" * (cast_expression "(int *)(puVar12 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x2a2cb4)" ( (binary_expression "puVar12 + 0x2a2cb4" identifier + number_literal) ))))) ;) })) (expression_statement "iVar10 = iVar10 + -0x4528;" (assignment_expression "iVar10 = iVar10 + -0x4528" identifier = (binary_expression "iVar10 + -0x4528" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar12 + 0x2a39d8))\n              (*(int *)(puVar12 + 0x2a2cb4) + -0x490c,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar10,puVar12 + 0x2aac80);" (call_expression "(**(code **)(puVar12 + 0x2a39d8))\n              (*(int *)(puVar12 + 0x2a2cb4) + -0x490c,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar10,puVar12 + 0x2aac80)" (parenthesized_expression "(**(code **)(puVar12 + 0x2a39d8))" ( (pointer_expression "**(code **)(puVar12 + 0x2a39d8)" * (pointer_expression "*(code **)(puVar12 + 0x2a39d8)" * (cast_expression "(code **)(puVar12 + 0x2a39d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x2a39d8)" ( (binary_expression "puVar12 + 0x2a39d8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x2a2cb4) + -0x490c,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar10,puVar12 + 0x2aac80)" ( (binary_expression "*(int *)(puVar12 + 0x2a2cb4) + -0x490c" (pointer_expression "*(int *)(puVar12 + 0x2a2cb4)" * (cast_expression "(int *)(puVar12 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x2a2cb4)" ( (binary_expression "puVar12 + 0x2a2cb4" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar12 + 0x2a2cb4) + -0x4920" (pointer_expression "*(int *)(puVar12 + 0x2a2cb4)" * (cast_expression "(int *)(puVar12 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x2a2cb4)" ( (binary_expression "puVar12 + 0x2a2cb4" identifier + number_literal) )))) + number_literal) , number_literal , identifier , (binary_expression "puVar12 + 0x2aac80" identifier + number_literal) ))) ;) })) (expression_statement "pcVar13 = *(code **)(puVar12 + 0x2a39d8);" (assignment_expression "pcVar13 = *(code **)(puVar12 + 0x2a39d8)" identifier = (pointer_expression "*(code **)(puVar12 + 0x2a39d8)" * (cast_expression "(code **)(puVar12 + 0x2a39d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x2a39d8)" ( (binary_expression "puVar12 + 0x2a39d8" identifier + number_literal) ))))) ;) (expression_statement "pIVar2 = (Image *)(*(int *)(puVar12 + 0x2a2cb0) + 0x1e64);" (assignment_expression "pIVar2 = (Image *)(*(int *)(puVar12 + 0x2a2cb0) + 0x1e64)" identifier = (cast_expression "(Image *)(*(int *)(puVar12 + 0x2a2cb0) + 0x1e64)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar12 + 0x2a2cb0) + 0x1e64)" ( (binary_expression "*(int *)(puVar12 + 0x2a2cb0) + 0x1e64" (pointer_expression "*(int *)(puVar12 + 0x2a2cb0)" * (cast_expression "(int *)(puVar12 + 0x2a2cb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x2a2cb0)" ( (binary_expression "puVar12 + 0x2a2cb0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar13)(pIVar2,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a5,iVar10 + -0x4528);" (call_expression "(*pcVar13)(pIVar2,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a5,iVar10 + -0x4528)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(pIVar2,*(int *)(puVar12 + 0x2a2cb4) + -0x4920,0x2a5,iVar10 + -0x4528)" ( identifier , (binary_expression "*(int *)(puVar12 + 0x2a2cb4) + -0x4920" (pointer_expression "*(int *)(puVar12 + 0x2a2cb4)" * (cast_expression "(int *)(puVar12 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x2a2cb4)" ( (binary_expression "puVar12 + 0x2a2cb4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar10 + -0x4528" identifier + number_literal) ))) ;) (if_statement "if (pIVar2 == (Image *)0x0) {\n    return (Image *)0x0;\n  }" if (parenthesized_expression "(pIVar2 == (Image *)0x0)" ( (binary_expression "pIVar2 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (Image *)0x0;\n  }" { (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (pIVar2->signature == 0xabacadab) {\n    do {\n      pIVar6 = pIVar2;\n      pIVar2 = pIVar6->next;\n    } while (pIVar2 != (_Image *)0x0);\n    return pIVar6;\n  }" if (parenthesized_expression "(pIVar2->signature == 0xabacadab)" ( (binary_expression "pIVar2->signature == 0xabacadab" (field_expression "pIVar2->signature" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    do {\n      pIVar6 = pIVar2;\n      pIVar2 = pIVar6->next;\n    } while (pIVar2 != (_Image *)0x0);\n    return pIVar6;\n  }" { (do_statement "do {\n      pIVar6 = pIVar2;\n      pIVar2 = pIVar6->next;\n    } while (pIVar2 != (_Image *)0x0);" do (compound_statement "{\n      pIVar6 = pIVar2;\n      pIVar2 = pIVar6->next;\n    }" { (expression_statement "pIVar6 = pIVar2;" (assignment_expression "pIVar6 = pIVar2" identifier = identifier) ;) (expression_statement "pIVar2 = pIVar6->next;" (assignment_expression "pIVar2 = pIVar6->next" identifier = (field_expression "pIVar6->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pIVar2 != (_Image *)0x0)" ( (binary_expression "pIVar2 != (_Image *)0x0" identifier != (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (return_statement "return pIVar6;" return identifier ;) })) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x2a391c);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x2a391c)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x2a391c)" * (cast_expression "(code **)(pcVar13 + 0x2a391c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a391c)" ( (binary_expression "pcVar13 + 0x2a391c" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar13 + 0x2a2bf8) + -0x4920;" (assignment_expression "iVar10 = *(int *)(pcVar13 + 0x2a2bf8) + -0x4920" identifier = (binary_expression "*(int *)(pcVar13 + 0x2a2bf8) + -0x4920" (pointer_expression "*(int *)(pcVar13 + 0x2a2bf8)" * (cast_expression "(int *)(pcVar13 + 0x2a2bf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2bf8)" ( (binary_expression "pcVar13 + 0x2a2bf8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "piVar8 = (int *)(*(int *)(pcVar13 + 0x2a2bf4) + 0x1e64);" (assignment_expression "piVar8 = (int *)(*(int *)(pcVar13 + 0x2a2bf4) + 0x1e64)" identifier = (cast_expression "(int *)(*(int *)(pcVar13 + 0x2a2bf4) + 0x1e64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0x2a2bf4) + 0x1e64)" ( (binary_expression "*(int *)(pcVar13 + 0x2a2bf4) + 0x1e64" (pointer_expression "*(int *)(pcVar13 + 0x2a2bf4)" * (cast_expression "(int *)(pcVar13 + 0x2a2bf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2bf4)" ( (binary_expression "pcVar13 + 0x2a2bf4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pIVar2 = (Image *)(*pcVar14)(piVar8,iVar10,0x2f5,*(int *)(pcVar13 + 0x2a2bf8) + -0x4564,\n                               pcVar13 + 0x2aabc4);" (assignment_expression "pIVar2 = (Image *)(*pcVar14)(piVar8,iVar10,0x2f5,*(int *)(pcVar13 + 0x2a2bf8) + -0x4564,\n                               pcVar13 + 0x2aabc4)" identifier = (cast_expression "(Image *)(*pcVar14)(piVar8,iVar10,0x2f5,*(int *)(pcVar13 + 0x2a2bf8) + -0x4564,\n                               pcVar13 + 0x2aabc4)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar14)(piVar8,iVar10,0x2f5,*(int *)(pcVar13 + 0x2a2bf8) + -0x4564,\n                               pcVar13 + 0x2aabc4)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(piVar8,iVar10,0x2f5,*(int *)(pcVar13 + 0x2a2bf8) + -0x4564,\n                               pcVar13 + 0x2aabc4)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a2bf8) + -0x4564" (pointer_expression "*(int *)(pcVar13 + 0x2a2bf8)" * (cast_expression "(int *)(pcVar13 + 0x2a2bf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2bf8)" ( (binary_expression "pcVar13 + 0x2a2bf8" identifier + number_literal) )))) + number_literal) , (binary_expression "pcVar13 + 0x2aabc4" identifier + number_literal) ))))) ;) (if_statement "if (piVar8 == (int *)0x0) {\n    iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48f0,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x56,\n               iVar11);\nLAB_00105e7c:\n    (**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48d4,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x59,\n               iVar11 + -0x4434);\n  }\n  else {\n    if (iVar10 == 0) {\n      return pIVar2;\n    }\n    iVar11 = *(int *)(pcVar14 + 0x2a2b88);\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar10 + 0x3350) == 0) {\n      iVar11 = *piVar8;\n      pIVar2 = (Image *)0x0;\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340);\n      iVar11 = *piVar8;\n    }\n    if (iVar11 == 0) {\n      *piVar8 = iVar10;\n      return pIVar2;\n    }\n    if (*(int *)(iVar11 + 0x336c) == -0x54535255) {\n      p_Var3 = (_Image *)(**(code **)(pcVar14 + 0x2a31fc))();\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10);\n      p_Var3->next = pIVar2;\n      pIVar2->previous = p_Var3;\n      return pIVar2;\n    }\n  }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48f0,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x56,\n               iVar11);\nLAB_00105e7c:\n    (**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48d4,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x59,\n               iVar11 + -0x4434);\n  }" { (expression_statement "iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4434;" (assignment_expression "iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4434" identifier = (binary_expression "*(int *)(pcVar14 + 0x2a2b88) + -0x4434" (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48f0,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x56,\n               iVar11);" (call_expression "(**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48f0,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x56,\n               iVar11)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2a38ac))" ( (pointer_expression "**(code **)(pcVar14 + 0x2a38ac)" * (pointer_expression "*(code **)(pcVar14 + 0x2a38ac)" * (cast_expression "(code **)(pcVar14 + 0x2a38ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2a38ac)" ( (binary_expression "pcVar14 + 0x2a38ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar14 + 0x2a2b88) + -0x48f0,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x56,\n               iVar11)" ( (binary_expression "*(int *)(pcVar14 + 0x2a2b88) + -0x48f0" (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar14 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00105e7c:\n    (**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48d4,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x59,\n               iVar11 + -0x4434);" statement_identifier : (expression_statement "(**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48d4,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x59,\n               iVar11 + -0x4434);" (call_expression "(**(code **)(pcVar14 + 0x2a38ac))\n              (*(int *)(pcVar14 + 0x2a2b88) + -0x48d4,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x59,\n               iVar11 + -0x4434)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2a38ac))" ( (pointer_expression "**(code **)(pcVar14 + 0x2a38ac)" * (pointer_expression "*(code **)(pcVar14 + 0x2a38ac)" * (cast_expression "(code **)(pcVar14 + 0x2a38ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2a38ac)" ( (binary_expression "pcVar14 + 0x2a38ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar14 + 0x2a2b88) + -0x48d4,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,0x59,\n               iVar11 + -0x4434)" ( (binary_expression "*(int *)(pcVar14 + 0x2a2b88) + -0x48d4" (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar14 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar11 + -0x4434" identifier + number_literal) ))) ;)) }) (else_clause "else {\n    if (iVar10 == 0) {\n      return pIVar2;\n    }\n    iVar11 = *(int *)(pcVar14 + 0x2a2b88);\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar10 + 0x3350) == 0) {\n      iVar11 = *piVar8;\n      pIVar2 = (Image *)0x0;\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340);\n      iVar11 = *piVar8;\n    }\n    if (iVar11 == 0) {\n      *piVar8 = iVar10;\n      return pIVar2;\n    }\n    if (*(int *)(iVar11 + 0x336c) == -0x54535255) {\n      p_Var3 = (_Image *)(**(code **)(pcVar14 + 0x2a31fc))();\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10);\n      p_Var3->next = pIVar2;\n      pIVar2->previous = p_Var3;\n      return pIVar2;\n    }\n  }" else (compound_statement "{\n    if (iVar10 == 0) {\n      return pIVar2;\n    }\n    iVar11 = *(int *)(pcVar14 + 0x2a2b88);\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar10 + 0x3350) == 0) {\n      iVar11 = *piVar8;\n      pIVar2 = (Image *)0x0;\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340);\n      iVar11 = *piVar8;\n    }\n    if (iVar11 == 0) {\n      *piVar8 = iVar10;\n      return pIVar2;\n    }\n    if (*(int *)(iVar11 + 0x336c) == -0x54535255) {\n      p_Var3 = (_Image *)(**(code **)(pcVar14 + 0x2a31fc))();\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10);\n      p_Var3->next = pIVar2;\n      pIVar2->previous = p_Var3;\n      return pIVar2;\n    }\n  }" { (if_statement "if (iVar10 == 0) {\n      return pIVar2;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      return pIVar2;\n    }" { (return_statement "return pIVar2;" return identifier ;) })) (expression_statement "iVar11 = *(int *)(pcVar14 + 0x2a2b88);" (assignment_expression "iVar11 = *(int *)(pcVar14 + 0x2a2b88)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar10 + 0x336c) != -0x54535255) goto LAB_00105e7c;" if (parenthesized_expression "(*(int *)(iVar10 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x336c)" * (cast_expression "(int *)(iVar10 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x336c)" ( (binary_expression "iVar10 + 0x336c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00105e7c;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar10 + 0x3350) == 0) {\n      iVar11 = *piVar8;\n      pIVar2 = (Image *)0x0;\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340);\n      iVar11 = *piVar8;\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x3350) == 0)" ( (binary_expression "*(int *)(iVar10 + 0x3350) == 0" (pointer_expression "*(int *)(iVar10 + 0x3350)" * (cast_expression "(int *)(iVar10 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3350)" ( (binary_expression "iVar10 + 0x3350" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar11 = *piVar8;\n      pIVar2 = (Image *)0x0;\n    }" { (expression_statement "iVar11 = *piVar8;" (assignment_expression "iVar11 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "pIVar2 = (Image *)0x0;" (assignment_expression "pIVar2 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340);\n      iVar11 = *piVar8;\n    }" else (compound_statement "{\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340);\n      iVar11 = *piVar8;\n    }" { (expression_statement "pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340);" (assignment_expression "pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340)" identifier = (cast_expression "(Image *)(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x2a3484))\n                                  (0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2a3484))" ( (pointer_expression "**(code **)(pcVar14 + 0x2a3484)" * (pointer_expression "*(code **)(pcVar14 + 0x2a3484)" * (cast_expression "(code **)(pcVar14 + 0x2a3484)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2a3484)" ( (binary_expression "pcVar14 + 0x2a3484" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar14 + 0x2a2b88) + -0x4920,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x4448,0x5b,\n                                   *(int *)(pcVar14 + 0x2a2b88) + -0x62ac,iVar10 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar14 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar14 + 0x2a2b88) + -0x4448" (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar14 + 0x2a2b88) + -0x62ac" (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar10 + 0x340" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *piVar8;" (assignment_expression "iVar11 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) }))) (if_statement "if (iVar11 == 0) {\n      *piVar8 = iVar10;\n      return pIVar2;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      *piVar8 = iVar10;\n      return pIVar2;\n    }" { (expression_statement "*piVar8 = iVar10;" (assignment_expression "*piVar8 = iVar10" (pointer_expression "*piVar8" * identifier) = identifier) ;) (return_statement "return pIVar2;" return identifier ;) })) (if_statement "if (*(int *)(iVar11 + 0x336c) == -0x54535255) {\n      p_Var3 = (_Image *)(**(code **)(pcVar14 + 0x2a31fc))();\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10);\n      p_Var3->next = pIVar2;\n      pIVar2->previous = p_Var3;\n      return pIVar2;\n    }" if (parenthesized_expression "(*(int *)(iVar11 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar11 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar11 + 0x336c)" * (cast_expression "(int *)(iVar11 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x336c)" ( (binary_expression "iVar11 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      p_Var3 = (_Image *)(**(code **)(pcVar14 + 0x2a31fc))();\n      pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10);\n      p_Var3->next = pIVar2;\n      pIVar2->previous = p_Var3;\n      return pIVar2;\n    }" { (expression_statement "p_Var3 = (_Image *)(**(code **)(pcVar14 + 0x2a31fc))();" (assignment_expression "p_Var3 = (_Image *)(**(code **)(pcVar14 + 0x2a31fc))()" identifier = (cast_expression "(_Image *)(**(code **)(pcVar14 + 0x2a31fc))()" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x2a31fc))()" (parenthesized_expression "(**(code **)(pcVar14 + 0x2a31fc))" ( (pointer_expression "**(code **)(pcVar14 + 0x2a31fc)" * (pointer_expression "*(code **)(pcVar14 + 0x2a31fc)" * (cast_expression "(code **)(pcVar14 + 0x2a31fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2a31fc)" ( (binary_expression "pcVar14 + 0x2a31fc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10);" (assignment_expression "pIVar2 = (Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10)" identifier = (cast_expression "(Image *)(**(code **)(pcVar14 + 0x2a36f0))(iVar10)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar14 + 0x2a36f0))(iVar10)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2a36f0))" ( (pointer_expression "**(code **)(pcVar14 + 0x2a36f0)" * (pointer_expression "*(code **)(pcVar14 + 0x2a36f0)" * (cast_expression "(code **)(pcVar14 + 0x2a36f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2a36f0)" ( (binary_expression "pcVar14 + 0x2a36f0" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier ))))) ;) (expression_statement "p_Var3->next = pIVar2;" (assignment_expression "p_Var3->next = pIVar2" (field_expression "p_Var3->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar2->previous = p_Var3;" (assignment_expression "pIVar2->previous = p_Var3" (field_expression "pIVar2->previous" identifier -> field_identifier) = identifier) ;) (return_statement "return pIVar2;" return identifier ;) })) }))) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x2a38ac);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x2a38ac)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x2a38ac)" * (cast_expression "(code **)(pcVar14 + 0x2a38ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2a38ac)" ( (binary_expression "pcVar14 + 0x2a38ac" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4920;" (assignment_expression "iVar11 = *(int *)(pcVar14 + 0x2a2b88) + -0x4920" identifier = (binary_expression "*(int *)(pcVar14 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = *(int *)(pcVar14 + 0x2a2b88) + -0x4d48;" (assignment_expression "iVar10 = *(int *)(pcVar14 + 0x2a2b88) + -0x4d48" identifier = (binary_expression "*(int *)(pcVar14 + 0x2a2b88) + -0x4d48" (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)(iVar10,iVar11,0x61,*(int *)(pcVar14 + 0x2a2b88) + -0x4434);" (call_expression "(*pcVar13)(iVar10,iVar11,0x61,*(int *)(pcVar14 + 0x2a2b88) + -0x4434)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar10,iVar11,0x61,*(int *)(pcVar14 + 0x2a2b88) + -0x4434)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x2a2b88) + -0x4434" (pointer_expression "*(int *)(pcVar14 + 0x2a2b88)" * (cast_expression "(int *)(pcVar14 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a2b88)" ( (binary_expression "pcVar14 + 0x2a2b88" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar10 == 0) {\n    return (Image *)0x0;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    return (Image *)0x0;\n  }" { (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a3320))\n                (0x8000,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar13 + 0x2a2a24) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    if (iVar11 < 0) {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a3098))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == -1) {\n          return pIVar2;\n        }\n        iVar10 = -2;\n        while( true ) {\n          pIVar2 = pIVar2->previous;\n          if (pIVar2 == (Image *)0x0) break;\n          bVar1 = iVar10 == iVar11;\n          iVar10 = iVar10 + -1;\n          if (bVar1) {\n            return pIVar2;\n          }\n        }\n      }\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        iVar10 = 0;\n        while( true ) {\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }\n      }\n    }\n    return (Image *)0x0;\n  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x336c)" * (cast_expression "(int *)(iVar10 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x336c)" ( (binary_expression "iVar10 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a3320))\n                (0x8000,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar13 + 0x2a2a24) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    if (iVar11 < 0) {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a3098))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == -1) {\n          return pIVar2;\n        }\n        iVar10 = -2;\n        while( true ) {\n          pIVar2 = pIVar2->previous;\n          if (pIVar2 == (Image *)0x0) break;\n          bVar1 = iVar10 == iVar11;\n          iVar10 = iVar10 + -1;\n          if (bVar1) {\n            return pIVar2;\n          }\n        }\n      }\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        iVar10 = 0;\n        while( true ) {\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }\n      }\n    }\n    return (Image *)0x0;\n  }" { (if_statement "if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a3320))\n                (0x8000,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar13 + 0x2a2a24) + -0x62ac\n                 ,iVar10 + 0x340);\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x3350) != 0" (pointer_expression "*(int *)(iVar10 + 0x3350)" * (cast_expression "(int *)(iVar10 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3350)" ( (binary_expression "iVar10 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar13 + 0x2a3320))\n                (0x8000,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar13 + 0x2a2a24) + -0x62ac\n                 ,iVar10 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar13 + 0x2a3320))\n                (0x8000,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar13 + 0x2a2a24) + -0x62ac\n                 ,iVar10 + 0x340);" (call_expression "(**(code **)(pcVar13 + 0x2a3320))\n                (0x8000,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar13 + 0x2a2a24) + -0x62ac\n                 ,iVar10 + 0x340)" (parenthesized_expression "(**(code **)(pcVar13 + 0x2a3320))" ( (pointer_expression "**(code **)(pcVar13 + 0x2a3320)" * (pointer_expression "*(code **)(pcVar13 + 0x2a3320)" * (cast_expression "(code **)(pcVar13 + 0x2a3320)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a3320)" ( (binary_expression "pcVar13 + 0x2a3320" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar13 + 0x2a2a24) + -0x62ac\n                 ,iVar10 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a2a24) + -0x4920" (pointer_expression "*(int *)(pcVar13 + 0x2a2a24)" * (cast_expression "(int *)(pcVar13 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2a24)" ( (binary_expression "pcVar13 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar13 + 0x2a2a24) + -0x4514" (pointer_expression "*(int *)(pcVar13 + 0x2a2a24)" * (cast_expression "(int *)(pcVar13 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2a24)" ( (binary_expression "pcVar13 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a2a24) + -0x62ac" (pointer_expression "*(int *)(pcVar13 + 0x2a2a24)" * (cast_expression "(int *)(pcVar13 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2a24)" ( (binary_expression "pcVar13 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar10 + 0x340" identifier + number_literal) ))) ;) })) (if_statement "if (iVar11 < 0) {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a3098))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == -1) {\n          return pIVar2;\n        }\n        iVar10 = -2;\n        while( true ) {\n          pIVar2 = pIVar2->previous;\n          if (pIVar2 == (Image *)0x0) break;\n          bVar1 = iVar10 == iVar11;\n          iVar10 = iVar10 + -1;\n          if (bVar1) {\n            return pIVar2;\n          }\n        }\n      }\n    }\n    else {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        iVar10 = 0;\n        while( true ) {\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar11 < 0)" ( (binary_expression "iVar11 < 0" identifier < number_literal) )) (compound_statement "{\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a3098))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == -1) {\n          return pIVar2;\n        }\n        iVar10 = -2;\n        while( true ) {\n          pIVar2 = pIVar2->previous;\n          if (pIVar2 == (Image *)0x0) break;\n          bVar1 = iVar10 == iVar11;\n          iVar10 = iVar10 + -1;\n          if (bVar1) {\n            return pIVar2;\n          }\n        }\n      }\n    }" { (expression_statement "pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a3098))(iVar10);" (assignment_expression "pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a3098))(iVar10)" identifier = (cast_expression "(Image *)(**(code **)(pcVar13 + 0x2a3098))(iVar10)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar13 + 0x2a3098))(iVar10)" (parenthesized_expression "(**(code **)(pcVar13 + 0x2a3098))" ( (pointer_expression "**(code **)(pcVar13 + 0x2a3098)" * (pointer_expression "*(code **)(pcVar13 + 0x2a3098)" * (cast_expression "(code **)(pcVar13 + 0x2a3098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a3098)" ( (binary_expression "pcVar13 + 0x2a3098" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier ))))) ;) (if_statement "if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == -1) {\n          return pIVar2;\n        }\n        iVar10 = -2;\n        while( true ) {\n          pIVar2 = pIVar2->previous;\n          if (pIVar2 == (Image *)0x0) break;\n          bVar1 = iVar10 == iVar11;\n          iVar10 = iVar10 + -1;\n          if (bVar1) {\n            return pIVar2;\n          }\n        }\n      }" if (parenthesized_expression "(pIVar2 != (Image *)0x0)" ( (binary_expression "pIVar2 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (iVar11 == -1) {\n          return pIVar2;\n        }\n        iVar10 = -2;\n        while( true ) {\n          pIVar2 = pIVar2->previous;\n          if (pIVar2 == (Image *)0x0) break;\n          bVar1 = iVar10 == iVar11;\n          iVar10 = iVar10 + -1;\n          if (bVar1) {\n            return pIVar2;\n          }\n        }\n      }" { (if_statement "if (iVar11 == -1) {\n          return pIVar2;\n        }" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n          return pIVar2;\n        }" { (return_statement "return pIVar2;" return identifier ;) })) (expression_statement "iVar10 = -2;" (assignment_expression "iVar10 = -2" identifier = number_literal) ;) (while_statement "while( true ) {\n          pIVar2 = pIVar2->previous;\n          if (pIVar2 == (Image *)0x0) break;\n          bVar1 = iVar10 == iVar11;\n          iVar10 = iVar10 + -1;\n          if (bVar1) {\n            return pIVar2;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pIVar2 = pIVar2->previous;\n          if (pIVar2 == (Image *)0x0) break;\n          bVar1 = iVar10 == iVar11;\n          iVar10 = iVar10 + -1;\n          if (bVar1) {\n            return pIVar2;\n          }\n        }" { (expression_statement "pIVar2 = pIVar2->previous;" (assignment_expression "pIVar2 = pIVar2->previous" identifier = (field_expression "pIVar2->previous" identifier -> field_identifier)) ;) (if_statement "if (pIVar2 == (Image *)0x0) break;" if (parenthesized_expression "(pIVar2 == (Image *)0x0)" ( (binary_expression "pIVar2 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = iVar10 == iVar11;" (assignment_expression "bVar1 = iVar10 == iVar11" identifier = (binary_expression "iVar10 == iVar11" identifier == identifier)) ;) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (if_statement "if (bVar1) {\n            return pIVar2;\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            return pIVar2;\n          }" { (return_statement "return pIVar2;" return identifier ;) })) })) })) }) (else_clause "else {\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        iVar10 = 0;\n        while( true ) {\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }\n      }\n    }" else (compound_statement "{\n      pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10);\n      if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        iVar10 = 0;\n        while( true ) {\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }\n      }\n    }" { (expression_statement "pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10);" (assignment_expression "pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10)" identifier = (cast_expression "(Image *)(**(code **)(pcVar13 + 0x2a358c))(iVar10)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar13 + 0x2a358c))(iVar10)" (parenthesized_expression "(**(code **)(pcVar13 + 0x2a358c))" ( (pointer_expression "**(code **)(pcVar13 + 0x2a358c)" * (pointer_expression "*(code **)(pcVar13 + 0x2a358c)" * (cast_expression "(code **)(pcVar13 + 0x2a358c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a358c)" ( (binary_expression "pcVar13 + 0x2a358c" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier ))))) ;) (if_statement "if (pIVar2 != (Image *)0x0) {\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        iVar10 = 0;\n        while( true ) {\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }\n      }" if (parenthesized_expression "(pIVar2 != (Image *)0x0)" ( (binary_expression "pIVar2 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        iVar10 = 0;\n        while( true ) {\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }\n      }" { (if_statement "if (iVar11 == 0) {\n          return pIVar2;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          return pIVar2;\n        }" { (return_statement "return pIVar2;" return identifier ;) })) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pIVar2 = pIVar2->next;\n          iVar10 = iVar10 + 1;\n          if (pIVar2 == (Image *)0x0) break;\n          if (iVar11 == iVar10) {\n            return pIVar2;\n          }\n        }" { (expression_statement "pIVar2 = pIVar2->next;" (assignment_expression "pIVar2 = pIVar2->next" identifier = (field_expression "pIVar2->next" identifier -> field_identifier)) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (if_statement "if (pIVar2 == (Image *)0x0) break;" if (parenthesized_expression "(pIVar2 == (Image *)0x0)" ( (binary_expression "pIVar2 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (iVar11 == iVar10) {\n            return pIVar2;\n          }" if (parenthesized_expression "(iVar11 == iVar10)" ( (binary_expression "iVar11 == iVar10" identifier == identifier) )) (compound_statement "{\n            return pIVar2;\n          }" { (return_statement "return pIVar2;" return identifier ;) })) })) })) }))) (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x2a3748);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x2a3748)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x2a3748)" * (cast_expression "(code **)(pcVar13 + 0x2a3748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a3748)" ( (binary_expression "pcVar13 + 0x2a3748" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar13 + 0x2a2a20) + 0x1e64;" (assignment_expression "iVar10 = *(int *)(pcVar13 + 0x2a2a20) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar13 + 0x2a2a20) + 0x1e64" (pointer_expression "*(int *)(pcVar13 + 0x2a2a20)" * (cast_expression "(int *)(pcVar13 + 0x2a2a20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2a20)" ( (binary_expression "pcVar13 + 0x2a2a20" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar13 + 0x2a2a24) + -0x4500);" (call_expression "(*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar13 + 0x2a2a24) + -0x4500)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar10,*(int *)(pcVar13 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar13 + 0x2a2a24) + -0x4500)" ( identifier , (binary_expression "*(int *)(pcVar13 + 0x2a2a24) + -0x4920" (pointer_expression "*(int *)(pcVar13 + 0x2a2a24)" * (cast_expression "(int *)(pcVar13 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2a24)" ( (binary_expression "pcVar13 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a2a24) + -0x4500" (pointer_expression "*(int *)(pcVar13 + 0x2a2a24)" * (cast_expression "(int *)(pcVar13 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2a24)" ( (binary_expression "pcVar13 + 0x2a2a24" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar10 == 0) {\n    return (Image *)0x0;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    return (Image *)0x0;\n  }" { (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar14 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar14 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar14 + 0x2a28d0) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    iVar10 = (**(code **)(pcVar14 + 0x2a2f44))(iVar10);\n    if (iVar10 == 0) {\n      return (Image *)0x0;\n    }\n    pIVar2 = (Image *)0x0;\n    iVar11 = *(int *)(iVar10 + 0x3364);\n    if (iVar10 == *(int *)(iVar10 + 0x3364)) {\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }\n    else {\n      do {\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;\n        iVar11 = *(int *)(iVar11 + 0x3364);\n      } while (bVar1);\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }\n    (**(code **)(pcVar14 + 0x2a35f4))\n              (*(int *)(pcVar14 + 0x2a28d0) + -0x490c,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar10 + -0x453c);\n  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x336c)" * (cast_expression "(int *)(iVar10 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x336c)" ( (binary_expression "iVar10 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar14 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar14 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar14 + 0x2a28d0) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    iVar10 = (**(code **)(pcVar14 + 0x2a2f44))(iVar10);\n    if (iVar10 == 0) {\n      return (Image *)0x0;\n    }\n    pIVar2 = (Image *)0x0;\n    iVar11 = *(int *)(iVar10 + 0x3364);\n    if (iVar10 == *(int *)(iVar10 + 0x3364)) {\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }\n    else {\n      do {\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;\n        iVar11 = *(int *)(iVar11 + 0x3364);\n      } while (bVar1);\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }\n    (**(code **)(pcVar14 + 0x2a35f4))\n              (*(int *)(pcVar14 + 0x2a28d0) + -0x490c,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar10 + -0x453c);\n  }" { (if_statement "if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar14 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar14 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar14 + 0x2a28d0) + -0x62ac\n                 ,iVar10 + 0x340);\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x3350) != 0" (pointer_expression "*(int *)(iVar10 + 0x3350)" * (cast_expression "(int *)(iVar10 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3350)" ( (binary_expression "iVar10 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar14 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar14 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar14 + 0x2a28d0) + -0x62ac\n                 ,iVar10 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar14 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar14 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar14 + 0x2a28d0) + -0x62ac\n                 ,iVar10 + 0x340);" (call_expression "(**(code **)(pcVar14 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar14 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar14 + 0x2a28d0) + -0x62ac\n                 ,iVar10 + 0x340)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2a31cc))" ( (pointer_expression "**(code **)(pcVar14 + 0x2a31cc)" * (pointer_expression "*(code **)(pcVar14 + 0x2a31cc)" * (cast_expression "(code **)(pcVar14 + 0x2a31cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2a31cc)" ( (binary_expression "pcVar14 + 0x2a31cc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar14 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar14 + 0x2a28d0) + -0x62ac\n                 ,iVar10 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar14 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar14 + 0x2a28d0)" * (cast_expression "(int *)(pcVar14 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a28d0)" ( (binary_expression "pcVar14 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar14 + 0x2a28d0) + -0x4550" (pointer_expression "*(int *)(pcVar14 + 0x2a28d0)" * (cast_expression "(int *)(pcVar14 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a28d0)" ( (binary_expression "pcVar14 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar14 + 0x2a28d0) + -0x62ac" (pointer_expression "*(int *)(pcVar14 + 0x2a28d0)" * (cast_expression "(int *)(pcVar14 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a28d0)" ( (binary_expression "pcVar14 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar10 + 0x340" identifier + number_literal) ))) ;) })) (expression_statement "iVar10 = (**(code **)(pcVar14 + 0x2a2f44))(iVar10);" (assignment_expression "iVar10 = (**(code **)(pcVar14 + 0x2a2f44))(iVar10)" identifier = (call_expression "(**(code **)(pcVar14 + 0x2a2f44))(iVar10)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2a2f44))" ( (pointer_expression "**(code **)(pcVar14 + 0x2a2f44)" * (pointer_expression "*(code **)(pcVar14 + 0x2a2f44)" * (cast_expression "(code **)(pcVar14 + 0x2a2f44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2a2f44)" ( (binary_expression "pcVar14 + 0x2a2f44" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) {\n      return (Image *)0x0;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      return (Image *)0x0;\n    }" { (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pIVar2 = (Image *)0x0;" (assignment_expression "pIVar2 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar11 = *(int *)(iVar10 + 0x3364);" (assignment_expression "iVar11 = *(int *)(iVar10 + 0x3364)" identifier = (pointer_expression "*(int *)(iVar10 + 0x3364)" * (cast_expression "(int *)(iVar10 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3364)" ( (binary_expression "iVar10 + 0x3364" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == *(int *)(iVar10 + 0x3364)) {\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }\n    else {\n      do {\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;\n        iVar11 = *(int *)(iVar11 + 0x3364);\n      } while (bVar1);\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }" if (parenthesized_expression "(iVar10 == *(int *)(iVar10 + 0x3364))" ( (binary_expression "iVar10 == *(int *)(iVar10 + 0x3364)" identifier == (pointer_expression "*(int *)(iVar10 + 0x3364)" * (cast_expression "(int *)(iVar10 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3364)" ( (binary_expression "iVar10 + 0x3364" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }" { (expression_statement "iVar10 = *(int *)(pcVar14 + 0x2a28d0);" (assignment_expression "iVar10 = *(int *)(pcVar14 + 0x2a28d0)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x2a28d0)" * (cast_expression "(int *)(pcVar14 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a28d0)" ( (binary_expression "pcVar14 + 0x2a28d0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      do {\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;\n        iVar11 = *(int *)(iVar11 + 0x3364);\n      } while (bVar1);\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }" else (compound_statement "{\n      do {\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;\n        iVar11 = *(int *)(iVar11 + 0x3364);\n      } while (bVar1);\n      iVar10 = *(int *)(pcVar14 + 0x2a28d0);\n    }" { (do_statement "do {\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;\n        iVar11 = *(int *)(iVar11 + 0x3364);\n      } while (bVar1);" do (compound_statement "{\n        pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);\n        if (iVar11 == 0) {\n          return pIVar2;\n        }\n        bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;\n        iVar11 = *(int *)(iVar11 + 0x3364);\n      }" { (expression_statement "pIVar2 = (Image *)((int)&pIVar2->storage_class + 1);" (assignment_expression "pIVar2 = (Image *)((int)&pIVar2->storage_class + 1)" identifier = (cast_expression "(Image *)((int)&pIVar2->storage_class + 1)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar2->storage_class + 1)" ( (binary_expression "(int)&pIVar2->storage_class + 1" (cast_expression "(int)&pIVar2->storage_class" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar2->storage_class" & (field_expression "pIVar2->storage_class" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n          return pIVar2;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          return pIVar2;\n        }" { (return_statement "return pIVar2;" return identifier ;) })) (expression_statement "bVar1 = *(int *)(iVar11 + 0x3364) != iVar11;" (assignment_expression "bVar1 = *(int *)(iVar11 + 0x3364) != iVar11" identifier = (binary_expression "*(int *)(iVar11 + 0x3364) != iVar11" (pointer_expression "*(int *)(iVar11 + 0x3364)" * (cast_expression "(int *)(iVar11 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x3364)" ( (binary_expression "iVar11 + 0x3364" identifier + number_literal) )))) != identifier)) ;) (expression_statement "iVar11 = *(int *)(iVar11 + 0x3364);" (assignment_expression "iVar11 = *(int *)(iVar11 + 0x3364)" identifier = (pointer_expression "*(int *)(iVar11 + 0x3364)" * (cast_expression "(int *)(iVar11 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x3364)" ( (binary_expression "iVar11 + 0x3364" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (expression_statement "iVar10 = *(int *)(pcVar14 + 0x2a28d0);" (assignment_expression "iVar10 = *(int *)(pcVar14 + 0x2a28d0)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x2a28d0)" * (cast_expression "(int *)(pcVar14 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a28d0)" ( (binary_expression "pcVar14 + 0x2a28d0" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(pcVar14 + 0x2a35f4))\n              (*(int *)(pcVar14 + 0x2a28d0) + -0x490c,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar10 + -0x453c);" (call_expression "(**(code **)(pcVar14 + 0x2a35f4))\n              (*(int *)(pcVar14 + 0x2a28d0) + -0x490c,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar10 + -0x453c)" (parenthesized_expression "(**(code **)(pcVar14 + 0x2a35f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x2a35f4)" * (pointer_expression "*(code **)(pcVar14 + 0x2a35f4)" * (cast_expression "(code **)(pcVar14 + 0x2a35f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2a35f4)" ( (binary_expression "pcVar14 + 0x2a35f4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar14 + 0x2a28d0) + -0x490c,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar10 + -0x453c)" ( (binary_expression "*(int *)(pcVar14 + 0x2a28d0) + -0x490c" (pointer_expression "*(int *)(pcVar14 + 0x2a28d0)" * (cast_expression "(int *)(pcVar14 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a28d0)" ( (binary_expression "pcVar14 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar14 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar14 + 0x2a28d0)" * (cast_expression "(int *)(pcVar14 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a28d0)" ( (binary_expression "pcVar14 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar10 + -0x453c" identifier + number_literal) ))) ;) })) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x2a35f4);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x2a35f4)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x2a35f4)" * (cast_expression "(code **)(pcVar14 + 0x2a35f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2a35f4)" ( (binary_expression "pcVar14 + 0x2a35f4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar14 + 0x2a28cc) + 0x1e64;" (assignment_expression "iVar10 = *(int *)(pcVar14 + 0x2a28cc) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar14 + 0x2a28cc) + 0x1e64" (pointer_expression "*(int *)(pcVar14 + 0x2a28cc)" * (cast_expression "(int *)(pcVar14 + 0x2a28cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a28cc)" ( (binary_expression "pcVar14 + 0x2a28cc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)(iVar10,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar14 + 0x2a28d0) + -0x453c);" (call_expression "(*pcVar13)(iVar10,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar14 + 0x2a28d0) + -0x453c)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar10,*(int *)(pcVar14 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar14 + 0x2a28d0) + -0x453c)" ( identifier , (binary_expression "*(int *)(pcVar14 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar14 + 0x2a28d0)" * (cast_expression "(int *)(pcVar14 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a28d0)" ( (binary_expression "pcVar14 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar14 + 0x2a28d0) + -0x453c" (pointer_expression "*(int *)(pcVar14 + 0x2a28d0)" * (cast_expression "(int *)(pcVar14 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a28d0)" ( (binary_expression "pcVar14 + 0x2a28d0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar10 == 0) {\n    return (Image *)0x0;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    return (Image *)0x0;\n  }" { (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar13 + 0x2a27ac) + -0x62ac\n                 ,iVar10 + 0x340,pcVar13 + 0x2aa778);\n      return *(Image **)(iVar10 + 0x3368);\n    }\n    return *(Image **)(iVar10 + 0x3368);\n  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x336c)" * (cast_expression "(int *)(iVar10 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x336c)" ( (binary_expression "iVar10 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar13 + 0x2a27ac) + -0x62ac\n                 ,iVar10 + 0x340,pcVar13 + 0x2aa778);\n      return *(Image **)(iVar10 + 0x3368);\n    }\n    return *(Image **)(iVar10 + 0x3368);\n  }" { (if_statement "if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar13 + 0x2a27ac) + -0x62ac\n                 ,iVar10 + 0x340,pcVar13 + 0x2aa778);\n      return *(Image **)(iVar10 + 0x3368);\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x3350) != 0" (pointer_expression "*(int *)(iVar10 + 0x3350)" * (cast_expression "(int *)(iVar10 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3350)" ( (binary_expression "iVar10 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar13 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar13 + 0x2a27ac) + -0x62ac\n                 ,iVar10 + 0x340,pcVar13 + 0x2aa778);\n      return *(Image **)(iVar10 + 0x3368);\n    }" { (expression_statement "(**(code **)(pcVar13 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar13 + 0x2a27ac) + -0x62ac\n                 ,iVar10 + 0x340,pcVar13 + 0x2aa778);" (call_expression "(**(code **)(pcVar13 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar13 + 0x2a27ac) + -0x62ac\n                 ,iVar10 + 0x340,pcVar13 + 0x2aa778)" (parenthesized_expression "(**(code **)(pcVar13 + 0x2a30a8))" ( (pointer_expression "**(code **)(pcVar13 + 0x2a30a8)" * (pointer_expression "*(code **)(pcVar13 + 0x2a30a8)" * (cast_expression "(code **)(pcVar13 + 0x2a30a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a30a8)" ( (binary_expression "pcVar13 + 0x2a30a8" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar13 + 0x2a27ac) + -0x62ac\n                 ,iVar10 + 0x340,pcVar13 + 0x2aa778)" ( number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a27ac) + -0x4920" (pointer_expression "*(int *)(pcVar13 + 0x2a27ac)" * (cast_expression "(int *)(pcVar13 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a27ac)" ( (binary_expression "pcVar13 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar13 + 0x2a27ac) + -0x458c" (pointer_expression "*(int *)(pcVar13 + 0x2a27ac)" * (cast_expression "(int *)(pcVar13 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a27ac)" ( (binary_expression "pcVar13 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a27ac) + -0x62ac" (pointer_expression "*(int *)(pcVar13 + 0x2a27ac)" * (cast_expression "(int *)(pcVar13 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a27ac)" ( (binary_expression "pcVar13 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar10 + 0x340" identifier + number_literal) , (binary_expression "pcVar13 + 0x2aa778" identifier + number_literal) ))) ;) (return_statement "return *(Image **)(iVar10 + 0x3368);" return (pointer_expression "*(Image **)(iVar10 + 0x3368)" * (cast_expression "(Image **)(iVar10 + 0x3368)" ( (type_descriptor "Image **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x3368)" ( (binary_expression "iVar10 + 0x3368" identifier + number_literal) )))) ;) })) (return_statement "return *(Image **)(iVar10 + 0x3368);" return (pointer_expression "*(Image **)(iVar10 + 0x3368)" * (cast_expression "(Image **)(iVar10 + 0x3368)" ( (type_descriptor "Image **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x3368)" ( (binary_expression "iVar10 + 0x3368" identifier + number_literal) )))) ;) })) (expression_statement "pcVar14 = *(code **)(pcVar13 + 0x2a34d0);" (assignment_expression "pcVar14 = *(code **)(pcVar13 + 0x2a34d0)" identifier = (pointer_expression "*(code **)(pcVar13 + 0x2a34d0)" * (cast_expression "(code **)(pcVar13 + 0x2a34d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a34d0)" ( (binary_expression "pcVar13 + 0x2a34d0" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar13 + 0x2a27a8) + 0x1e64;" (assignment_expression "iVar10 = *(int *)(pcVar13 + 0x2a27a8) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar13 + 0x2a27a8) + 0x1e64" (pointer_expression "*(int *)(pcVar13 + 0x2a27a8)" * (cast_expression "(int *)(pcVar13 + 0x2a27a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a27a8)" ( (binary_expression "pcVar13 + 0x2a27a8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar13 + 0x2a27ac) + -0x4578);" (call_expression "(*pcVar14)(iVar10,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar13 + 0x2a27ac) + -0x4578)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar10,*(int *)(pcVar13 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar13 + 0x2a27ac) + -0x4578)" ( identifier , (binary_expression "*(int *)(pcVar13 + 0x2a27ac) + -0x4920" (pointer_expression "*(int *)(pcVar13 + 0x2a27ac)" * (cast_expression "(int *)(pcVar13 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a27ac)" ( (binary_expression "pcVar13 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a27ac) + -0x4578" (pointer_expression "*(int *)(pcVar13 + 0x2a27ac)" * (cast_expression "(int *)(pcVar13 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a27ac)" ( (binary_expression "pcVar13 + 0x2a27ac" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar10 == 0) {\n    return (Image *)0x0;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    return (Image *)0x0;\n  }" { (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar10 + 0x336c) == -0x54535255) {\n    return *(Image **)(iVar10 + 0x3364);\n  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x336c)" * (cast_expression "(int *)(iVar10 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x336c)" ( (binary_expression "iVar10 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    return *(Image **)(iVar10 + 0x3364);\n  }" { (return_statement "return *(Image **)(iVar10 + 0x3364);" return (pointer_expression "*(Image **)(iVar10 + 0x3364)" * (cast_expression "(Image **)(iVar10 + 0x3364)" ( (type_descriptor "Image **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x3364)" ( (binary_expression "iVar10 + 0x3364" identifier + number_literal) )))) ;) })) (expression_statement "pcVar13 = *(code **)(pcVar14 + 0x2a3408);" (assignment_expression "pcVar13 = *(code **)(pcVar14 + 0x2a3408)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x2a3408)" * (cast_expression "(code **)(pcVar14 + 0x2a3408)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2a3408)" ( (binary_expression "pcVar14 + 0x2a3408" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(pcVar14 + 0x2a26e4) + -0x4920;" (assignment_expression "iVar11 = *(int *)(pcVar14 + 0x2a26e4) + -0x4920" identifier = (binary_expression "*(int *)(pcVar14 + 0x2a26e4) + -0x4920" (pointer_expression "*(int *)(pcVar14 + 0x2a26e4)" * (cast_expression "(int *)(pcVar14 + 0x2a26e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a26e4)" ( (binary_expression "pcVar14 + 0x2a26e4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = *(int *)(pcVar14 + 0x2a26e0) + 0x1e64;" (assignment_expression "iVar10 = *(int *)(pcVar14 + 0x2a26e0) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar14 + 0x2a26e0) + 0x1e64" (pointer_expression "*(int *)(pcVar14 + 0x2a26e0)" * (cast_expression "(int *)(pcVar14 + 0x2a26e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a26e0)" ( (binary_expression "pcVar14 + 0x2a26e0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar13)(iVar10,iVar11,0x334,*(int *)(pcVar14 + 0x2a26e4) + -0x45a4,pcVar14 + 0x2aa6b0);" (call_expression "(*pcVar13)(iVar10,iVar11,0x334,*(int *)(pcVar14 + 0x2a26e4) + -0x45a4,pcVar14 + 0x2aa6b0)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(iVar10,iVar11,0x334,*(int *)(pcVar14 + 0x2a26e4) + -0x45a4,pcVar14 + 0x2aa6b0)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x2a26e4) + -0x45a4" (pointer_expression "*(int *)(pcVar14 + 0x2a26e4)" * (cast_expression "(int *)(pcVar14 + 0x2a26e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2a26e4)" ( (binary_expression "pcVar14 + 0x2a26e4" identifier + number_literal) )))) + number_literal) , (binary_expression "pcVar14 + 0x2aa6b0" identifier + number_literal) ))) ;) (if_statement "if (iVar10 == 0) {\n    pIVar2 = (Image *)0x0;\n  }\n  else {\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar13 + 0x2a33a4))\n                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n      return (Image *)0x0;\n    }\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    iVar4 = (**(code **)(pcVar13 + 0x2a3014))(iVar10);\n    pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a32a8))(iVar4 + 1,4);\n    if (pIVar2 == (Image *)0x0) {\n      (**(code **)(pcVar13 + 0x2a2cbc))\n                (iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,\n                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,\n                 iVar10 + 0x340);\n    }\n    else {\n      CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10);\n      pIVar6 = pIVar2;\n      if (CVar5 != UndefinedClass) {\n        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }\n        (**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      pIVar6->storage_class = UndefinedClass;\n    }\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    pIVar2 = (Image *)0x0;\n  }" { (expression_statement "pIVar2 = (Image *)0x0;" (assignment_expression "pIVar2 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar13 + 0x2a33a4))\n                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n      return (Image *)0x0;\n    }\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    iVar4 = (**(code **)(pcVar13 + 0x2a3014))(iVar10);\n    pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a32a8))(iVar4 + 1,4);\n    if (pIVar2 == (Image *)0x0) {\n      (**(code **)(pcVar13 + 0x2a2cbc))\n                (iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,\n                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,\n                 iVar10 + 0x340);\n    }\n    else {\n      CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10);\n      pIVar6 = pIVar2;\n      if (CVar5 != UndefinedClass) {\n        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }\n        (**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      pIVar6->storage_class = UndefinedClass;\n    }\n  }" else (compound_statement "{\n    if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar13 + 0x2a33a4))\n                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n      return (Image *)0x0;\n    }\n    if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac\n                 ,iVar10 + 0x340);\n    }\n    iVar4 = (**(code **)(pcVar13 + 0x2a3014))(iVar10);\n    pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a32a8))(iVar4 + 1,4);\n    if (pIVar2 == (Image *)0x0) {\n      (**(code **)(pcVar13 + 0x2a2cbc))\n                (iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,\n                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,\n                 iVar10 + 0x340);\n    }\n    else {\n      CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10);\n      pIVar6 = pIVar2;\n      if (CVar5 != UndefinedClass) {\n        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }\n        (**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      pIVar6->storage_class = UndefinedClass;\n    }\n  }" { (if_statement "if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar13 + 0x2a33a4))\n                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n      return (Image *)0x0;\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x336c)" * (cast_expression "(int *)(iVar10 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x336c)" ( (binary_expression "iVar10 + 0x336c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_00106404:\n      (**(code **)(pcVar13 + 0x2a33a4))\n                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n      return (Image *)0x0;\n    }" { (labeled_statement "LAB_00106404:\n      (**(code **)(pcVar13 + 0x2a33a4))\n                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8);" statement_identifier : (expression_statement "(**(code **)(pcVar13 + 0x2a33a4))\n                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8);" (call_expression "(**(code **)(pcVar13 + 0x2a33a4))\n                (*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8)" (parenthesized_expression "(**(code **)(pcVar13 + 0x2a33a4))" ( (pointer_expression "**(code **)(pcVar13 + 0x2a33a4)" * (pointer_expression "*(code **)(pcVar13 + 0x2a33a4)" * (cast_expression "(code **)(pcVar13 + 0x2a33a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a33a4)" ( (binary_expression "pcVar13 + 0x2a33a4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar13 + 0x2a267c) + 0x1e64,*(int *)(pcVar13 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45b8)" ( (binary_expression "*(int *)(pcVar13 + 0x2a267c) + 0x1e64" (pointer_expression "*(int *)(pcVar13 + 0x2a267c)" * (cast_expression "(int *)(pcVar13 + 0x2a267c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a267c)" ( (binary_expression "pcVar13 + 0x2a267c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar13 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar13 + 0x2a2680)" * (cast_expression "(int *)(pcVar13 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2680)" ( (binary_expression "pcVar13 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a2680) + -0x45b8" (pointer_expression "*(int *)(pcVar13 + 0x2a2680)" * (cast_expression "(int *)(pcVar13 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2680)" ( (binary_expression "pcVar13 + 0x2a2680" identifier + number_literal) )))) + number_literal) ))) ;)) (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar10 + 0x3350) != 0) {\n      (**(code **)(pcVar13 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac\n                 ,iVar10 + 0x340);\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x3350) != 0" (pointer_expression "*(int *)(iVar10 + 0x3350)" * (cast_expression "(int *)(iVar10 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3350)" ( (binary_expression "iVar10 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar13 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac\n                 ,iVar10 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar13 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac\n                 ,iVar10 + 0x340);" (call_expression "(**(code **)(pcVar13 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac\n                 ,iVar10 + 0x340)" (parenthesized_expression "(**(code **)(pcVar13 + 0x2a2f7c))" ( (pointer_expression "**(code **)(pcVar13 + 0x2a2f7c)" * (pointer_expression "*(code **)(pcVar13 + 0x2a2f7c)" * (cast_expression "(code **)(pcVar13 + 0x2a2f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a2f7c)" ( (binary_expression "pcVar13 + 0x2a2f7c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar13 + 0x2a2680) + -0x62ac\n                 ,iVar10 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar13 + 0x2a2680)" * (cast_expression "(int *)(pcVar13 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2680)" ( (binary_expression "pcVar13 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar13 + 0x2a2680) + -0x45cc" (pointer_expression "*(int *)(pcVar13 + 0x2a2680)" * (cast_expression "(int *)(pcVar13 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2680)" ( (binary_expression "pcVar13 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a2680) + -0x62ac" (pointer_expression "*(int *)(pcVar13 + 0x2a2680)" * (cast_expression "(int *)(pcVar13 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2680)" ( (binary_expression "pcVar13 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar10 + 0x340" identifier + number_literal) ))) ;) })) (expression_statement "iVar4 = (**(code **)(pcVar13 + 0x2a3014))(iVar10);" (assignment_expression "iVar4 = (**(code **)(pcVar13 + 0x2a3014))(iVar10)" identifier = (call_expression "(**(code **)(pcVar13 + 0x2a3014))(iVar10)" (parenthesized_expression "(**(code **)(pcVar13 + 0x2a3014))" ( (pointer_expression "**(code **)(pcVar13 + 0x2a3014)" * (pointer_expression "*(code **)(pcVar13 + 0x2a3014)" * (cast_expression "(code **)(pcVar13 + 0x2a3014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a3014)" ( (binary_expression "pcVar13 + 0x2a3014" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a32a8))(iVar4 + 1,4);" (assignment_expression "pIVar2 = (Image *)(**(code **)(pcVar13 + 0x2a32a8))(iVar4 + 1,4)" identifier = (cast_expression "(Image *)(**(code **)(pcVar13 + 0x2a32a8))(iVar4 + 1,4)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar13 + 0x2a32a8))(iVar4 + 1,4)" (parenthesized_expression "(**(code **)(pcVar13 + 0x2a32a8))" ( (pointer_expression "**(code **)(pcVar13 + 0x2a32a8)" * (pointer_expression "*(code **)(pcVar13 + 0x2a32a8)" * (cast_expression "(code **)(pcVar13 + 0x2a32a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a32a8)" ( (binary_expression "pcVar13 + 0x2a32a8" identifier + number_literal) ))))) )) (argument_list "(iVar4 + 1,4)" ( (binary_expression "iVar4 + 1" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (pIVar2 == (Image *)0x0) {\n      (**(code **)(pcVar13 + 0x2a2cbc))\n                (iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,\n                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,\n                 iVar10 + 0x340);\n    }\n    else {\n      CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10);\n      pIVar6 = pIVar2;\n      if (CVar5 != UndefinedClass) {\n        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }\n        (**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      pIVar6->storage_class = UndefinedClass;\n    }" if (parenthesized_expression "(pIVar2 == (Image *)0x0)" ( (binary_expression "pIVar2 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar13 + 0x2a2cbc))\n                (iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,\n                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,\n                 iVar10 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar13 + 0x2a2cbc))\n                (iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,\n                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,\n                 iVar10 + 0x340);" (call_expression "(**(code **)(pcVar13 + 0x2a2cbc))\n                (iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,\n                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,\n                 iVar10 + 0x340)" (parenthesized_expression "(**(code **)(pcVar13 + 0x2a2cbc))" ( (pointer_expression "**(code **)(pcVar13 + 0x2a2cbc)" * (pointer_expression "*(code **)(pcVar13 + 0x2a2cbc)" * (cast_expression "(code **)(pcVar13 + 0x2a2cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a2cbc)" ( (binary_expression "pcVar13 + 0x2a2cbc" identifier + number_literal) ))))) )) (argument_list "(iVar11,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar13 + 0x2a2680) + -0x45cc,0x36b,400,\n                 *(int *)(pcVar13 + 0x2a267c) + 0x16f8,*(int *)(pcVar13 + 0x2a267c) + 0x3e28,\n                 iVar10 + 0x340)" ( identifier , (binary_expression "*(int *)(pcVar13 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar13 + 0x2a2680)" * (cast_expression "(int *)(pcVar13 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2680)" ( (binary_expression "pcVar13 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar13 + 0x2a2680) + -0x45cc" (pointer_expression "*(int *)(pcVar13 + 0x2a2680)" * (cast_expression "(int *)(pcVar13 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2680)" ( (binary_expression "pcVar13 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a267c) + 0x16f8" (pointer_expression "*(int *)(pcVar13 + 0x2a267c)" * (cast_expression "(int *)(pcVar13 + 0x2a267c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a267c)" ( (binary_expression "pcVar13 + 0x2a267c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar13 + 0x2a267c) + 0x3e28" (pointer_expression "*(int *)(pcVar13 + 0x2a267c)" * (cast_expression "(int *)(pcVar13 + 0x2a267c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a267c)" ( (binary_expression "pcVar13 + 0x2a267c" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar10 + 0x340" identifier + number_literal) ))) ;) }) (else_clause "else {\n      CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10);\n      pIVar6 = pIVar2;\n      if (CVar5 != UndefinedClass) {\n        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }\n        (**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      pIVar6->storage_class = UndefinedClass;\n    }" else (compound_statement "{\n      CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10);\n      pIVar6 = pIVar2;\n      if (CVar5 != UndefinedClass) {\n        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }\n        (**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      pIVar6->storage_class = UndefinedClass;\n    }" { (expression_statement "CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10);" (assignment_expression "CVar5 = (**(code **)(pcVar13 + 0x2a31e8))(iVar10)" identifier = (call_expression "(**(code **)(pcVar13 + 0x2a31e8))(iVar10)" (parenthesized_expression "(**(code **)(pcVar13 + 0x2a31e8))" ( (pointer_expression "**(code **)(pcVar13 + 0x2a31e8)" * (pointer_expression "*(code **)(pcVar13 + 0x2a31e8)" * (cast_expression "(code **)(pcVar13 + 0x2a31e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a31e8)" ( (binary_expression "pcVar13 + 0x2a31e8" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "pIVar6 = pIVar2;" (assignment_expression "pIVar6 = pIVar2" identifier = identifier) ;) (if_statement "if (CVar5 != UndefinedClass) {\n        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }\n        (**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }" if (parenthesized_expression "(CVar5 != UndefinedClass)" ( (binary_expression "CVar5 != UndefinedClass" identifier != identifier) )) (compound_statement "{\n        if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }\n        (**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }" { (if_statement "if (CVar5 != *(ClassType *)(CVar5 + 0x3368)) {\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }" if (parenthesized_expression "(CVar5 != *(ClassType *)(CVar5 + 0x3368))" ( (binary_expression "CVar5 != *(ClassType *)(CVar5 + 0x3368)" identifier != (pointer_expression "*(ClassType *)(CVar5 + 0x3368)" * (cast_expression "(ClassType *)(CVar5 + 0x3368)" ( (type_descriptor "ClassType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CVar5 + 0x3368)" ( (binary_expression "CVar5 + 0x3368" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar10 = 0;\n          do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);\n        }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          } while (*(ClassType *)(CVar5 + 0x3368) != CVar5);" do (compound_statement "{\n            pIVar6->storage_class = CVar5;\n            CVar5 = *(ClassType *)(CVar5 + 0x3368);\n            if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }\n            pIVar6 = (Image *)&pIVar6->colorspace;\n            iVar10 = iVar10 + 1;\n          }" { (expression_statement "pIVar6->storage_class = CVar5;" (assignment_expression "pIVar6->storage_class = CVar5" (field_expression "pIVar6->storage_class" identifier -> field_identifier) = identifier) ;) (expression_statement "CVar5 = *(ClassType *)(CVar5 + 0x3368);" (assignment_expression "CVar5 = *(ClassType *)(CVar5 + 0x3368)" identifier = (pointer_expression "*(ClassType *)(CVar5 + 0x3368)" * (cast_expression "(ClassType *)(CVar5 + 0x3368)" ( (type_descriptor "ClassType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CVar5 + 0x3368)" ( (binary_expression "CVar5 + 0x3368" identifier + number_literal) ))))) ;) (if_statement "if (CVar5 == UndefinedClass) {\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }" if (parenthesized_expression "(CVar5 == UndefinedClass)" ( (binary_expression "CVar5 == UndefinedClass" identifier == identifier) )) (compound_statement "{\n              pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);\n              goto LAB_00106328;\n            }" { (expression_statement "pIVar6 = (Image *)(&pIVar2->colorspace + iVar10);" (assignment_expression "pIVar6 = (Image *)(&pIVar2->colorspace + iVar10)" identifier = (cast_expression "(Image *)(&pIVar2->colorspace + iVar10)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&pIVar2->colorspace + iVar10)" ( (binary_expression "&pIVar2->colorspace + iVar10" (pointer_expression "&pIVar2->colorspace" & (field_expression "pIVar2->colorspace" identifier -> field_identifier)) + identifier) )))) ;) (goto_statement "goto LAB_00106328;" goto statement_identifier ;) })) (expression_statement "pIVar6 = (Image *)&pIVar6->colorspace;" (assignment_expression "pIVar6 = (Image *)&pIVar6->colorspace" identifier = (cast_expression "(Image *)&pIVar6->colorspace" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar6->colorspace" & (field_expression "pIVar6->colorspace" identifier -> field_identifier)))) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(ClassType *)(CVar5 + 0x3368) != CVar5)" ( (binary_expression "*(ClassType *)(CVar5 + 0x3368) != CVar5" (pointer_expression "*(ClassType *)(CVar5 + 0x3368)" * (cast_expression "(ClassType *)(CVar5 + 0x3368)" ( (type_descriptor "ClassType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CVar5 + 0x3368)" ( (binary_expression "CVar5 + 0x3368" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8);" (call_expression "(**(code **)(pcVar13 + 0x2a33a4))\n                  (*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8)" (parenthesized_expression "(**(code **)(pcVar13 + 0x2a33a4))" ( (pointer_expression "**(code **)(pcVar13 + 0x2a33a4)" * (pointer_expression "*(code **)(pcVar13 + 0x2a33a4)" * (cast_expression "(code **)(pcVar13 + 0x2a33a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0x2a33a4)" ( (binary_expression "pcVar13 + 0x2a33a4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar13 + 0x2a2680) + -0x48a8,*(int *)(pcVar13 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar13 + 0x2a2680) + -0x45b8)" ( (binary_expression "*(int *)(pcVar13 + 0x2a2680) + -0x48a8" (pointer_expression "*(int *)(pcVar13 + 0x2a2680)" * (cast_expression "(int *)(pcVar13 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2680)" ( (binary_expression "pcVar13 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar13 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar13 + 0x2a2680)" * (cast_expression "(int *)(pcVar13 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2680)" ( (binary_expression "pcVar13 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar13 + 0x2a2680) + -0x45b8" (pointer_expression "*(int *)(pcVar13 + 0x2a2680)" * (cast_expression "(int *)(pcVar13 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0x2a2680)" ( (binary_expression "pcVar13 + 0x2a2680" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00106404;" goto statement_identifier ;) })) (labeled_statement "LAB_00106328:\n      pIVar6->storage_class = UndefinedClass;" statement_identifier : (expression_statement "pIVar6->storage_class = UndefinedClass;" (assignment_expression "pIVar6->storage_class = UndefinedClass" (field_expression "pIVar6->storage_class" identifier -> field_identifier) = identifier) ;)) }))) }))) (return_statement "return pIVar2;" return identifier ;) })))
(translation_unit "int * GetFirstImageInList(int *param_1)\n\n{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  \n  if (param_1 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (param_1[0xcdb] == -0x54535255) {\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }\n  puVar4 = PTR_LAB_003a88e0 + 0x1e64;\n  puVar9 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);\n  if (puVar4 == (undefined *)0x0) {\n    return (int *)0xffffffff;\n  }\n  iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n  if (*(int *)(puVar4 + 0x336c) == -0x54535255) {\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }\n  pcVar10 = *(code **)(puVar9 + 0x2a39d8);\n  piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);\n  (*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);\n  if (piVar2 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (piVar2[0xcdb] == -0x54535255) {\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a391c);\n  iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;\n  piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);\n  piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4);\n  if (piVar5 == (int *)0x0) {\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }\n  else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a38ac);\n  iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;\n  (*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a3748);\n  iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a35f4);\n  iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;\n  (*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a34d0);\n  iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    return *(int **)(iVar7 + 0x3364);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a3408);\n  iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;\n  (*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);\n  if (iVar7 == 0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }\n  return piVar2;\n}\n\n" (function_definition "int * GetFirstImageInList(int *param_1)\n\n{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  \n  if (param_1 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (param_1[0xcdb] == -0x54535255) {\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }\n  puVar4 = PTR_LAB_003a88e0 + 0x1e64;\n  puVar9 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);\n  if (puVar4 == (undefined *)0x0) {\n    return (int *)0xffffffff;\n  }\n  iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n  if (*(int *)(puVar4 + 0x336c) == -0x54535255) {\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }\n  pcVar10 = *(code **)(puVar9 + 0x2a39d8);\n  piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);\n  (*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);\n  if (piVar2 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (piVar2[0xcdb] == -0x54535255) {\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a391c);\n  iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;\n  piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);\n  piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4);\n  if (piVar5 == (int *)0x0) {\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }\n  else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a38ac);\n  iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;\n  (*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a3748);\n  iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a35f4);\n  iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;\n  (*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a34d0);\n  iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    return *(int **)(iVar7 + 0x3364);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a3408);\n  iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;\n  (*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);\n  if (iVar7 == 0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }\n  return piVar2;\n}" primitive_type (pointer_declarator "* GetFirstImageInList(int *param_1)" * (function_declarator "GetFirstImageInList(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  \n  if (param_1 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (param_1[0xcdb] == -0x54535255) {\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }\n  puVar4 = PTR_LAB_003a88e0 + 0x1e64;\n  puVar9 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);\n  if (puVar4 == (undefined *)0x0) {\n    return (int *)0xffffffff;\n  }\n  iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n  if (*(int *)(puVar4 + 0x336c) == -0x54535255) {\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }\n  pcVar10 = *(code **)(puVar9 + 0x2a39d8);\n  piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);\n  (*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);\n  if (piVar2 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (piVar2[0xcdb] == -0x54535255) {\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a391c);\n  iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;\n  piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);\n  piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4);\n  if (piVar5 == (int *)0x0) {\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }\n  else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a38ac);\n  iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;\n  (*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a3748);\n  iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a35f4);\n  iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;\n  (*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a34d0);\n  iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    return *(int **)(iVar7 + 0x3364);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a3408);\n  iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;\n  (*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);\n  if (iVar7 == 0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }\n  return piVar2;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (if_statement "if (param_1 == (int *)0x0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (param_1[0xcdb] == -0x54535255) {\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }" if (parenthesized_expression "(param_1[0xcdb] == -0x54535255)" ( (binary_expression "param_1[0xcdb] == -0x54535255" (subscript_expression "param_1[0xcdb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }" { (do_statement "do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);" do (compound_statement "{\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    }" { (expression_statement "piVar2 = param_1;" (assignment_expression "piVar2 = param_1" identifier = identifier) ;) (expression_statement "param_1 = (int *)piVar2[0xcd9];" (assignment_expression "param_1 = (int *)piVar2[0xcd9]" identifier = (cast_expression "(int *)piVar2[0xcd9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[0xcd9]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (return_statement "return piVar2;" return identifier ;) })) (expression_statement "puVar4 = PTR_LAB_003a88e0 + 0x1e64;" (assignment_expression "puVar4 = PTR_LAB_003a88e0 + 0x1e64" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x1e64" identifier + number_literal)) ;) (expression_statement "puVar9 = PTR___assert_fail_003a9608;" (assignment_expression "puVar9 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x4920" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x44ec" identifier + number_literal) ))) ;) (if_statement "if (puVar4 == (undefined *)0x0) {\n    return (int *)0xffffffff;\n  }" if (parenthesized_expression "(puVar4 == (undefined *)0x0)" ( (binary_expression "puVar4 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (int *)0xffffffff;\n  }" { (return_statement "return (int *)0xffffffff;" return (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar7 = *(int *)(puVar9 + 0x2a2cb4);" (assignment_expression "iVar7 = *(int *)(puVar9 + 0x2a2cb4)" identifier = (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" * (cast_expression "(int *)(puVar9 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb4)" ( (binary_expression "puVar9 + 0x2a2cb4" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar4 + 0x336c) == -0x54535255) {\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }" if (parenthesized_expression "(*(int *)(puVar4 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(puVar4 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(puVar4 + 0x336c)" * (cast_expression "(int *)(puVar4 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x336c)" ( (binary_expression "puVar4 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }" { (expression_statement "puVar6 = *(undefined **)(puVar4 + 0x3364);" (assignment_expression "puVar6 = *(undefined **)(puVar4 + 0x3364)" identifier = (pointer_expression "*(undefined **)(puVar4 + 0x3364)" * (cast_expression "(undefined **)(puVar4 + 0x3364)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x3364)" ( (binary_expression "puVar4 + 0x3364" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }" if (parenthesized_expression "(puVar6 == (undefined *)0x0)" ( (binary_expression "puVar6 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (int *)0x0;\n    }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }" if (parenthesized_expression "(puVar4 != puVar6)" ( (binary_expression "puVar4 != puVar6" identifier != identifier) )) (compound_statement "{\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }" { (do_statement "do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);" do (compound_statement "{\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      }" { (expression_statement "puVar4 = *(undefined **)(puVar6 + 0x3364);" (assignment_expression "puVar4 = *(undefined **)(puVar6 + 0x3364)" identifier = (pointer_expression "*(undefined **)(puVar6 + 0x3364)" * (cast_expression "(undefined **)(puVar6 + 0x3364)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x3364)" ( (binary_expression "puVar6 + 0x3364" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = (int *)((int)piVar2 + 1);" (assignment_expression "piVar2 = (int *)((int)piVar2 + 1)" identifier = (cast_expression "(int *)((int)piVar2 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 1)" ( (binary_expression "(int)piVar2 + 1" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }" if (parenthesized_expression "(puVar4 == (undefined *)0x0)" ( (binary_expression "puVar4 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return piVar2;\n        }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "bVar1 = puVar4 != puVar6;" (assignment_expression "bVar1 = puVar4 != puVar6" identifier = (binary_expression "puVar4 != puVar6" identifier != identifier)) ;) (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (expression_statement "iVar7 = *(int *)(puVar9 + 0x2a2cb4);" (assignment_expression "iVar7 = *(int *)(puVar9 + 0x2a2cb4)" identifier = (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" * (cast_expression "(int *)(puVar9 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb4)" ( (binary_expression "puVar9 + 0x2a2cb4" identifier + number_literal) ))))) ;) })) (expression_statement "iVar7 = iVar7 + -0x4528;" (assignment_expression "iVar7 = iVar7 + -0x4528" identifier = (binary_expression "iVar7 + -0x4528" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);" (call_expression "(**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80)" (parenthesized_expression "(**(code **)(puVar9 + 0x2a39d8))" ( (pointer_expression "**(code **)(puVar9 + 0x2a39d8)" * (pointer_expression "*(code **)(puVar9 + 0x2a39d8)" * (cast_expression "(code **)(puVar9 + 0x2a39d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x2a39d8)" ( (binary_expression "puVar9 + 0x2a39d8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80)" ( (binary_expression "*(int *)(puVar9 + 0x2a2cb4) + -0x490c" (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" * (cast_expression "(int *)(puVar9 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb4)" ( (binary_expression "puVar9 + 0x2a2cb4" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar9 + 0x2a2cb4) + -0x4920" (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" * (cast_expression "(int *)(puVar9 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb4)" ( (binary_expression "puVar9 + 0x2a2cb4" identifier + number_literal) )))) + number_literal) , number_literal , identifier , (binary_expression "puVar9 + 0x2aac80" identifier + number_literal) ))) ;) })) (expression_statement "pcVar10 = *(code **)(puVar9 + 0x2a39d8);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0x2a39d8)" identifier = (pointer_expression "*(code **)(puVar9 + 0x2a39d8)" * (cast_expression "(code **)(puVar9 + 0x2a39d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x2a39d8)" ( (binary_expression "puVar9 + 0x2a39d8" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);" (assignment_expression "piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64)" identifier = (cast_expression "(int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64)" ( (binary_expression "*(int *)(puVar9 + 0x2a2cb0) + 0x1e64" (pointer_expression "*(int *)(puVar9 + 0x2a2cb0)" * (cast_expression "(int *)(puVar9 + 0x2a2cb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb0)" ( (binary_expression "puVar9 + 0x2a2cb0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);" (call_expression "(*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528)" ( identifier , (binary_expression "*(int *)(puVar9 + 0x2a2cb4) + -0x4920" (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" * (cast_expression "(int *)(puVar9 + 0x2a2cb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x2a2cb4)" ( (binary_expression "puVar9 + 0x2a2cb4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar7 + -0x4528" identifier + number_literal) ))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (piVar2[0xcdb] == -0x54535255) {\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }" if (parenthesized_expression "(piVar2[0xcdb] == -0x54535255)" ( (binary_expression "piVar2[0xcdb] == -0x54535255" (subscript_expression "piVar2[0xcdb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }" { (do_statement "do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);" do (compound_statement "{\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    }" { (expression_statement "piVar5 = piVar2;" (assignment_expression "piVar5 = piVar2" identifier = identifier) ;) (expression_statement "piVar2 = (int *)piVar5[0xcda];" (assignment_expression "piVar2 = (int *)piVar5[0xcda]" identifier = (cast_expression "(int *)piVar5[0xcda]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[0xcda]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (return_statement "return piVar5;" return identifier ;) })) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x2a391c);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x2a391c)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x2a391c)" * (cast_expression "(code **)(pcVar10 + 0x2a391c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a391c)" ( (binary_expression "pcVar10 + 0x2a391c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;" (assignment_expression "iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920" identifier = (binary_expression "*(int *)(pcVar10 + 0x2a2bf8) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2bf8)" * (cast_expression "(int *)(pcVar10 + 0x2a2bf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2bf8)" ( (binary_expression "pcVar10 + 0x2a2bf8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);" (assignment_expression "piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64)" identifier = (cast_expression "(int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64)" ( (binary_expression "*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a2bf4)" * (cast_expression "(int *)(pcVar10 + 0x2a2bf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2bf4)" ( (binary_expression "pcVar10 + 0x2a2bf4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4);" (assignment_expression "piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" identifier = (cast_expression "(int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2bf8) + -0x4564" (pointer_expression "*(int *)(pcVar10 + 0x2a2bf8)" * (cast_expression "(int *)(pcVar10 + 0x2a2bf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2bf8)" ( (binary_expression "pcVar10 + 0x2a2bf8" identifier + number_literal) )))) + number_literal) , (binary_expression "pcVar10 + 0x2aabc4" identifier + number_literal) ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }\n  else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }" { (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4434" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);" (call_expression "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a38ac))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a38ac)" * (pointer_expression "*(code **)(pcVar11 + 0x2a38ac)" * (cast_expression "(code **)(pcVar11 + 0x2a38ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a38ac)" ( (binary_expression "pcVar11 + 0x2a38ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8)" ( (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x48f0" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);" statement_identifier : (expression_statement "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);" (call_expression "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a38ac))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a38ac)" * (pointer_expression "*(code **)(pcVar11 + 0x2a38ac)" * (cast_expression "(code **)(pcVar11 + 0x2a38ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a38ac)" ( (binary_expression "pcVar11 + 0x2a38ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434)" ( (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x48d4" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar8 + -0x4434" identifier + number_literal) ))) ;)) }) (else_clause "else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }" else (compound_statement "{\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }" { (if_statement "if (iVar7 == 0) {\n      return piVar2;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      return piVar2;\n    }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a2b88);" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a2b88)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00105e7c;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x3350) == 0)" ( (binary_expression "*(int *)(iVar7 + 0x3350) == 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" * (cast_expression "(int *)(iVar7 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3350)" ( (binary_expression "iVar7 + 0x3350" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }" { (expression_statement "iVar8 = *piVar5;" (assignment_expression "iVar8 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }" else (compound_statement "{\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }" { (expression_statement "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" identifier = (cast_expression "(int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a3484))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a3484)" * (pointer_expression "*(code **)(pcVar11 + 0x2a3484)" * (cast_expression "(code **)(pcVar11 + 0x2a3484)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a3484)" ( (binary_expression "pcVar11 + 0x2a3484" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4448" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x62ac" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *piVar5;" (assignment_expression "iVar8 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) }))) (if_statement "if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      *piVar5 = iVar7;\n      return piVar2;\n    }" { (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" * identifier) = identifier) ;) (return_statement "return piVar2;" return identifier ;) })) (if_statement "if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }" if (parenthesized_expression "(*(int *)(iVar8 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar8 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar8 + 0x336c)" * (cast_expression "(int *)(iVar8 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x336c)" ( (binary_expression "iVar8 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }" { (expression_statement "iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();" (assignment_expression "iVar8 = (**(code **)(pcVar11 + 0x2a31fc))()" identifier = (call_expression "(**(code **)(pcVar11 + 0x2a31fc))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a31fc))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a31fc)" * (pointer_expression "*(code **)(pcVar11 + 0x2a31fc)" * (cast_expression "(code **)(pcVar11 + 0x2a31fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a31fc)" ( (binary_expression "pcVar11 + 0x2a31fc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7)" identifier = (cast_expression "(int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar11 + 0x2a36f0))(iVar7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a36f0))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a36f0)" * (pointer_expression "*(code **)(pcVar11 + 0x2a36f0)" * (cast_expression "(code **)(pcVar11 + 0x2a36f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a36f0)" ( (binary_expression "pcVar11 + 0x2a36f0" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "*(int **)(iVar8 + 0x3368) = piVar2;" (assignment_expression "*(int **)(iVar8 + 0x3368) = piVar2" (pointer_expression "*(int **)(iVar8 + 0x3368)" * (cast_expression "(int **)(iVar8 + 0x3368)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x3368)" ( (binary_expression "iVar8 + 0x3368" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar2[0xcd9] = iVar8;" (assignment_expression "piVar2[0xcd9] = iVar8" (subscript_expression "piVar2[0xcd9]" identifier [ number_literal ]) = identifier) ;) (return_statement "return piVar2;" return identifier ;) })) }))) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x2a38ac);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x2a38ac)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x2a38ac)" * (cast_expression "(code **)(pcVar11 + 0x2a38ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a38ac)" ( (binary_expression "pcVar11 + 0x2a38ac" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4d48" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);" (call_expression "(*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4434" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" * (cast_expression "(int *)(pcVar11 + 0x2a2b88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a2b88)" ( (binary_expression "pcVar11 + 0x2a2b88" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }" { (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" * (cast_expression "(int *)(iVar7 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3350)" ( (binary_expression "iVar7 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a3320))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a3320)" * (pointer_expression "*(code **)(pcVar10 + 0x2a3320)" * (cast_expression "(code **)(pcVar10 + 0x2a3320)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a3320)" ( (binary_expression "pcVar10 + 0x2a3320" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" * (cast_expression "(int *)(pcVar10 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a24)" ( (binary_expression "pcVar10 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4514" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" * (cast_expression "(int *)(pcVar10 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a24)" ( (binary_expression "pcVar10 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x62ac" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" * (cast_expression "(int *)(pcVar10 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a24)" ( (binary_expression "pcVar10 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) ))) ;) })) (if_statement "if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }" { (expression_statement "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7)" identifier = (cast_expression "(int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar10 + 0x2a3098))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a3098))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a3098)" * (pointer_expression "*(code **)(pcVar10 + 0x2a3098)" * (cast_expression "(code **)(pcVar10 + 0x2a3098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a3098)" ( (binary_expression "pcVar10 + 0x2a3098" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))))) ;) (if_statement "if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }" { (if_statement "if (iVar8 == -1) {\n          return piVar2;\n        }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n          return piVar2;\n        }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "iVar7 = -2;" (assignment_expression "iVar7 = -2" identifier = number_literal) ;) (while_statement "while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }" { (expression_statement "piVar2 = (int *)piVar2[0xcd9];" (assignment_expression "piVar2 = (int *)piVar2[0xcd9]" identifier = (cast_expression "(int *)piVar2[0xcd9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[0xcd9]" identifier [ number_literal ]))) ;) (if_statement "if (piVar2 == (int *)0x0) break;" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = iVar7 == iVar8;" (assignment_expression "bVar1 = iVar7 == iVar8" identifier = (binary_expression "iVar7 == iVar8" identifier == identifier)) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (if_statement "if (bVar1) {\n            return piVar2;\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            return piVar2;\n          }" { (return_statement "return piVar2;" return identifier ;) })) })) })) }) (else_clause "else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }" else (compound_statement "{\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }" { (expression_statement "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7)" identifier = (cast_expression "(int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar10 + 0x2a358c))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a358c))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a358c)" * (pointer_expression "*(code **)(pcVar10 + 0x2a358c)" * (cast_expression "(code **)(pcVar10 + 0x2a358c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a358c)" ( (binary_expression "pcVar10 + 0x2a358c" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))))) ;) (if_statement "if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }" { (if_statement "if (iVar8 == 0) {\n          return piVar2;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          return piVar2;\n        }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }" { (expression_statement "piVar2 = (int *)piVar2[0xcda];" (assignment_expression "piVar2 = (int *)piVar2[0xcda]" identifier = (cast_expression "(int *)piVar2[0xcda]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[0xcda]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (piVar2 == (int *)0x0) break;" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (iVar8 == iVar7) {\n            return piVar2;\n          }" if (parenthesized_expression "(iVar8 == iVar7)" ( (binary_expression "iVar8 == iVar7" identifier == identifier) )) (compound_statement "{\n            return piVar2;\n          }" { (return_statement "return piVar2;" return identifier ;) })) })) })) }))) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x2a3748);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x2a3748)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x2a3748)" * (cast_expression "(code **)(pcVar10 + 0x2a3748)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a3748)" ( (binary_expression "pcVar10 + 0x2a3748" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar10 + 0x2a2a20) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a2a20)" * (cast_expression "(int *)(pcVar10 + 0x2a2a20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a20)" ( (binary_expression "pcVar10 + 0x2a2a20" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);" (call_expression "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500)" ( identifier , (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" * (cast_expression "(int *)(pcVar10 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a24)" ( (binary_expression "pcVar10 + 0x2a2a24" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4500" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" * (cast_expression "(int *)(pcVar10 + 0x2a2a24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2a24)" ( (binary_expression "pcVar10 + 0x2a2a24" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }" { (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" * (cast_expression "(int *)(iVar7 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3350)" ( (binary_expression "iVar7 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a31cc))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a31cc)" * (pointer_expression "*(code **)(pcVar11 + 0x2a31cc)" * (cast_expression "(code **)(pcVar11 + 0x2a31cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a31cc)" ( (binary_expression "pcVar11 + 0x2a31cc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4550" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x62ac" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) ))) ;) })) (expression_statement "iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);" (assignment_expression "iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7)" identifier = (call_expression "(**(code **)(pcVar11 + 0x2a2f44))(iVar7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a2f44))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a2f44)" * (pointer_expression "*(code **)(pcVar11 + 0x2a2f44)" * (cast_expression "(code **)(pcVar11 + 0x2a2f44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a2f44)" ( (binary_expression "pcVar11 + 0x2a2f44" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar7 == 0) {\n      return (int *)0x0;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      return (int *)0x0;\n    }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = *(int *)(iVar7 + 0x3364);" (assignment_expression "iVar8 = *(int *)(iVar7 + 0x3364)" identifier = (pointer_expression "*(int *)(iVar7 + 0x3364)" * (cast_expression "(int *)(iVar7 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3364)" ( (binary_expression "iVar7 + 0x3364" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" if (parenthesized_expression "(iVar7 == *(int *)(iVar7 + 0x3364))" ( (binary_expression "iVar7 == *(int *)(iVar7 + 0x3364)" identifier == (pointer_expression "*(int *)(iVar7 + 0x3364)" * (cast_expression "(int *)(iVar7 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3364)" ( (binary_expression "iVar7 + 0x3364" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" { (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a28d0);" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a28d0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" else (compound_statement "{\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" { (do_statement "do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);" do (compound_statement "{\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      }" { (expression_statement "piVar2 = (int *)((int)piVar2 + 1);" (assignment_expression "piVar2 = (int *)((int)piVar2 + 1)" identifier = (cast_expression "(int *)((int)piVar2 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 1)" ( (binary_expression "(int)piVar2 + 1" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (iVar8 == 0) {\n          return piVar2;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          return piVar2;\n        }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;" (assignment_expression "bVar1 = *(int *)(iVar8 + 0x3364) != iVar8" identifier = (binary_expression "*(int *)(iVar8 + 0x3364) != iVar8" (pointer_expression "*(int *)(iVar8 + 0x3364)" * (cast_expression "(int *)(iVar8 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3364)" ( (binary_expression "iVar8 + 0x3364" identifier + number_literal) )))) != identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar8 + 0x3364);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x3364)" identifier = (pointer_expression "*(int *)(iVar8 + 0x3364)" * (cast_expression "(int *)(iVar8 + 0x3364)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3364)" ( (binary_expression "iVar8 + 0x3364" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a28d0);" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a28d0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) ))))) ;) }))) (expression_statement "(**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);" (call_expression "(**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a35f4))" ( (pointer_expression "**(code **)(pcVar11 + 0x2a35f4)" * (pointer_expression "*(code **)(pcVar11 + 0x2a35f4)" * (cast_expression "(code **)(pcVar11 + 0x2a35f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a35f4)" ( (binary_expression "pcVar11 + 0x2a35f4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c)" ( (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x490c" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar7 + -0x453c" identifier + number_literal) ))) ;) })) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x2a35f4);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x2a35f4)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x2a35f4)" * (cast_expression "(code **)(pcVar11 + 0x2a35f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a35f4)" ( (binary_expression "pcVar11 + 0x2a35f4" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a28cc) + 0x1e64" (pointer_expression "*(int *)(pcVar11 + 0x2a28cc)" * (cast_expression "(int *)(pcVar11 + 0x2a28cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28cc)" ( (binary_expression "pcVar11 + 0x2a28cc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);" (call_expression "(*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c)" ( identifier , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x453c" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" * (cast_expression "(int *)(pcVar11 + 0x2a28d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a28d0)" ( (binary_expression "pcVar11 + 0x2a28d0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }" { (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" * (cast_expression "(int *)(iVar7 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3350)" ( (binary_expression "iVar7 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }" { (expression_statement "(**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);" (call_expression "(**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a30a8))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a30a8)" * (pointer_expression "*(code **)(pcVar10 + 0x2a30a8)" * (cast_expression "(code **)(pcVar10 + 0x2a30a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a30a8)" ( (binary_expression "pcVar10 + 0x2a30a8" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778)" ( number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" * (cast_expression "(int *)(pcVar10 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27ac)" ( (binary_expression "pcVar10 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x458c" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" * (cast_expression "(int *)(pcVar10 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27ac)" ( (binary_expression "pcVar10 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x62ac" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" * (cast_expression "(int *)(pcVar10 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27ac)" ( (binary_expression "pcVar10 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) , (binary_expression "pcVar10 + 0x2aa778" identifier + number_literal) ))) ;) (return_statement "return *(int **)(iVar7 + 0x3368);" return (pointer_expression "*(int **)(iVar7 + 0x3368)" * (cast_expression "(int **)(iVar7 + 0x3368)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3368)" ( (binary_expression "iVar7 + 0x3368" identifier + number_literal) )))) ;) })) (return_statement "return *(int **)(iVar7 + 0x3368);" return (pointer_expression "*(int **)(iVar7 + 0x3368)" * (cast_expression "(int **)(iVar7 + 0x3368)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3368)" ( (binary_expression "iVar7 + 0x3368" identifier + number_literal) )))) ;) })) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x2a34d0);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x2a34d0)" identifier = (pointer_expression "*(code **)(pcVar10 + 0x2a34d0)" * (cast_expression "(code **)(pcVar10 + 0x2a34d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a34d0)" ( (binary_expression "pcVar10 + 0x2a34d0" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar10 + 0x2a27a8) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a27a8)" * (cast_expression "(int *)(pcVar10 + 0x2a27a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27a8)" ( (binary_expression "pcVar10 + 0x2a27a8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);" (call_expression "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578)" ( identifier , (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" * (cast_expression "(int *)(pcVar10 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27ac)" ( (binary_expression "pcVar10 + 0x2a27ac" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x4578" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" * (cast_expression "(int *)(pcVar10 + 0x2a27ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a27ac)" ( (binary_expression "pcVar10 + 0x2a27ac" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return (int *)0x0;\n  }" { (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    return *(int **)(iVar7 + 0x3364);\n  }" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    return *(int **)(iVar7 + 0x3364);\n  }" { (return_statement "return *(int **)(iVar7 + 0x3364);" return (pointer_expression "*(int **)(iVar7 + 0x3364)" * (cast_expression "(int **)(iVar7 + 0x3364)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3364)" ( (binary_expression "iVar7 + 0x3364" identifier + number_literal) )))) ;) })) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x2a3408);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x2a3408)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x2a3408)" * (cast_expression "(code **)(pcVar11 + 0x2a3408)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x2a3408)" ( (binary_expression "pcVar11 + 0x2a3408" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a26e4) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a26e4)" * (cast_expression "(int *)(pcVar11 + 0x2a26e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a26e4)" ( (binary_expression "pcVar11 + 0x2a26e4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64" identifier = (binary_expression "*(int *)(pcVar11 + 0x2a26e0) + 0x1e64" (pointer_expression "*(int *)(pcVar11 + 0x2a26e0)" * (cast_expression "(int *)(pcVar11 + 0x2a26e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a26e0)" ( (binary_expression "pcVar11 + 0x2a26e0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);" (call_expression "(*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcVar11 + 0x2a26e4) + -0x45a4" (pointer_expression "*(int *)(pcVar11 + 0x2a26e4)" * (cast_expression "(int *)(pcVar11 + 0x2a26e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2a26e4)" ( (binary_expression "pcVar11 + 0x2a26e4" identifier + number_literal) )))) + number_literal) , (binary_expression "pcVar11 + 0x2aa6b0" identifier + number_literal) ))) ;) (if_statement "if (iVar7 == 0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar2 = (int *)0x0;\n  }" { (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }" else (compound_statement "{\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }" { (if_statement "if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar7 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" * (cast_expression "(int *)(iVar7 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x336c)" ( (binary_expression "iVar7 + 0x336c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }" { (labeled_statement "LAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);" statement_identifier : (expression_statement "(**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);" (call_expression "(**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a33a4))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a33a4)" * (pointer_expression "*(code **)(pcVar10 + 0x2a33a4)" * (cast_expression "(code **)(pcVar10 + 0x2a33a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a33a4)" ( (binary_expression "pcVar10 + 0x2a33a4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8)" ( (binary_expression "*(int *)(pcVar10 + 0x2a267c) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a267c)" * (cast_expression "(int *)(pcVar10 + 0x2a267c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a267c)" ( (binary_expression "pcVar10 + 0x2a267c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45b8" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) ))) ;)) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" * (cast_expression "(int *)(iVar7 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3350)" ( (binary_expression "iVar7 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a2f7c))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a2f7c)" * (pointer_expression "*(code **)(pcVar10 + 0x2a2f7c)" * (cast_expression "(code **)(pcVar10 + 0x2a2f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a2f7c)" ( (binary_expression "pcVar10 + 0x2a2f7c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340)" ( number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45cc" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x62ac" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7)" identifier = (call_expression "(**(code **)(pcVar10 + 0x2a3014))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a3014))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a3014)" * (pointer_expression "*(code **)(pcVar10 + 0x2a3014)" * (cast_expression "(code **)(pcVar10 + 0x2a3014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a3014)" ( (binary_expression "pcVar10 + 0x2a3014" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4)" identifier = (cast_expression "(int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a32a8))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a32a8)" * (pointer_expression "*(code **)(pcVar10 + 0x2a32a8)" * (cast_expression "(code **)(pcVar10 + 0x2a32a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a32a8)" ( (binary_expression "pcVar10 + 0x2a32a8" identifier + number_literal) ))))) )) (argument_list "(iVar3 + 1,4)" ( (binary_expression "iVar3 + 1" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }" { (expression_statement "(**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a2cbc))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a2cbc)" * (pointer_expression "*(code **)(pcVar10 + 0x2a2cbc)" * (cast_expression "(code **)(pcVar10 + 0x2a2cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a2cbc)" ( (binary_expression "pcVar10 + 0x2a2cbc" identifier + number_literal) ))))) )) (argument_list "(iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340)" ( identifier , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45cc" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a267c) + 0x16f8" (pointer_expression "*(int *)(pcVar10 + 0x2a267c)" * (cast_expression "(int *)(pcVar10 + 0x2a267c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a267c)" ( (binary_expression "pcVar10 + 0x2a267c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a267c) + 0x3e28" (pointer_expression "*(int *)(pcVar10 + 0x2a267c)" * (cast_expression "(int *)(pcVar10 + 0x2a267c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a267c)" ( (binary_expression "pcVar10 + 0x2a267c" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar7 + 0x340" identifier + number_literal) ))) ;) }) (else_clause "else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }" else (compound_statement "{\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }" { (expression_statement "iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);" (assignment_expression "iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7)" identifier = (call_expression "(**(code **)(pcVar10 + 0x2a31e8))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a31e8))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a31e8)" * (pointer_expression "*(code **)(pcVar10 + 0x2a31e8)" * (cast_expression "(code **)(pcVar10 + 0x2a31e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a31e8)" ( (binary_expression "pcVar10 + 0x2a31e8" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "piVar5 = piVar2;" (assignment_expression "piVar5 = piVar2" identifier = identifier) ;) (if_statement "if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }" { (if_statement "if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }" if (parenthesized_expression "(iVar7 != *(int *)(iVar7 + 0x3368))" ( (binary_expression "iVar7 != *(int *)(iVar7 + 0x3368)" identifier != (pointer_expression "*(int *)(iVar7 + 0x3368)" * (cast_expression "(int *)(iVar7 + 0x3368)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3368)" ( (binary_expression "iVar7 + 0x3368" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);" do (compound_statement "{\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          }" { (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" * identifier) = identifier) ;) (expression_statement "iVar7 = *(int *)(iVar7 + 0x3368);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x3368)" identifier = (pointer_expression "*(int *)(iVar7 + 0x3368)" * (cast_expression "(int *)(iVar7 + 0x3368)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3368)" ( (binary_expression "iVar7 + 0x3368" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }" { (expression_statement "piVar5 = piVar2 + iVar8;" (assignment_expression "piVar5 = piVar2 + iVar8" identifier = (binary_expression "piVar2 + iVar8" identifier + identifier)) ;) (goto_statement "goto LAB_00106328;" goto statement_identifier ;) })) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)(iVar7 + 0x3368) != iVar7)" ( (binary_expression "*(int *)(iVar7 + 0x3368) != iVar7" (pointer_expression "*(int *)(iVar7 + 0x3368)" * (cast_expression "(int *)(iVar7 + 0x3368)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x3368)" ( (binary_expression "iVar7 + 0x3368" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);" (call_expression "(**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a33a4))" ( (pointer_expression "**(code **)(pcVar10 + 0x2a33a4)" * (pointer_expression "*(code **)(pcVar10 + 0x2a33a4)" * (cast_expression "(code **)(pcVar10 + 0x2a33a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x2a33a4)" ( (binary_expression "pcVar10 + 0x2a33a4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8)" ( (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x48a8" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45b8" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" * (cast_expression "(int *)(pcVar10 + 0x2a2680)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x2a2680)" ( (binary_expression "pcVar10 + 0x2a2680" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_00106404;" goto statement_identifier ;) })) (labeled_statement "LAB_00106328:\n      *piVar5 = 0;" statement_identifier : (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;)) }))) }))) (return_statement "return piVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (return_statement return IDENT ;) })) (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 ( IDENT , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_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) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , IDENT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression 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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (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) , (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 , IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (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) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 = (binary_expression IDENT == IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (return_statement return IDENT ;) })) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) })) })) }))) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 , (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) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (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) , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 , (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) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (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) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 , (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) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (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 , IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (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) , (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) ))) ;)) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (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) , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT + LIT) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (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) , (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) ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) }))) }))) (return_statement return IDENT ;) })))
(function_definition "int * GetFirstImageInList(int *param_1)\n\n{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  \n  if (param_1 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (param_1[0xcdb] == -0x54535255) {\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }\n  puVar4 = PTR_LAB_003a88e0 + 0x1e64;\n  puVar9 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);\n  if (puVar4 == (undefined *)0x0) {\n    return (int *)0xffffffff;\n  }\n  iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n  if (*(int *)(puVar4 + 0x336c) == -0x54535255) {\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }\n  pcVar10 = *(code **)(puVar9 + 0x2a39d8);\n  piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);\n  (*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);\n  if (piVar2 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (piVar2[0xcdb] == -0x54535255) {\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a391c);\n  iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;\n  piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);\n  piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4);\n  if (piVar5 == (int *)0x0) {\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }\n  else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a38ac);\n  iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;\n  (*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a3748);\n  iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a35f4);\n  iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;\n  (*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a34d0);\n  iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    return *(int **)(iVar7 + 0x3364);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a3408);\n  iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;\n  (*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);\n  if (iVar7 == 0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }\n  return piVar2;\n}" (primitive_type "int") (pointer_declarator "* GetFirstImageInList(int *param_1)" (* "*") (function_declarator "GetFirstImageInList(int *param_1)" (identifier "GetFirstImageInList") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")")))) (compound_statement "{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  code *pcVar11;\n  \n  if (param_1 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (param_1[0xcdb] == -0x54535255) {\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }\n  puVar4 = PTR_LAB_003a88e0 + 0x1e64;\n  puVar9 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);\n  if (puVar4 == (undefined *)0x0) {\n    return (int *)0xffffffff;\n  }\n  iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n  if (*(int *)(puVar4 + 0x336c) == -0x54535255) {\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }\n  pcVar10 = *(code **)(puVar9 + 0x2a39d8);\n  piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);\n  (*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);\n  if (piVar2 == (int *)0x0) {\n    return (int *)0x0;\n  }\n  if (piVar2[0xcdb] == -0x54535255) {\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a391c);\n  iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;\n  piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);\n  piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4);\n  if (piVar5 == (int *)0x0) {\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }\n  else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a38ac);\n  iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;\n  (*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a3748);\n  iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a35f4);\n  iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;\n  (*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }\n  pcVar11 = *(code **)(pcVar10 + 0x2a34d0);\n  iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;\n  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);\n  if (iVar7 == 0) {\n    return (int *)0x0;\n  }\n  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    return *(int **)(iVar7 + 0x3364);\n  }\n  pcVar10 = *(code **)(pcVar11 + 0x2a3408);\n  iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;\n  iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;\n  (*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);\n  if (iVar7 == 0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }\n  return piVar2;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (if_statement "if (param_1 == (int *)0x0) {\n    return (int *)0x0;\n  }" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return (int *)0x0;\n  }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (param_1[0xcdb] == -0x54535255) {\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }" (if "if") (parenthesized_expression "(param_1[0xcdb] == -0x54535255)" (( "(") (binary_expression "param_1[0xcdb] == -0x54535255" (subscript_expression "param_1[0xcdb]" (identifier "param_1") ([ "[") (number_literal "0xcdb") (] "]")) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);\n    return piVar2;\n  }" ({ "{") (do_statement "do {\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    } while (param_1 != (int *)0x0);" (do "do") (compound_statement "{\n      piVar2 = param_1;\n      param_1 = (int *)piVar2[0xcd9];\n    }" ({ "{") (expression_statement "piVar2 = param_1;" (assignment_expression "piVar2 = param_1" (identifier "piVar2") (= "=") (identifier "param_1")) (; ";")) (expression_statement "param_1 = (int *)piVar2[0xcd9];" (assignment_expression "param_1 = (int *)piVar2[0xcd9]" (identifier "param_1") (= "=") (cast_expression "(int *)piVar2[0xcd9]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar2[0xcd9]" (identifier "piVar2") ([ "[") (number_literal "0xcd9") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_1 != (int *)0x0)" (( "(") (binary_expression "param_1 != (int *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (expression_statement "puVar4 = PTR_LAB_003a88e0 + 0x1e64;" (assignment_expression "puVar4 = PTR_LAB_003a88e0 + 0x1e64" (identifier "puVar4") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x1e64" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1e64"))) (; ";")) (expression_statement "puVar9 = PTR___assert_fail_003a9608;" (assignment_expression "puVar9 = PTR___assert_fail_003a9608" (identifier "puVar9") (= "=") (identifier "PTR___assert_fail_003a9608")) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec)" (( "(") (identifier "puVar4") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x4920" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x4920")) (, ",") (number_literal "0x245") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x44ec" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x44ec")) () ")"))) (; ";")) (if_statement "if (puVar4 == (undefined *)0x0) {\n    return (int *)0xffffffff;\n  }" (if "if") (parenthesized_expression "(puVar4 == (undefined *)0x0)" (( "(") (binary_expression "puVar4 == (undefined *)0x0" (identifier "puVar4") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return (int *)0xffffffff;\n  }" ({ "{") (return_statement "return (int *)0xffffffff;" (return "return") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff")) (; ";")) (} "}"))) (expression_statement "iVar7 = *(int *)(puVar9 + 0x2a2cb4);" (assignment_expression "iVar7 = *(int *)(puVar9 + 0x2a2cb4)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" (* "*") (cast_expression "(int *)(puVar9 + 0x2a2cb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x2a2cb4)" (( "(") (binary_expression "puVar9 + 0x2a2cb4" (identifier "puVar9") (+ "+") (number_literal "0x2a2cb4")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar4 + 0x336c) == -0x54535255) {\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar4 + 0x336c) == -0x54535255)" (( "(") (binary_expression "*(int *)(puVar4 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(puVar4 + 0x336c)" (* "*") (cast_expression "(int *)(puVar4 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 0x336c)" (( "(") (binary_expression "puVar4 + 0x336c" (identifier "puVar4") (+ "+") (number_literal "0x336c")) () ")")))) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    puVar6 = *(undefined **)(puVar4 + 0x3364);\n    piVar2 = (int *)0x0;\n    if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }\n    if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }\n    iVar7 = iVar7 + -0x4528;\n    (**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);\n  }" ({ "{") (expression_statement "puVar6 = *(undefined **)(puVar4 + 0x3364);" (assignment_expression "puVar6 = *(undefined **)(puVar4 + 0x3364)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined **)(puVar4 + 0x3364)" (* "*") (cast_expression "(undefined **)(puVar4 + 0x3364)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + 0x3364)" (( "(") (binary_expression "puVar4 + 0x3364" (identifier "puVar4") (+ "+") (number_literal "0x3364")) () ")"))))) (; ";")) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" (identifier "piVar2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (puVar6 == (undefined *)0x0) {\n      return (int *)0x0;\n    }" (if "if") (parenthesized_expression "(puVar6 == (undefined *)0x0)" (( "(") (binary_expression "puVar6 == (undefined *)0x0" (identifier "puVar6") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return (int *)0x0;\n    }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (puVar4 != puVar6) {\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }" (if "if") (parenthesized_expression "(puVar4 != puVar6)" (( "(") (binary_expression "puVar4 != puVar6" (identifier "puVar4") (!= "!=") (identifier "puVar6")) () ")")) (compound_statement "{\n      do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);\n      iVar7 = *(int *)(puVar9 + 0x2a2cb4);\n    }" ({ "{") (do_statement "do {\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      } while (bVar1);" (do "do") (compound_statement "{\n        puVar4 = *(undefined **)(puVar6 + 0x3364);\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }\n        bVar1 = puVar4 != puVar6;\n        puVar6 = puVar4;\n      }" ({ "{") (expression_statement "puVar4 = *(undefined **)(puVar6 + 0x3364);" (assignment_expression "puVar4 = *(undefined **)(puVar6 + 0x3364)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined **)(puVar6 + 0x3364)" (* "*") (cast_expression "(undefined **)(puVar6 + 0x3364)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + 0x3364)" (( "(") (binary_expression "puVar6 + 0x3364" (identifier "puVar6") (+ "+") (number_literal "0x3364")) () ")"))))) (; ";")) (expression_statement "piVar2 = (int *)((int)piVar2 + 1);" (assignment_expression "piVar2 = (int *)((int)piVar2 + 1)" (identifier "piVar2") (= "=") (cast_expression "(int *)((int)piVar2 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar2 + 1)" (( "(") (binary_expression "(int)piVar2 + 1" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (puVar4 == (undefined *)0x0) {\n          return piVar2;\n        }" (if "if") (parenthesized_expression "(puVar4 == (undefined *)0x0)" (( "(") (binary_expression "puVar4 == (undefined *)0x0" (identifier "puVar4") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          return piVar2;\n        }" ({ "{") (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (expression_statement "bVar1 = puVar4 != puVar6;" (assignment_expression "bVar1 = puVar4 != puVar6" (identifier "bVar1") (= "=") (binary_expression "puVar4 != puVar6" (identifier "puVar4") (!= "!=") (identifier "puVar6"))) (; ";")) (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" (identifier "puVar6") (= "=") (identifier "puVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (; ";")) (expression_statement "iVar7 = *(int *)(puVar9 + 0x2a2cb4);" (assignment_expression "iVar7 = *(int *)(puVar9 + 0x2a2cb4)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" (* "*") (cast_expression "(int *)(puVar9 + 0x2a2cb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x2a2cb4)" (( "(") (binary_expression "puVar9 + 0x2a2cb4" (identifier "puVar9") (+ "+") (number_literal "0x2a2cb4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar7 = iVar7 + -0x4528;" (assignment_expression "iVar7 = iVar7 + -0x4528" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -0x4528" (identifier "iVar7") (+ "+") (number_literal "-0x4528"))) (; ";")) (expression_statement "(**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80);" (call_expression "(**(code **)(puVar9 + 0x2a39d8))\n              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80)" (parenthesized_expression "(**(code **)(puVar9 + 0x2a39d8))" (( "(") (pointer_expression "**(code **)(puVar9 + 0x2a39d8)" (* "*") (pointer_expression "*(code **)(puVar9 + 0x2a39d8)" (* "*") (cast_expression "(code **)(puVar9 + 0x2a39d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0x2a39d8)" (( "(") (binary_expression "puVar9 + 0x2a39d8" (identifier "puVar9") (+ "+") (number_literal "0x2a39d8")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,\n               iVar7,puVar9 + 0x2aac80)" (( "(") (binary_expression "*(int *)(puVar9 + 0x2a2cb4) + -0x490c" (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" (* "*") (cast_expression "(int *)(puVar9 + 0x2a2cb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x2a2cb4)" (( "(") (binary_expression "puVar9 + 0x2a2cb4" (identifier "puVar9") (+ "+") (number_literal "0x2a2cb4")) () ")")))) (+ "+") (number_literal "-0x490c")) (, ",") (binary_expression "*(int *)(puVar9 + 0x2a2cb4) + -0x4920" (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" (* "*") (cast_expression "(int *)(puVar9 + 0x2a2cb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x2a2cb4)" (( "(") (binary_expression "puVar9 + 0x2a2cb4" (identifier "puVar9") (+ "+") (number_literal "0x2a2cb4")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (number_literal "0x2a8") (, ",") (identifier "iVar7") (, ",") (binary_expression "puVar9 + 0x2aac80" (identifier "puVar9") (+ "+") (number_literal "0x2aac80")) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar10 = *(code **)(puVar9 + 0x2a39d8);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0x2a39d8)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(puVar9 + 0x2a39d8)" (* "*") (cast_expression "(code **)(puVar9 + 0x2a39d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0x2a39d8)" (( "(") (binary_expression "puVar9 + 0x2a39d8" (identifier "puVar9") (+ "+") (number_literal "0x2a39d8")) () ")"))))) (; ";")) (expression_statement "piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);" (assignment_expression "piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64)" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64)" (( "(") (binary_expression "*(int *)(puVar9 + 0x2a2cb0) + 0x1e64" (pointer_expression "*(int *)(puVar9 + 0x2a2cb0)" (* "*") (cast_expression "(int *)(puVar9 + 0x2a2cb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x2a2cb0)" (( "(") (binary_expression "puVar9 + 0x2a2cb0" (identifier "puVar9") (+ "+") (number_literal "0x2a2cb0")) () ")")))) (+ "+") (number_literal "0x1e64")) () ")")))) (; ";")) (expression_statement "(*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);" (call_expression "(*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528)" (( "(") (identifier "piVar2") (, ",") (binary_expression "*(int *)(puVar9 + 0x2a2cb4) + -0x4920" (pointer_expression "*(int *)(puVar9 + 0x2a2cb4)" (* "*") (cast_expression "(int *)(puVar9 + 0x2a2cb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x2a2cb4)" (( "(") (binary_expression "puVar9 + 0x2a2cb4" (identifier "puVar9") (+ "+") (number_literal "0x2a2cb4")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (number_literal "0x2a5") (, ",") (binary_expression "iVar7 + -0x4528" (identifier "iVar7") (+ "+") (number_literal "-0x4528")) () ")"))) (; ";")) (if_statement "if (piVar2 == (int *)0x0) {\n    return (int *)0x0;\n  }" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return (int *)0x0;\n  }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (piVar2[0xcdb] == -0x54535255) {\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }" (if "if") (parenthesized_expression "(piVar2[0xcdb] == -0x54535255)" (( "(") (binary_expression "piVar2[0xcdb] == -0x54535255" (subscript_expression "piVar2[0xcdb]" (identifier "piVar2") ([ "[") (number_literal "0xcdb") (] "]")) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);\n    return piVar5;\n  }" ({ "{") (do_statement "do {\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    } while (piVar2 != (int *)0x0);" (do "do") (compound_statement "{\n      piVar5 = piVar2;\n      piVar2 = (int *)piVar5[0xcda];\n    }" ({ "{") (expression_statement "piVar5 = piVar2;" (assignment_expression "piVar5 = piVar2" (identifier "piVar5") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "piVar2 = (int *)piVar5[0xcda];" (assignment_expression "piVar2 = (int *)piVar5[0xcda]" (identifier "piVar2") (= "=") (cast_expression "(int *)piVar5[0xcda]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar5[0xcda]" (identifier "piVar5") ([ "[") (number_literal "0xcda") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (return_statement "return piVar5;" (return "return") (identifier "piVar5") (; ";")) (} "}"))) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x2a391c);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x2a391c)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(pcVar10 + 0x2a391c)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a391c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a391c)" (( "(") (binary_expression "pcVar10 + 0x2a391c" (identifier "pcVar10") (+ "+") (number_literal "0x2a391c")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;" (assignment_expression "iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920" (identifier "iVar7") (= "=") (binary_expression "*(int *)(pcVar10 + 0x2a2bf8) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2bf8)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2bf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2bf8)" (( "(") (binary_expression "pcVar10 + 0x2a2bf8" (identifier "pcVar10") (+ "+") (number_literal "0x2a2bf8")) () ")")))) (+ "+") (number_literal "-0x4920"))) (; ";")) (expression_statement "piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);" (assignment_expression "piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64)" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a2bf4)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2bf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2bf4)" (( "(") (binary_expression "pcVar10 + 0x2a2bf4" (identifier "pcVar10") (+ "+") (number_literal "0x2a2bf4")) () ")")))) (+ "+") (number_literal "0x1e64")) () ")")))) (; ";")) (expression_statement "piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4);" (assignment_expression "piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" (identifier "piVar2") (= "=") (cast_expression "(int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,\n                             pcVar10 + 0x2aabc4)" (( "(") (identifier "piVar5") (, ",") (identifier "iVar7") (, ",") (number_literal "0x2f5") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2bf8) + -0x4564" (pointer_expression "*(int *)(pcVar10 + 0x2a2bf8)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2bf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2bf8)" (( "(") (binary_expression "pcVar10 + 0x2a2bf8" (identifier "pcVar10") (+ "+") (number_literal "0x2a2bf8")) () ")")))) (+ "+") (number_literal "-0x4564")) (, ",") (binary_expression "pcVar10 + 0x2aabc4" (identifier "pcVar10") (+ "+") (number_literal "0x2aabc4")) () ")"))))) (; ";")) (if_statement "if (piVar5 == (int *)0x0) {\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }\n  else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);\nLAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);\n  }" ({ "{") (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434" (identifier "iVar8") (= "=") (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4434" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")")))) (+ "+") (number_literal "-0x4434"))) (; ";")) (expression_statement "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8);" (call_expression "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a38ac))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x2a38ac)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x2a38ac)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2a38ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2a38ac)" (( "(") (binary_expression "pcVar11 + 0x2a38ac" (identifier "pcVar11") (+ "+") (number_literal "0x2a38ac")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,\n               iVar8)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x48f0" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")")))) (+ "+") (number_literal "-0x48f0")) (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (number_literal "0x56") (, ",") (identifier "iVar8") () ")"))) (; ";")) (labeled_statement "LAB_00105e7c:\n    (**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);" (statement_identifier "LAB_00105e7c") (: ":") (expression_statement "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434);" (call_expression "(**(code **)(pcVar11 + 0x2a38ac))\n              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a38ac))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x2a38ac)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x2a38ac)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2a38ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2a38ac)" (( "(") (binary_expression "pcVar11 + 0x2a38ac" (identifier "pcVar11") (+ "+") (number_literal "0x2a38ac")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,\n               iVar8 + -0x4434)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x48d4" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")")))) (+ "+") (number_literal "-0x48d4")) (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (number_literal "0x59") (, ",") (binary_expression "iVar8 + -0x4434" (identifier "iVar8") (+ "+") (number_literal "-0x4434")) () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }" (else "else") (compound_statement "{\n    if (iVar7 == 0) {\n      return piVar2;\n    }\n    iVar8 = *(int *)(pcVar11 + 0x2a2b88);\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;\n    if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }\n    if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }\n    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }\n  }" ({ "{") (if_statement "if (iVar7 == 0) {\n      return piVar2;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return piVar2;\n    }" ({ "{") (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a2b88);" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a2b88)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x336c) != -0x54535255)" (( "(") (binary_expression "*(int *)(iVar7 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" (* "*") (cast_expression "(int *)(iVar7 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x336c)" (( "(") (binary_expression "iVar7 + 0x336c" (identifier "iVar7") (+ "+") (number_literal "0x336c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (goto_statement "goto LAB_00105e7c;" (goto "goto") (statement_identifier "LAB_00105e7c") (; ";"))) (if_statement "if (*(int *)(iVar7 + 0x3350) == 0) {\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x3350) == 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x3350) == 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" (* "*") (cast_expression "(int *)(iVar7 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3350)" (( "(") (binary_expression "iVar7 + 0x3350" (identifier "iVar7") (+ "+") (number_literal "0x3350")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar8 = *piVar5;\n      piVar2 = (int *)0x0;\n    }" ({ "{") (expression_statement "iVar8 = *piVar5;" (assignment_expression "iVar8 = *piVar5" (identifier "iVar8") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" (identifier "piVar2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }" (else "else") (compound_statement "{\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);\n      iVar8 = *piVar5;\n    }" ({ "{") (expression_statement "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" (identifier "piVar2") (= "=") (cast_expression "(int *)(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar11 + 0x2a3484))\n                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a3484))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x2a3484)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x2a3484)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2a3484)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2a3484)" (( "(") (binary_expression "pcVar11 + 0x2a3484" (identifier "pcVar11") (+ "+") (number_literal "0x2a3484")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,\n                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4448" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")")))) (+ "+") (number_literal "-0x4448")) (, ",") (number_literal "0x5b") (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x62ac" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")")))) (+ "+") (number_literal "-0x62ac")) (, ",") (binary_expression "iVar7 + 0x340" (identifier "iVar7") (+ "+") (number_literal "0x340")) () ")"))))) (; ";")) (expression_statement "iVar8 = *piVar5;" (assignment_expression "iVar8 = *piVar5" (identifier "iVar8") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (} "}")))) (if_statement "if (iVar8 == 0) {\n      *piVar5 = iVar7;\n      return piVar2;\n    }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *piVar5 = iVar7;\n      return piVar2;\n    }" ({ "{") (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "iVar7")) (; ";")) (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar8 + 0x336c) == -0x54535255) {\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x336c) == -0x54535255)" (( "(") (binary_expression "*(int *)(iVar8 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar8 + 0x336c)" (* "*") (cast_expression "(int *)(iVar8 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x336c)" (( "(") (binary_expression "iVar8 + 0x336c" (identifier "iVar8") (+ "+") (number_literal "0x336c")) () ")")))) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();\n      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);\n      *(int **)(iVar8 + 0x3368) = piVar2;\n      piVar2[0xcd9] = iVar8;\n      return piVar2;\n    }" ({ "{") (expression_statement "iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();" (assignment_expression "iVar8 = (**(code **)(pcVar11 + 0x2a31fc))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(pcVar11 + 0x2a31fc))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a31fc))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x2a31fc)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x2a31fc)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2a31fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2a31fc)" (( "(") (binary_expression "pcVar11 + 0x2a31fc" (identifier "pcVar11") (+ "+") (number_literal "0x2a31fc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7)" (identifier "piVar2") (= "=") (cast_expression "(int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar11 + 0x2a36f0))(iVar7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a36f0))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x2a36f0)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x2a36f0)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2a36f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2a36f0)" (( "(") (binary_expression "pcVar11 + 0x2a36f0" (identifier "pcVar11") (+ "+") (number_literal "0x2a36f0")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))))) (; ";")) (expression_statement "*(int **)(iVar8 + 0x3368) = piVar2;" (assignment_expression "*(int **)(iVar8 + 0x3368) = piVar2" (pointer_expression "*(int **)(iVar8 + 0x3368)" (* "*") (cast_expression "(int **)(iVar8 + 0x3368)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x3368)" (( "(") (binary_expression "iVar8 + 0x3368" (identifier "iVar8") (+ "+") (number_literal "0x3368")) () ")")))) (= "=") (identifier "piVar2")) (; ";")) (expression_statement "piVar2[0xcd9] = iVar8;" (assignment_expression "piVar2[0xcd9] = iVar8" (subscript_expression "piVar2[0xcd9]" (identifier "piVar2") ([ "[") (number_literal "0xcd9") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x2a38ac);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x2a38ac)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar11 + 0x2a38ac)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2a38ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2a38ac)" (( "(") (binary_expression "pcVar11 + 0x2a38ac" (identifier "pcVar11") (+ "+") (number_literal "0x2a38ac")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920" (identifier "iVar8") (= "=") (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")")))) (+ "+") (number_literal "-0x4920"))) (; ";")) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48" (identifier "iVar7") (= "=") (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4d48" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")")))) (+ "+") (number_literal "-0x4d48"))) (; ";")) (expression_statement "(*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);" (call_expression "(*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434)" (( "(") (identifier "iVar7") (, ",") (identifier "iVar8") (, ",") (number_literal "0x61") (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a2b88) + -0x4434" (pointer_expression "*(int *)(pcVar11 + 0x2a2b88)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a2b88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2b88)" (( "(") (binary_expression "pcVar11 + 0x2a2b88" (identifier "pcVar11") (+ "+") (number_literal "0x2a2b88")) () ")")))) (+ "+") (number_literal "-0x4434")) () ")"))) (; ";")) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return (int *)0x0;\n  }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" (( "(") (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" (* "*") (cast_expression "(int *)(iVar7 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x336c)" (( "(") (binary_expression "iVar7 + 0x336c" (identifier "iVar7") (+ "+") (number_literal "0x336c")) () ")")))) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    return (int *)0x0;\n  }" ({ "{") (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" (* "*") (cast_expression "(int *)(iVar7 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3350)" (( "(") (binary_expression "iVar7 + 0x3350" (identifier "iVar7") (+ "+") (number_literal "0x3350")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar10 + 0x2a3320))\n                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a3320))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2a3320)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2a3320)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a3320)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a3320)" (( "(") (binary_expression "pcVar10 + 0x2a3320" (identifier "pcVar10") (+ "+") (number_literal "0x2a3320")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac\n                 ,iVar7 + 0x340)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2a24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2a24)" (( "(") (binary_expression "pcVar10 + 0x2a2a24" (identifier "pcVar10") (+ "+") (number_literal "0x2a2a24")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4514" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2a24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2a24)" (( "(") (binary_expression "pcVar10 + 0x2a2a24" (identifier "pcVar10") (+ "+") (number_literal "0x2a2a24")) () ")")))) (+ "+") (number_literal "-0x4514")) (, ",") (number_literal "0x276") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x62ac" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2a24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2a24)" (( "(") (binary_expression "pcVar10 + 0x2a2a24" (identifier "pcVar10") (+ "+") (number_literal "0x2a2a24")) () ")")))) (+ "+") (number_literal "-0x62ac")) (, ",") (binary_expression "iVar7 + 0x340" (identifier "iVar7") (+ "+") (number_literal "0x340")) () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar8 < 0) {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }\n    else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(iVar8 < 0)" (( "(") (binary_expression "iVar8 < 0" (identifier "iVar8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7)" (identifier "piVar2") (= "=") (cast_expression "(int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar10 + 0x2a3098))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a3098))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2a3098)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2a3098)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a3098)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a3098)" (( "(") (binary_expression "pcVar10 + 0x2a3098" (identifier "pcVar10") (+ "+") (number_literal "0x2a3098")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))))) (; ";")) (if_statement "if (piVar2 != (int *)0x0) {\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (iVar8 == -1) {\n          return piVar2;\n        }\n        iVar7 = -2;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }\n      }" ({ "{") (if_statement "if (iVar8 == -1) {\n          return piVar2;\n        }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          return piVar2;\n        }" ({ "{") (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (expression_statement "iVar7 = -2;" (assignment_expression "iVar7 = -2" (identifier "iVar7") (= "=") (number_literal "-2")) (; ";")) (while_statement "while( true ) {\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          piVar2 = (int *)piVar2[0xcd9];\n          if (piVar2 == (int *)0x0) break;\n          bVar1 = iVar7 == iVar8;\n          iVar7 = iVar7 + -1;\n          if (bVar1) {\n            return piVar2;\n          }\n        }" ({ "{") (expression_statement "piVar2 = (int *)piVar2[0xcd9];" (assignment_expression "piVar2 = (int *)piVar2[0xcd9]" (identifier "piVar2") (= "=") (cast_expression "(int *)piVar2[0xcd9]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar2[0xcd9]" (identifier "piVar2") ([ "[") (number_literal "0xcd9") (] "]")))) (; ";")) (if_statement "if (piVar2 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar1 = iVar7 == iVar8;" (assignment_expression "bVar1 = iVar7 == iVar8" (identifier "bVar1") (= "=") (binary_expression "iVar7 == iVar8" (identifier "iVar7") (== "==") (identifier "iVar8"))) (; ";")) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (bVar1) {\n            return piVar2;\n          }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n            return piVar2;\n          }" ({ "{") (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }" (else "else") (compound_statement "{\n      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);\n      if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7)" (identifier "piVar2") (= "=") (cast_expression "(int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar10 + 0x2a358c))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a358c))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2a358c)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2a358c)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a358c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a358c)" (( "(") (binary_expression "pcVar10 + 0x2a358c" (identifier "pcVar10") (+ "+") (number_literal "0x2a358c")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))))) (; ";")) (if_statement "if (piVar2 != (int *)0x0) {\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        iVar7 = 0;\n        while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }\n      }" ({ "{") (if_statement "if (iVar8 == 0) {\n          return piVar2;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return piVar2;\n        }" ({ "{") (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          piVar2 = (int *)piVar2[0xcda];\n          iVar7 = iVar7 + 1;\n          if (piVar2 == (int *)0x0) break;\n          if (iVar8 == iVar7) {\n            return piVar2;\n          }\n        }" ({ "{") (expression_statement "piVar2 = (int *)piVar2[0xcda];" (assignment_expression "piVar2 = (int *)piVar2[0xcda]" (identifier "piVar2") (= "=") (cast_expression "(int *)piVar2[0xcda]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar2[0xcda]" (identifier "piVar2") ([ "[") (number_literal "0xcda") (] "]")))) (; ";")) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (piVar2 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (iVar8 == iVar7) {\n            return piVar2;\n          }" (if "if") (parenthesized_expression "(iVar8 == iVar7)" (( "(") (binary_expression "iVar8 == iVar7" (identifier "iVar8") (== "==") (identifier "iVar7")) () ")")) (compound_statement "{\n            return piVar2;\n          }" ({ "{") (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")))) (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x2a3748);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x2a3748)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(pcVar10 + 0x2a3748)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a3748)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a3748)" (( "(") (binary_expression "pcVar10 + 0x2a3748" (identifier "pcVar10") (+ "+") (number_literal "0x2a3748")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64" (identifier "iVar7") (= "=") (binary_expression "*(int *)(pcVar10 + 0x2a2a20) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a2a20)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2a20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2a20)" (( "(") (binary_expression "pcVar10 + 0x2a2a20" (identifier "pcVar10") (+ "+") (number_literal "0x2a2a20")) () ")")))) (+ "+") (number_literal "0x1e64"))) (; ";")) (expression_statement "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);" (call_expression "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,\n             *(int *)(pcVar10 + 0x2a2a24) + -0x4500)" (( "(") (identifier "iVar7") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2a24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2a24)" (( "(") (binary_expression "pcVar10 + 0x2a2a24" (identifier "pcVar10") (+ "+") (number_literal "0x2a2a24")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (number_literal "0x274") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2a24) + -0x4500" (pointer_expression "*(int *)(pcVar10 + 0x2a2a24)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2a24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2a24)" (( "(") (binary_expression "pcVar10 + 0x2a2a24" (identifier "pcVar10") (+ "+") (number_literal "0x2a2a24")) () ")")))) (+ "+") (number_literal "-0x4500")) () ")"))) (; ";")) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return (int *)0x0;\n  }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" (( "(") (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" (* "*") (cast_expression "(int *)(iVar7 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x336c)" (( "(") (binary_expression "iVar7 + 0x336c" (identifier "iVar7") (+ "+") (number_literal "0x336c")) () ")")))) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);\n    if (iVar7 == 0) {\n      return (int *)0x0;\n    }\n    piVar2 = (int *)0x0;\n    iVar8 = *(int *)(iVar7 + 0x3364);\n    if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    (**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);\n  }" ({ "{") (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" (* "*") (cast_expression "(int *)(iVar7 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3350)" (( "(") (binary_expression "iVar7 + 0x3350" (identifier "iVar7") (+ "+") (number_literal "0x3350")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar11 + 0x2a31cc))\n                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a31cc))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x2a31cc)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x2a31cc)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2a31cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2a31cc)" (( "(") (binary_expression "pcVar11 + 0x2a31cc" (identifier "pcVar11") (+ "+") (number_literal "0x2a31cc")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,\n                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac\n                 ,iVar7 + 0x340)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a28d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a28d0)" (( "(") (binary_expression "pcVar11 + 0x2a28d0" (identifier "pcVar11") (+ "+") (number_literal "0x2a28d0")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4550" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a28d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a28d0)" (( "(") (binary_expression "pcVar11 + 0x2a28d0" (identifier "pcVar11") (+ "+") (number_literal "0x2a28d0")) () ")")))) (+ "+") (number_literal "-0x4550")) (, ",") (number_literal "0x2ce") (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x62ac" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a28d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a28d0)" (( "(") (binary_expression "pcVar11 + 0x2a28d0" (identifier "pcVar11") (+ "+") (number_literal "0x2a28d0")) () ")")))) (+ "+") (number_literal "-0x62ac")) (, ",") (binary_expression "iVar7 + 0x340" (identifier "iVar7") (+ "+") (number_literal "0x340")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);" (assignment_expression "iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar11 + 0x2a2f44))(iVar7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a2f44))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x2a2f44)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x2a2f44)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2a2f44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2a2f44)" (( "(") (binary_expression "pcVar11 + 0x2a2f44" (identifier "pcVar11") (+ "+") (number_literal "0x2a2f44")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n      return (int *)0x0;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return (int *)0x0;\n    }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" (identifier "piVar2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar7 + 0x3364);" (assignment_expression "iVar8 = *(int *)(iVar7 + 0x3364)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar7 + 0x3364)" (* "*") (cast_expression "(int *)(iVar7 + 0x3364)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3364)" (( "(") (binary_expression "iVar7 + 0x3364" (identifier "iVar7") (+ "+") (number_literal "0x3364")) () ")"))))) (; ";")) (if_statement "if (iVar7 == *(int *)(iVar7 + 0x3364)) {\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }\n    else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" (if "if") (parenthesized_expression "(iVar7 == *(int *)(iVar7 + 0x3364))" (( "(") (binary_expression "iVar7 == *(int *)(iVar7 + 0x3364)" (identifier "iVar7") (== "==") (pointer_expression "*(int *)(iVar7 + 0x3364)" (* "*") (cast_expression "(int *)(iVar7 + 0x3364)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3364)" (( "(") (binary_expression "iVar7 + 0x3364" (identifier "iVar7") (+ "+") (number_literal "0x3364")) () ")"))))) () ")")) (compound_statement "{\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" ({ "{") (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a28d0);" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a28d0)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a28d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a28d0)" (( "(") (binary_expression "pcVar11 + 0x2a28d0" (identifier "pcVar11") (+ "+") (number_literal "0x2a28d0")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" (else "else") (compound_statement "{\n      do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);\n      iVar7 = *(int *)(pcVar11 + 0x2a28d0);\n    }" ({ "{") (do_statement "do {\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      } while (bVar1);" (do "do") (compound_statement "{\n        piVar2 = (int *)((int)piVar2 + 1);\n        if (iVar8 == 0) {\n          return piVar2;\n        }\n        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;\n        iVar8 = *(int *)(iVar8 + 0x3364);\n      }" ({ "{") (expression_statement "piVar2 = (int *)((int)piVar2 + 1);" (assignment_expression "piVar2 = (int *)((int)piVar2 + 1)" (identifier "piVar2") (= "=") (cast_expression "(int *)((int)piVar2 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar2 + 1)" (( "(") (binary_expression "(int)piVar2 + 1" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n          return piVar2;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return piVar2;\n        }" ({ "{") (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (expression_statement "bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;" (assignment_expression "bVar1 = *(int *)(iVar8 + 0x3364) != iVar8" (identifier "bVar1") (= "=") (binary_expression "*(int *)(iVar8 + 0x3364) != iVar8" (pointer_expression "*(int *)(iVar8 + 0x3364)" (* "*") (cast_expression "(int *)(iVar8 + 0x3364)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x3364)" (( "(") (binary_expression "iVar8 + 0x3364" (identifier "iVar8") (+ "+") (number_literal "0x3364")) () ")")))) (!= "!=") (identifier "iVar8"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar8 + 0x3364);" (assignment_expression "iVar8 = *(int *)(iVar8 + 0x3364)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar8 + 0x3364)" (* "*") (cast_expression "(int *)(iVar8 + 0x3364)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x3364)" (( "(") (binary_expression "iVar8 + 0x3364" (identifier "iVar8") (+ "+") (number_literal "0x3364")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (; ";")) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a28d0);" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a28d0)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a28d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a28d0)" (( "(") (binary_expression "pcVar11 + 0x2a28d0" (identifier "pcVar11") (+ "+") (number_literal "0x2a28d0")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c);" (call_expression "(**(code **)(pcVar11 + 0x2a35f4))\n              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c)" (parenthesized_expression "(**(code **)(pcVar11 + 0x2a35f4))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x2a35f4)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x2a35f4)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2a35f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2a35f4)" (( "(") (binary_expression "pcVar11 + 0x2a35f4" (identifier "pcVar11") (+ "+") (number_literal "0x2a35f4")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,\n               iVar7 + -0x453c)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x490c" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a28d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a28d0)" (( "(") (binary_expression "pcVar11 + 0x2a28d0" (identifier "pcVar11") (+ "+") (number_literal "0x2a28d0")) () ")")))) (+ "+") (number_literal "-0x490c")) (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a28d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a28d0)" (( "(") (binary_expression "pcVar11 + 0x2a28d0" (identifier "pcVar11") (+ "+") (number_literal "0x2a28d0")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (number_literal "0x2d2") (, ",") (binary_expression "iVar7 + -0x453c" (identifier "iVar7") (+ "+") (number_literal "-0x453c")) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x2a35f4);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x2a35f4)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar11 + 0x2a35f4)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2a35f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2a35f4)" (( "(") (binary_expression "pcVar11 + 0x2a35f4" (identifier "pcVar11") (+ "+") (number_literal "0x2a35f4")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64" (identifier "iVar7") (= "=") (binary_expression "*(int *)(pcVar11 + 0x2a28cc) + 0x1e64" (pointer_expression "*(int *)(pcVar11 + 0x2a28cc)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a28cc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a28cc)" (( "(") (binary_expression "pcVar11 + 0x2a28cc" (identifier "pcVar11") (+ "+") (number_literal "0x2a28cc")) () ")")))) (+ "+") (number_literal "0x1e64"))) (; ";")) (expression_statement "(*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);" (call_expression "(*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,\n             *(int *)(pcVar11 + 0x2a28d0) + -0x453c)" (( "(") (identifier "iVar7") (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a28d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a28d0)" (( "(") (binary_expression "pcVar11 + 0x2a28d0" (identifier "pcVar11") (+ "+") (number_literal "0x2a28d0")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (number_literal "0x2cc") (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a28d0) + -0x453c" (pointer_expression "*(int *)(pcVar11 + 0x2a28d0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a28d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a28d0)" (( "(") (binary_expression "pcVar11 + 0x2a28d0" (identifier "pcVar11") (+ "+") (number_literal "0x2a28d0")) () ")")))) (+ "+") (number_literal "-0x453c")) () ")"))) (; ";")) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return (int *)0x0;\n  }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" (( "(") (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" (* "*") (cast_expression "(int *)(iVar7 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x336c)" (( "(") (binary_expression "iVar7 + 0x336c" (identifier "iVar7") (+ "+") (number_literal "0x336c")) () ")")))) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }\n    return *(int **)(iVar7 + 0x3368);\n  }" ({ "{") (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" (* "*") (cast_expression "(int *)(iVar7 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3350)" (( "(") (binary_expression "iVar7 + 0x3350" (identifier "iVar7") (+ "+") (number_literal "0x3350")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);\n      return *(int **)(iVar7 + 0x3368);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);" (call_expression "(**(code **)(pcVar10 + 0x2a30a8))\n                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a30a8))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2a30a8)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2a30a8)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a30a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a30a8)" (( "(") (binary_expression "pcVar10 + 0x2a30a8" (identifier "pcVar10") (+ "+") (number_literal "0x2a30a8")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac\n                 ,iVar7 + 0x340,pcVar10 + 0x2aa778)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a27ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a27ac)" (( "(") (binary_expression "pcVar10 + 0x2a27ac" (identifier "pcVar10") (+ "+") (number_literal "0x2a27ac")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x458c" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a27ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a27ac)" (( "(") (binary_expression "pcVar10 + 0x2a27ac" (identifier "pcVar10") (+ "+") (number_literal "0x2a27ac")) () ")")))) (+ "+") (number_literal "-0x458c")) (, ",") (number_literal "0x316") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x62ac" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a27ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a27ac)" (( "(") (binary_expression "pcVar10 + 0x2a27ac" (identifier "pcVar10") (+ "+") (number_literal "0x2a27ac")) () ")")))) (+ "+") (number_literal "-0x62ac")) (, ",") (binary_expression "iVar7 + 0x340" (identifier "iVar7") (+ "+") (number_literal "0x340")) (, ",") (binary_expression "pcVar10 + 0x2aa778" (identifier "pcVar10") (+ "+") (number_literal "0x2aa778")) () ")"))) (; ";")) (return_statement "return *(int **)(iVar7 + 0x3368);" (return "return") (pointer_expression "*(int **)(iVar7 + 0x3368)" (* "*") (cast_expression "(int **)(iVar7 + 0x3368)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x3368)" (( "(") (binary_expression "iVar7 + 0x3368" (identifier "iVar7") (+ "+") (number_literal "0x3368")) () ")")))) (; ";")) (} "}"))) (return_statement "return *(int **)(iVar7 + 0x3368);" (return "return") (pointer_expression "*(int **)(iVar7 + 0x3368)" (* "*") (cast_expression "(int **)(iVar7 + 0x3368)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x3368)" (( "(") (binary_expression "iVar7 + 0x3368" (identifier "iVar7") (+ "+") (number_literal "0x3368")) () ")")))) (; ";")) (} "}"))) (expression_statement "pcVar11 = *(code **)(pcVar10 + 0x2a34d0);" (assignment_expression "pcVar11 = *(code **)(pcVar10 + 0x2a34d0)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(pcVar10 + 0x2a34d0)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a34d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a34d0)" (( "(") (binary_expression "pcVar10 + 0x2a34d0" (identifier "pcVar10") (+ "+") (number_literal "0x2a34d0")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64" (identifier "iVar7") (= "=") (binary_expression "*(int *)(pcVar10 + 0x2a27a8) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a27a8)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a27a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a27a8)" (( "(") (binary_expression "pcVar10 + 0x2a27a8" (identifier "pcVar10") (+ "+") (number_literal "0x2a27a8")) () ")")))) (+ "+") (number_literal "0x1e64"))) (; ";")) (expression_statement "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);" (call_expression "(*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,\n             *(int *)(pcVar10 + 0x2a27ac) + -0x4578)" (( "(") (identifier "iVar7") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a27ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a27ac)" (( "(") (binary_expression "pcVar10 + 0x2a27ac" (identifier "pcVar10") (+ "+") (number_literal "0x2a27ac")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (number_literal "0x314") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a27ac) + -0x4578" (pointer_expression "*(int *)(pcVar10 + 0x2a27ac)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a27ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a27ac)" (( "(") (binary_expression "pcVar10 + 0x2a27ac" (identifier "pcVar10") (+ "+") (number_literal "0x2a27ac")) () ")")))) (+ "+") (number_literal "-0x4578")) () ")"))) (; ";")) (if_statement "if (iVar7 == 0) {\n    return (int *)0x0;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return (int *)0x0;\n  }" ({ "{") (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar7 + 0x336c) == -0x54535255) {\n    return *(int **)(iVar7 + 0x3364);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x336c) == -0x54535255)" (( "(") (binary_expression "*(int *)(iVar7 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" (* "*") (cast_expression "(int *)(iVar7 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x336c)" (( "(") (binary_expression "iVar7 + 0x336c" (identifier "iVar7") (+ "+") (number_literal "0x336c")) () ")")))) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    return *(int **)(iVar7 + 0x3364);\n  }" ({ "{") (return_statement "return *(int **)(iVar7 + 0x3364);" (return "return") (pointer_expression "*(int **)(iVar7 + 0x3364)" (* "*") (cast_expression "(int **)(iVar7 + 0x3364)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x3364)" (( "(") (binary_expression "iVar7 + 0x3364" (identifier "iVar7") (+ "+") (number_literal "0x3364")) () ")")))) (; ";")) (} "}"))) (expression_statement "pcVar10 = *(code **)(pcVar11 + 0x2a3408);" (assignment_expression "pcVar10 = *(code **)(pcVar11 + 0x2a3408)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(pcVar11 + 0x2a3408)" (* "*") (cast_expression "(code **)(pcVar11 + 0x2a3408)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x2a3408)" (( "(") (binary_expression "pcVar11 + 0x2a3408" (identifier "pcVar11") (+ "+") (number_literal "0x2a3408")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920" (identifier "iVar8") (= "=") (binary_expression "*(int *)(pcVar11 + 0x2a26e4) + -0x4920" (pointer_expression "*(int *)(pcVar11 + 0x2a26e4)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a26e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a26e4)" (( "(") (binary_expression "pcVar11 + 0x2a26e4" (identifier "pcVar11") (+ "+") (number_literal "0x2a26e4")) () ")")))) (+ "+") (number_literal "-0x4920"))) (; ";")) (expression_statement "iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;" (assignment_expression "iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64" (identifier "iVar7") (= "=") (binary_expression "*(int *)(pcVar11 + 0x2a26e0) + 0x1e64" (pointer_expression "*(int *)(pcVar11 + 0x2a26e0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a26e0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a26e0)" (( "(") (binary_expression "pcVar11 + 0x2a26e0" (identifier "pcVar11") (+ "+") (number_literal "0x2a26e0")) () ")")))) (+ "+") (number_literal "0x1e64"))) (; ";")) (expression_statement "(*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);" (call_expression "(*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0)" (( "(") (identifier "iVar7") (, ",") (identifier "iVar8") (, ",") (number_literal "0x334") (, ",") (binary_expression "*(int *)(pcVar11 + 0x2a26e4) + -0x45a4" (pointer_expression "*(int *)(pcVar11 + 0x2a26e4)" (* "*") (cast_expression "(int *)(pcVar11 + 0x2a26e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2a26e4)" (( "(") (binary_expression "pcVar11 + 0x2a26e4" (identifier "pcVar11") (+ "+") (number_literal "0x2a26e4")) () ")")))) (+ "+") (number_literal "-0x45a4")) (, ",") (binary_expression "pcVar11 + 0x2aa6b0" (identifier "pcVar11") (+ "+") (number_literal "0x2aa6b0")) () ")"))) (; ";")) (if_statement "if (iVar7 == 0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar2 = (int *)0x0;\n  }" ({ "{") (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" (identifier "piVar2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }" (else "else") (compound_statement "{\n    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }\n    if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }\n    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);\n    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);\n    if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(iVar7 + 0x336c) != -0x54535255) {\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x336c) != -0x54535255)" (( "(") (binary_expression "*(int *)(iVar7 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar7 + 0x336c)" (* "*") (cast_expression "(int *)(iVar7 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x336c)" (( "(") (binary_expression "iVar7 + 0x336c" (identifier "iVar7") (+ "+") (number_literal "0x336c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\nLAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n      return (int *)0x0;\n    }" ({ "{") (labeled_statement "LAB_00106404:\n      (**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);" (statement_identifier "LAB_00106404") (: ":") (expression_statement "(**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);" (call_expression "(**(code **)(pcVar10 + 0x2a33a4))\n                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a33a4))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2a33a4)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2a33a4)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a33a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a33a4)" (( "(") (binary_expression "pcVar10 + 0x2a33a4" (identifier "pcVar10") (+ "+") (number_literal "0x2a33a4")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x2a267c) + 0x1e64" (pointer_expression "*(int *)(pcVar10 + 0x2a267c)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a267c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a267c)" (( "(") (binary_expression "pcVar10 + 0x2a267c" (identifier "pcVar10") (+ "+") (number_literal "0x2a267c")) () ")")))) (+ "+") (number_literal "0x1e64")) (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2680)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2680)" (( "(") (binary_expression "pcVar10 + 0x2a2680" (identifier "pcVar10") (+ "+") (number_literal "0x2a2680")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (number_literal "0x364") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45b8" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2680)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2680)" (( "(") (binary_expression "pcVar10 + 0x2a2680" (identifier "pcVar10") (+ "+") (number_literal "0x2a2680")) () ")")))) (+ "+") (number_literal "-0x45b8")) () ")"))) (; ";"))) (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar7 + 0x3350) != 0) {\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x3350) != 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x3350) != 0" (pointer_expression "*(int *)(iVar7 + 0x3350)" (* "*") (cast_expression "(int *)(iVar7 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3350)" (( "(") (binary_expression "iVar7 + 0x3350" (identifier "iVar7") (+ "+") (number_literal "0x3350")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar10 + 0x2a2f7c))\n                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a2f7c))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2a2f7c)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2a2f7c)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a2f7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2f7c)" (( "(") (binary_expression "pcVar10 + 0x2a2f7c" (identifier "pcVar10") (+ "+") (number_literal "0x2a2f7c")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac\n                 ,iVar7 + 0x340)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2680)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2680)" (( "(") (binary_expression "pcVar10 + 0x2a2680" (identifier "pcVar10") (+ "+") (number_literal "0x2a2680")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45cc" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2680)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2680)" (( "(") (binary_expression "pcVar10 + 0x2a2680" (identifier "pcVar10") (+ "+") (number_literal "0x2a2680")) () ")")))) (+ "+") (number_literal "-0x45cc")) (, ",") (number_literal "0x366") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x62ac" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2680)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2680)" (( "(") (binary_expression "pcVar10 + 0x2a2680" (identifier "pcVar10") (+ "+") (number_literal "0x2a2680")) () ")")))) (+ "+") (number_literal "-0x62ac")) (, ",") (binary_expression "iVar7 + 0x340" (identifier "iVar7") (+ "+") (number_literal "0x340")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);" (assignment_expression "iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar10 + 0x2a3014))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a3014))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2a3014)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2a3014)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a3014)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a3014)" (( "(") (binary_expression "pcVar10 + 0x2a3014" (identifier "pcVar10") (+ "+") (number_literal "0x2a3014")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4)" (identifier "piVar2") (= "=") (cast_expression "(int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a32a8))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2a32a8)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2a32a8)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a32a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a32a8)" (( "(") (binary_expression "pcVar10 + 0x2a32a8" (identifier "pcVar10") (+ "+") (number_literal "0x2a32a8")) () ")"))))) () ")")) (argument_list "(iVar3 + 1,4)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) (, ",") (number_literal "4") () ")"))))) (; ";")) (if_statement "if (piVar2 == (int *)0x0) {\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }\n    else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);" (call_expression "(**(code **)(pcVar10 + 0x2a2cbc))\n                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a2cbc))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2a2cbc)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2a2cbc)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a2cbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2cbc)" (( "(") (binary_expression "pcVar10 + 0x2a2cbc" (identifier "pcVar10") (+ "+") (number_literal "0x2a2cbc")) () ")"))))) () ")")) (argument_list "(iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc\n                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,\n                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340)" (( "(") (identifier "iVar8") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2680)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2680)" (( "(") (binary_expression "pcVar10 + 0x2a2680" (identifier "pcVar10") (+ "+") (number_literal "0x2a2680")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45cc" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2680)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2680)" (( "(") (binary_expression "pcVar10 + 0x2a2680" (identifier "pcVar10") (+ "+") (number_literal "0x2a2680")) () ")")))) (+ "+") (number_literal "-0x45cc")) (, ",") (number_literal "0x36b") (, ",") (number_literal "400") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a267c) + 0x16f8" (pointer_expression "*(int *)(pcVar10 + 0x2a267c)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a267c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a267c)" (( "(") (binary_expression "pcVar10 + 0x2a267c" (identifier "pcVar10") (+ "+") (number_literal "0x2a267c")) () ")")))) (+ "+") (number_literal "0x16f8")) (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a267c) + 0x3e28" (pointer_expression "*(int *)(pcVar10 + 0x2a267c)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a267c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a267c)" (( "(") (binary_expression "pcVar10 + 0x2a267c" (identifier "pcVar10") (+ "+") (number_literal "0x2a267c")) () ")")))) (+ "+") (number_literal "0x3e28")) (, ",") (binary_expression "iVar7 + 0x340" (identifier "iVar7") (+ "+") (number_literal "0x340")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }" (else "else") (compound_statement "{\n      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);\n      piVar5 = piVar2;\n      if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }\nLAB_00106328:\n      *piVar5 = 0;\n    }" ({ "{") (expression_statement "iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);" (assignment_expression "iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar10 + 0x2a31e8))(iVar7)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a31e8))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2a31e8)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2a31e8)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a31e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a31e8)" (( "(") (binary_expression "pcVar10 + 0x2a31e8" (identifier "pcVar10") (+ "+") (number_literal "0x2a31e8")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "piVar5 = piVar2;" (assignment_expression "piVar5 = piVar2" (identifier "piVar5") (= "=") (identifier "piVar2")) (; ";")) (if_statement "if (iVar7 != 0) {\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }\n        (**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);\n        goto LAB_00106404;\n      }" ({ "{") (if_statement "if (iVar7 != *(int *)(iVar7 + 0x3368)) {\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }" (if "if") (parenthesized_expression "(iVar7 != *(int *)(iVar7 + 0x3368))" (( "(") (binary_expression "iVar7 != *(int *)(iVar7 + 0x3368)" (identifier "iVar7") (!= "!=") (pointer_expression "*(int *)(iVar7 + 0x3368)" (* "*") (cast_expression "(int *)(iVar7 + 0x3368)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3368)" (( "(") (binary_expression "iVar7 + 0x3368" (identifier "iVar7") (+ "+") (number_literal "0x3368")) () ")"))))) () ")")) (compound_statement "{\n          iVar8 = 0;\n          do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);\n        }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          } while (*(int *)(iVar7 + 0x3368) != iVar7);" (do "do") (compound_statement "{\n            *piVar5 = iVar7;\n            iVar7 = *(int *)(iVar7 + 0x3368);\n            iVar8 = iVar8 + 1;\n            if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }\n            piVar5 = piVar5 + 1;\n          }" ({ "{") (expression_statement "*piVar5 = iVar7;" (assignment_expression "*piVar5 = iVar7" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iVar7 = *(int *)(iVar7 + 0x3368);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x3368)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar7 + 0x3368)" (* "*") (cast_expression "(int *)(iVar7 + 0x3368)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3368)" (( "(") (binary_expression "iVar7 + 0x3368" (identifier "iVar7") (+ "+") (number_literal "0x3368")) () ")"))))) (; ";")) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar7 == 0) {\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              piVar5 = piVar2 + iVar8;\n              goto LAB_00106328;\n            }" ({ "{") (expression_statement "piVar5 = piVar2 + iVar8;" (assignment_expression "piVar5 = piVar2 + iVar8" (identifier "piVar5") (= "=") (binary_expression "piVar2 + iVar8" (identifier "piVar2") (+ "+") (identifier "iVar8"))) (; ";")) (goto_statement "goto LAB_00106328;" (goto "goto") (statement_identifier "LAB_00106328") (; ";")) (} "}"))) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" (identifier "piVar5") (= "=") (binary_expression "piVar5 + 1" (identifier "piVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)(iVar7 + 0x3368) != iVar7)" (( "(") (binary_expression "*(int *)(iVar7 + 0x3368) != iVar7" (pointer_expression "*(int *)(iVar7 + 0x3368)" (* "*") (cast_expression "(int *)(iVar7 + 0x3368)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x3368)" (( "(") (binary_expression "iVar7 + 0x3368" (identifier "iVar7") (+ "+") (number_literal "0x3368")) () ")")))) (!= "!=") (identifier "iVar7")) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);" (call_expression "(**(code **)(pcVar10 + 0x2a33a4))\n                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8)" (parenthesized_expression "(**(code **)(pcVar10 + 0x2a33a4))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x2a33a4)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x2a33a4)" (* "*") (cast_expression "(code **)(pcVar10 + 0x2a33a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x2a33a4)" (( "(") (binary_expression "pcVar10 + 0x2a33a4" (identifier "pcVar10") (+ "+") (number_literal "0x2a33a4")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,\n                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x48a8" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2680)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2680)" (( "(") (binary_expression "pcVar10 + 0x2a2680" (identifier "pcVar10") (+ "+") (number_literal "0x2a2680")) () ")")))) (+ "+") (number_literal "-0x48a8")) (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x4920" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2680)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2680)" (( "(") (binary_expression "pcVar10 + 0x2a2680" (identifier "pcVar10") (+ "+") (number_literal "0x2a2680")) () ")")))) (+ "+") (number_literal "-0x4920")) (, ",") (number_literal "0x372") (, ",") (binary_expression "*(int *)(pcVar10 + 0x2a2680) + -0x45b8" (pointer_expression "*(int *)(pcVar10 + 0x2a2680)" (* "*") (cast_expression "(int *)(pcVar10 + 0x2a2680)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x2a2680)" (( "(") (binary_expression "pcVar10 + 0x2a2680" (identifier "pcVar10") (+ "+") (number_literal "0x2a2680")) () ")")))) (+ "+") (number_literal "-0x45b8")) () ")"))) (; ";")) (goto_statement "goto LAB_00106404;" (goto "goto") (statement_identifier "LAB_00106404") (; ";")) (} "}"))) (labeled_statement "LAB_00106328:\n      *piVar5 = 0;" (statement_identifier "LAB_00106328") (: ":") (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (number_literal "0")) (; ";"))) (} "}")))) (} "}")))) (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (return_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 (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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)) (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) (identifier) (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_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)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (return_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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)) (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) (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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))))))) alternative: (else_clause (compound_statement (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 (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)) (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)) (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_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 (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) (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (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 (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)) (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)) (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (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 (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))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (return_statement (identifier))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (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 (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))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier))))))))))) (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (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 (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)) (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)) (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (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: (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))))))) 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)))))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (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)) (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))))))) (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) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (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 (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)) (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)) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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 (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) (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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)) (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)))))) (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (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 (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)) (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)) (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (identifier) right: (number_literal)) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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)) (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) (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)) (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)) (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))))) (return_statement (identifier)))))

int * MASKED(int *param_1)

{
  bool bVar1;
  int *piVar2;
  int iVar3;
  undefined *puVar4;
  int *piVar5;
  undefined *puVar6;
  int iVar7;
  int iVar8;
  undefined *puVar9;
  code *pcVar10;
  code *pcVar11;
  
  if (param_1 == (int *)0x0) {
    return (int *)0x0;
  }
  if (param_1[0xcdb] == -0x54535255) {
    do {
      piVar2 = param_1;
      param_1 = (int *)piVar2[0xcd9];
    } while (param_1 != (int *)0x0);
    return piVar2;
  }
  puVar4 = PTR_LAB_003a88e0 + 0x1e64;
  puVar9 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)
            (puVar4,PTR_s_t_to_left_003a88e4 + -0x4920,0x245,PTR_s_t_to_left_003a88e4 + -0x44ec);
  if (puVar4 == (undefined *)0x0) {
    return (int *)0xffffffff;
  }
  iVar7 = *(int *)(puVar9 + 0x2a2cb4);
  if (*(int *)(puVar4 + 0x336c) == -0x54535255) {
    puVar6 = *(undefined **)(puVar4 + 0x3364);
    piVar2 = (int *)0x0;
    if (puVar6 == (undefined *)0x0) {
      return (int *)0x0;
    }
    if (puVar4 != puVar6) {
      do {
        puVar4 = *(undefined **)(puVar6 + 0x3364);
        piVar2 = (int *)((int)piVar2 + 1);
        if (puVar4 == (undefined *)0x0) {
          return piVar2;
        }
        bVar1 = puVar4 != puVar6;
        puVar6 = puVar4;
      } while (bVar1);
      iVar7 = *(int *)(puVar9 + 0x2a2cb4);
    }
    iVar7 = iVar7 + -0x4528;
    (**(code **)(puVar9 + 0x2a39d8))
              (*(int *)(puVar9 + 0x2a2cb4) + -0x490c,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a8,
               iVar7,puVar9 + 0x2aac80);
  }
  pcVar10 = *(code **)(puVar9 + 0x2a39d8);
  piVar2 = (int *)(*(int *)(puVar9 + 0x2a2cb0) + 0x1e64);
  (*pcVar10)(piVar2,*(int *)(puVar9 + 0x2a2cb4) + -0x4920,0x2a5,iVar7 + -0x4528);
  if (piVar2 == (int *)0x0) {
    return (int *)0x0;
  }
  if (piVar2[0xcdb] == -0x54535255) {
    do {
      piVar5 = piVar2;
      piVar2 = (int *)piVar5[0xcda];
    } while (piVar2 != (int *)0x0);
    return piVar5;
  }
  pcVar11 = *(code **)(pcVar10 + 0x2a391c);
  iVar7 = *(int *)(pcVar10 + 0x2a2bf8) + -0x4920;
  piVar5 = (int *)(*(int *)(pcVar10 + 0x2a2bf4) + 0x1e64);
  piVar2 = (int *)(*pcVar11)(piVar5,iVar7,0x2f5,*(int *)(pcVar10 + 0x2a2bf8) + -0x4564,
                             pcVar10 + 0x2aabc4);
  if (piVar5 == (int *)0x0) {
    iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4434;
    (**(code **)(pcVar11 + 0x2a38ac))
              (*(int *)(pcVar11 + 0x2a2b88) + -0x48f0,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x56,
               iVar8);
LAB_00105e7c:
    (**(code **)(pcVar11 + 0x2a38ac))
              (*(int *)(pcVar11 + 0x2a2b88) + -0x48d4,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,0x59,
               iVar8 + -0x4434);
  }
  else {
    if (iVar7 == 0) {
      return piVar2;
    }
    iVar8 = *(int *)(pcVar11 + 0x2a2b88);
    if (*(int *)(iVar7 + 0x336c) != -0x54535255) goto LAB_00105e7c;
    if (*(int *)(iVar7 + 0x3350) == 0) {
      iVar8 = *piVar5;
      piVar2 = (int *)0x0;
    }
    else {
      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a3484))
                                (0x8000,*(int *)(pcVar11 + 0x2a2b88) + -0x4920,
                                 *(int *)(pcVar11 + 0x2a2b88) + -0x4448,0x5b,
                                 *(int *)(pcVar11 + 0x2a2b88) + -0x62ac,iVar7 + 0x340);
      iVar8 = *piVar5;
    }
    if (iVar8 == 0) {
      *piVar5 = iVar7;
      return piVar2;
    }
    if (*(int *)(iVar8 + 0x336c) == -0x54535255) {
      iVar8 = (**(code **)(pcVar11 + 0x2a31fc))();
      piVar2 = (int *)(**(code **)(pcVar11 + 0x2a36f0))(iVar7);
      *(int **)(iVar8 + 0x3368) = piVar2;
      piVar2[0xcd9] = iVar8;
      return piVar2;
    }
  }
  pcVar10 = *(code **)(pcVar11 + 0x2a38ac);
  iVar8 = *(int *)(pcVar11 + 0x2a2b88) + -0x4920;
  iVar7 = *(int *)(pcVar11 + 0x2a2b88) + -0x4d48;
  (*pcVar10)(iVar7,iVar8,0x61,*(int *)(pcVar11 + 0x2a2b88) + -0x4434);
  if (iVar7 == 0) {
    return (int *)0x0;
  }
  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {
    if (*(int *)(iVar7 + 0x3350) != 0) {
      (**(code **)(pcVar10 + 0x2a3320))
                (0x8000,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,
                 *(int *)(pcVar10 + 0x2a2a24) + -0x4514,0x276,*(int *)(pcVar10 + 0x2a2a24) + -0x62ac
                 ,iVar7 + 0x340);
    }
    if (iVar8 < 0) {
      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a3098))(iVar7);
      if (piVar2 != (int *)0x0) {
        if (iVar8 == -1) {
          return piVar2;
        }
        iVar7 = -2;
        while( true ) {
          piVar2 = (int *)piVar2[0xcd9];
          if (piVar2 == (int *)0x0) break;
          bVar1 = iVar7 == iVar8;
          iVar7 = iVar7 + -1;
          if (bVar1) {
            return piVar2;
          }
        }
      }
    }
    else {
      piVar2 = (int *)(**(code **)(pcVar10 + 0x2a358c))(iVar7);
      if (piVar2 != (int *)0x0) {
        if (iVar8 == 0) {
          return piVar2;
        }
        iVar7 = 0;
        while( true ) {
          piVar2 = (int *)piVar2[0xcda];
          iVar7 = iVar7 + 1;
          if (piVar2 == (int *)0x0) break;
          if (iVar8 == iVar7) {
            return piVar2;
          }
        }
      }
    }
    return (int *)0x0;
  }
  pcVar11 = *(code **)(pcVar10 + 0x2a3748);
  iVar7 = *(int *)(pcVar10 + 0x2a2a20) + 0x1e64;
  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a2a24) + -0x4920,0x274,
             *(int *)(pcVar10 + 0x2a2a24) + -0x4500);
  if (iVar7 == 0) {
    return (int *)0x0;
  }
  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {
    if (*(int *)(iVar7 + 0x3350) != 0) {
      (**(code **)(pcVar11 + 0x2a31cc))
                (0x8000,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,
                 *(int *)(pcVar11 + 0x2a28d0) + -0x4550,0x2ce,*(int *)(pcVar11 + 0x2a28d0) + -0x62ac
                 ,iVar7 + 0x340);
    }
    iVar7 = (**(code **)(pcVar11 + 0x2a2f44))(iVar7);
    if (iVar7 == 0) {
      return (int *)0x0;
    }
    piVar2 = (int *)0x0;
    iVar8 = *(int *)(iVar7 + 0x3364);
    if (iVar7 == *(int *)(iVar7 + 0x3364)) {
      iVar7 = *(int *)(pcVar11 + 0x2a28d0);
    }
    else {
      do {
        piVar2 = (int *)((int)piVar2 + 1);
        if (iVar8 == 0) {
          return piVar2;
        }
        bVar1 = *(int *)(iVar8 + 0x3364) != iVar8;
        iVar8 = *(int *)(iVar8 + 0x3364);
      } while (bVar1);
      iVar7 = *(int *)(pcVar11 + 0x2a28d0);
    }
    (**(code **)(pcVar11 + 0x2a35f4))
              (*(int *)(pcVar11 + 0x2a28d0) + -0x490c,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2d2,
               iVar7 + -0x453c);
  }
  pcVar10 = *(code **)(pcVar11 + 0x2a35f4);
  iVar7 = *(int *)(pcVar11 + 0x2a28cc) + 0x1e64;
  (*pcVar10)(iVar7,*(int *)(pcVar11 + 0x2a28d0) + -0x4920,0x2cc,
             *(int *)(pcVar11 + 0x2a28d0) + -0x453c);
  if (iVar7 == 0) {
    return (int *)0x0;
  }
  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {
    if (*(int *)(iVar7 + 0x3350) != 0) {
      (**(code **)(pcVar10 + 0x2a30a8))
                (0x8000,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,
                 *(int *)(pcVar10 + 0x2a27ac) + -0x458c,0x316,*(int *)(pcVar10 + 0x2a27ac) + -0x62ac
                 ,iVar7 + 0x340,pcVar10 + 0x2aa778);
      return *(int **)(iVar7 + 0x3368);
    }
    return *(int **)(iVar7 + 0x3368);
  }
  pcVar11 = *(code **)(pcVar10 + 0x2a34d0);
  iVar7 = *(int *)(pcVar10 + 0x2a27a8) + 0x1e64;
  (*pcVar11)(iVar7,*(int *)(pcVar10 + 0x2a27ac) + -0x4920,0x314,
             *(int *)(pcVar10 + 0x2a27ac) + -0x4578);
  if (iVar7 == 0) {
    return (int *)0x0;
  }
  if (*(int *)(iVar7 + 0x336c) == -0x54535255) {
    return *(int **)(iVar7 + 0x3364);
  }
  pcVar10 = *(code **)(pcVar11 + 0x2a3408);
  iVar8 = *(int *)(pcVar11 + 0x2a26e4) + -0x4920;
  iVar7 = *(int *)(pcVar11 + 0x2a26e0) + 0x1e64;
  (*pcVar10)(iVar7,iVar8,0x334,*(int *)(pcVar11 + 0x2a26e4) + -0x45a4,pcVar11 + 0x2aa6b0);
  if (iVar7 == 0) {
    piVar2 = (int *)0x0;
  }
  else {
    if (*(int *)(iVar7 + 0x336c) != -0x54535255) {
LAB_00106404:
      (**(code **)(pcVar10 + 0x2a33a4))
                (*(int *)(pcVar10 + 0x2a267c) + 0x1e64,*(int *)(pcVar10 + 0x2a2680) + -0x4920,0x364,
                 *(int *)(pcVar10 + 0x2a2680) + -0x45b8);
      return (int *)0x0;
    }
    if (*(int *)(iVar7 + 0x3350) != 0) {
      (**(code **)(pcVar10 + 0x2a2f7c))
                (0x8000,*(int *)(pcVar10 + 0x2a2680) + -0x4920,
                 *(int *)(pcVar10 + 0x2a2680) + -0x45cc,0x366,*(int *)(pcVar10 + 0x2a2680) + -0x62ac
                 ,iVar7 + 0x340);
    }
    iVar3 = (**(code **)(pcVar10 + 0x2a3014))(iVar7);
    piVar2 = (int *)(**(code **)(pcVar10 + 0x2a32a8))(iVar3 + 1,4);
    if (piVar2 == (int *)0x0) {
      (**(code **)(pcVar10 + 0x2a2cbc))
                (iVar8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,*(int *)(pcVar10 + 0x2a2680) + -0x45cc
                 ,0x36b,400,*(int *)(pcVar10 + 0x2a267c) + 0x16f8,
                 *(int *)(pcVar10 + 0x2a267c) + 0x3e28,iVar7 + 0x340);
    }
    else {
      iVar7 = (**(code **)(pcVar10 + 0x2a31e8))(iVar7);
      piVar5 = piVar2;
      if (iVar7 != 0) {
        if (iVar7 != *(int *)(iVar7 + 0x3368)) {
          iVar8 = 0;
          do {
            *piVar5 = iVar7;
            iVar7 = *(int *)(iVar7 + 0x3368);
            iVar8 = iVar8 + 1;
            if (iVar7 == 0) {
              piVar5 = piVar2 + iVar8;
              goto LAB_00106328;
            }
            piVar5 = piVar5 + 1;
          } while (*(int *)(iVar7 + 0x3368) != iVar7);
        }
        (**(code **)(pcVar10 + 0x2a33a4))
                  (*(int *)(pcVar10 + 0x2a2680) + -0x48a8,*(int *)(pcVar10 + 0x2a2680) + -0x4920,
                   0x372,*(int *)(pcVar10 + 0x2a2680) + -0x45b8);
        goto LAB_00106404;
      }
LAB_00106328:
      *piVar5 = 0;
    }
  }
  return piVar2;
}

