
/* 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 */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

Quantum * GetVirtualPixelsNexus(Cache cache,NexusInfo *nexus_info)

{
  Quantum *pQVar1;
  int iVar2;
  void *pvVar3;
  uint uVar4;
  char *pcVar5;
  CacheInfo *clone_info;
  undefined4 uVar6;
  PixelChannelMap *pPVar7;
  uint uVar8;
  PixelChannelMap *pPVar9;
  undefined *puVar10;
  Cache pvVar11;
  Image *image;
  Image *pIVar12;
  PixelChannel PVar13;
  uint uVar14;
  ssize_t sVar15;
  PixelTrait PVar16;
  int iVar17;
  int *piVar18;
  CacheInfo *unaff_s1;
  uint uVar19;
  int *unaff_s2;
  int unaff_s3;
  int unaff_s4;
  int unaff_s5;
  undefined *puVar20;
  code *pcVar21;
  ExceptionInfo *exception;
  undefined8 uVar22;
  
  if (cache == (Cache)0x0) {
    (*(code *)PTR___assert_fail_003fa620)
              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);
  }
  else if (*(int *)((int)cache + 0x2404) == -0x54535255) {
                    /* WARNING: Load size is inaccurate */
    pQVar1 = (Quantum *)0x0;
    if (*cache != 0) {
      pQVar1 = nexus_info->pixels;
    }
    return pQVar1;
  }
  puVar10 = PTR_LAB_003f98e0 + 0x5804;
  puVar20 = PTR___assert_fail_003fa620;
  (*(code *)PTR___assert_fail_003fa620)(puVar10,PTR_LAB_003f98e0 + 0x57f0,0xd17);
  iVar2 = (**(code **)(puVar20 + 0x3a34cc))();
  if (puVar10 == (undefined *)0x0) {
    iVar17 = *(int *)(puVar20 + 0x3a288c) + 0x62a8;
    (**(code **)(puVar20 + 0x3a35cc))
              (*(int *)(puVar20 + 0x3a2890) + -0x7b0,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcec,
               iVar17);
LAB_0005711c:
    iVar17 = iVar17 + 0x62a8;
    (**(code **)(puVar20 + 0x3a35cc))
              (*(int *)(puVar20 + 0x3a2890) + -0x784,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xced,
               iVar17);
LAB_00057140:
    (**(code **)(puVar20 + 0x3a35cc))
              (*(int *)(puVar20 + 0x3a288c) + 0x6818,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcee,
               iVar17 + 0x62a8);
LAB_00057164:
    (**(code **)(puVar20 + 0x3a35cc))
              (*(int *)(puVar20 + 0x3a288c) + 0x5804,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf0);
  }
  else {
    iVar17 = *(int *)(puVar20 + 0x3a288c);
    if (*(int *)(puVar10 + 0x336c) != -0x54535255) goto LAB_0005711c;
    pvVar11 = *(Cache *)(puVar10 + 0x2d4);
    if (pvVar11 == (Cache)0x0) goto LAB_00057140;
    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_00057164;
    if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {
      pQVar1 = GetVirtualPixelsNexus
                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));
      return pQVar1;
    }
  }
  image = (Image *)(*(int *)(puVar20 + 0x3a288c) + 0x5834);
  pcVar21 = *(code **)(puVar20 + 0x3a35cc);
  (*pcVar21)(image,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar20 + 0x3a288c) + 0x62a8
            );
  exception = (ExceptionInfo *)(pcVar21 + 0x3aa704);
  iVar2 = (**(code **)(pcVar21 + 0x3a3374))();
  if (image == (Image *)0x0) {
    iVar17 = *(int *)(pcVar21 + 0x3a2734) + 0x6104;
    (**(code **)(pcVar21 + 0x3a3474))
              (*(int *)(pcVar21 + 0x3a2738) + -0x7b0,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc75,
               iVar17);
LAB_00057264:
    iVar17 = iVar17 + 0x6104;
    (**(code **)(pcVar21 + 0x3a3474))
              (*(int *)(pcVar21 + 0x3a2738) + -0x784,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc76,
               iVar17);
LAB_00057288:
    (**(code **)(pcVar21 + 0x3a3474))
              (*(int *)(pcVar21 + 0x3a2734) + 0x6818,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc77,
               iVar17 + 0x6104);
LAB_000572ac:
    pvVar11 = (Cache)(*(int *)(pcVar21 + 0x3a2734) + 0x5804);
    iVar2 = (**(code **)(pcVar21 + 0x3a3474))(pvVar11,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc79);
  }
  else {
    iVar17 = *(int *)(pcVar21 + 0x3a2734);
    if (image->signature != 0xabacadab) goto LAB_00057264;
    pvVar11 = image->cache;
    if (pvVar11 == (Cache)0x0) goto LAB_00057288;
    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_000572ac;
    if (*(code **)((int)pvVar11 + 0x23b8) != (code *)0x0) {
      pQVar1 = (Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image);
      return pQVar1;
    }
  }
  if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {
    pQVar1 = GetVirtualPixelsNexus
                       (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));
    return pQVar1;
  }
  piVar18 = (int *)(*(int *)(pcVar21 + 0x3a2734) + 0x6104);
  iVar17 = 0xc7d;
  iVar2 = *(int *)(pcVar21 + 0x3a2734) + 0x57f0;
  pIVar12 = (Image *)(*(int *)(pcVar21 + 0x3a2734) + 0x5834);
  pcVar21 = *(code **)(pcVar21 + 0x3a3474);
  (*pcVar21)();
  if (pIVar12 == (Image *)0x0) {
    (**(code **)(pcVar21 + 0x3a32f8))
              (*(int *)(pcVar21 + 0x3a25b8) + 0x3da0,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfce,
               *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);
LAB_000574f0:
    pcVar5 = (char *)(**(code **)(pcVar21 + 0x3a32f8))
                               (*(int *)(pcVar21 + 0x3a25bc) + -0x784,
                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,
                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);
LAB_00057518:
    (**(code **)(pcVar21 + 0x3a2ed0))
              (0x8000,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,
               0xfd1,*(int *)(pcVar21 + 0x3a25c0) + -0x2f6c,pcVar5);
    pvVar3 = image->cache;
  }
  else {
    image = pIVar12;
    unaff_s2 = piVar18;
    unaff_s3 = iVar2;
    unaff_s4 = iVar17;
    if (pIVar12->signature != 0xabacadab) goto LAB_000574f0;
    pcVar5 = pIVar12->filename;
    if (pIVar12->debug != MagickFalse) goto LAB_00057518;
    pvVar3 = pIVar12->cache;
  }
  if (pvVar3 == (void *)0x0) {
    iVar2 = *(int *)(pcVar21 + 0x3a25b8) + 0x60c4;
    (**(code **)(pcVar21 + 0x3a32f8))
              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd2,
               iVar2);
LAB_0005757c:
    iVar2 = iVar2 + 0x60c4;
    (**(code **)(pcVar21 + 0x3a32f8))
              (*(int *)(pcVar21 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd3,
               iVar2);
LAB_000575a0:
    iVar2 = iVar2 + 0x60c4;
    (**(code **)(pcVar21 + 0x3a32f8))
              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd4,
               iVar2);
LAB_000575c4:
    iVar2 = (**(code **)(pcVar21 + 0x3a32f8))
                      (*(int *)(pcVar21 + 0x3a25b8) + 0x5804,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,
                       0xfd7,iVar2 + 0x60c4);
  }
  else {
    iVar2 = *(int *)(pcVar21 + 0x3a25b8);
    if (unaff_s3 == 0) goto LAB_0005757c;
    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;
    unaff_s5 = (**(code **)(pcVar21 + 0x3a2650))();
    unaff_s1 = (CacheInfo *)image->cache;
    iVar2 = *(int *)(pcVar21 + 0x3a25b8);
    if (unaff_s1->signature != 0xabacadab) goto LAB_000575c4;
    if (unaff_s4 == 0) {
      iVar2 = (**(code **)(pcVar21 + 0x3a350c))(2);
      if (iVar2 != 0) {
        clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);
        clone_info->type = DiskCache;
        (**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);
        clone_info->file = -1;
        clone_info->storage_class = unaff_s1->storage_class;
        clone_info->colorspace = unaff_s1->colorspace;
        clone_info->alpha_trait = unaff_s1->alpha_trait;
        clone_info->channels = unaff_s1->channels;
        clone_info->columns = unaff_s1->columns;
        clone_info->rows = unaff_s1->rows;
        clone_info->number_channels = unaff_s1->number_channels;
        clone_info->metacontent_extent = unaff_s1->metacontent_extent;
        clone_info->mode = PersistMode;
        uVar6 = *(undefined4 *)&unaff_s1->length;
        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;
        *(undefined4 *)&clone_info->length = uVar6;
        pPVar9 = unaff_s1->channel_map;
        pPVar7 = clone_info->channel_map;
        do {
          PVar16 = pPVar9->traits;
          sVar15 = pPVar9->offset;
          PVar13 = pPVar9[1].channel;
          pPVar7->channel = pPVar9->channel;
          pPVar7->traits = PVar16;
          pPVar7->offset = sVar15;
          pPVar7[1].channel = PVar13;
          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;
          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;
        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);
        iVar2 = *unaff_s2;
        *(int *)((int)&clone_info->offset + 4) = unaff_s2[1];
        *(int *)&clone_info->offset = iVar2;
        pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);
        iVar17 = *(int *)&unaff_s1->length;
        uVar14 = (uint)unaff_s1->length;
        iVar2 = *unaff_s2;
        uVar4 = uVar14 + unaff_s2[1];
        uVar19 = uVar4 + unaff_s5;
        uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();
        uVar8 = uVar19 - (int)uVar22;
        *unaff_s2 = (((uint)(uVar19 < uVar4) +
                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -
                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);
        unaff_s2[1] = uVar8;
        DestroyPixelCache(clone_info);
        return pQVar1;
      }
      (**(code **)(pcVar21 + 0x3a2c10))
                (exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,
                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,
                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,
                 image->filename);
      return (Quantum *)0x0;
    }
    iVar2 = *(int *)(pcVar21 + 0x3a25b8);
    if (image->debug == MagickFalse) goto LAB_000573e8;
  }
  (**(code **)(pcVar21 + 0x3a2ed0))
            (8,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xfe1,
             iVar2 + 0x5ca0);
LAB_000573e8:
  (**(code **)(pcVar21 + 0x3a352c))(unaff_s1->cache_filename,unaff_s3,0x1000);
  unaff_s1->type = MapCache;
  iVar2 = *unaff_s2;
  *(int *)((int)&unaff_s1->offset + 4) = unaff_s2[1];
  *(int *)&unaff_s1->offset = iVar2;
  pQVar1 = (Quantum *)OpenPixelCache(image,ReadMode,exception);
  if (pQVar1 != (Quantum *)0x0) {
    iVar17 = *(int *)&unaff_s1->length;
    uVar14 = (uint)unaff_s1->length;
    iVar2 = *unaff_s2;
    uVar4 = uVar14 + unaff_s2[1];
    uVar19 = uVar4 + unaff_s5;
    uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();
    uVar8 = uVar19 - (int)uVar22;
    *unaff_s2 = (((uint)(uVar19 < uVar4) +
                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -
                (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);
    unaff_s2[1] = uVar8;
    pQVar1 = (Quantum *)0x1;
  }
  return pQVar1;
}



int FUN_00056fc0(int *param_1,int param_2)

{
  int iVar1;
  uint uVar2;
  undefined4 *puVar3;
  undefined4 uVar4;
  undefined4 *puVar5;
  uint uVar6;
  undefined4 *puVar7;
  undefined *puVar8;
  int iVar9;
  int iVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  int iVar14;
  int *piVar15;
  undefined4 *unaff_s1;
  uint uVar16;
  int *unaff_s2;
  int unaff_s3;
  int unaff_s4;
  int unaff_s5;
  undefined *puVar17;
  code *pcVar18;
  code *pcVar19;
  undefined8 uVar20;
  
  if (param_1 == (int *)0x0) {
    (*(code *)PTR___assert_fail_003fa620)
              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);
  }
  else if (param_1[0x901] == -0x54535255) {
    iVar1 = 0;
    if (*param_1 != 0) {
      iVar1 = *(int *)(param_2 + 0x24);
    }
    return iVar1;
  }
  puVar8 = PTR_LAB_003f98e0 + 0x5804;
  puVar17 = PTR___assert_fail_003fa620;
  (*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);
  iVar1 = (**(code **)(puVar17 + 0x3a34cc))();
  if (puVar8 == (undefined *)0x0) {
    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;
    (**(code **)(puVar17 + 0x3a35cc))
              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,
               iVar14);
LAB_0005711c:
    iVar14 = iVar14 + 0x62a8;
    (**(code **)(puVar17 + 0x3a35cc))
              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,
               iVar14);
LAB_00057140:
    (**(code **)(puVar17 + 0x3a35cc))
              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,
               iVar14 + 0x62a8);
LAB_00057164:
    (**(code **)(puVar17 + 0x3a35cc))
              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);
  }
  else {
    iVar14 = *(int *)(puVar17 + 0x3a288c);
    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;
    iVar9 = *(int *)(puVar8 + 0x2d4);
    if (iVar9 == 0) goto LAB_00057140;
    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;
    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {
      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));
      return iVar1;
    }
  }
  iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;
  pcVar18 = *(code **)(puVar17 + 0x3a35cc);
  (*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8
            );
  pcVar19 = pcVar18 + 0x3aa704;
  iVar14 = (**(code **)(pcVar18 + 0x3a3374))();
  if (iVar1 == 0) {
    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;
    (**(code **)(pcVar18 + 0x3a3474))
              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,
               iVar9);
LAB_00057264:
    iVar9 = iVar9 + 0x6104;
    (**(code **)(pcVar18 + 0x3a3474))
              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,
               iVar9);
LAB_00057288:
    (**(code **)(pcVar18 + 0x3a3474))
              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,
               iVar9 + 0x6104);
LAB_000572ac:
    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;
    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);
  }
  else {
    iVar9 = *(int *)(pcVar18 + 0x3a2734);
    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;
    iVar10 = *(int *)(iVar1 + 0x2d4);
    if (iVar10 == 0) goto LAB_00057288;
    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;
    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {
      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);
      return iVar1;
    }
  }
  if (iVar14 < *(int *)(iVar10 + 0x3a0)) {
    iVar1 = FUN_00056fc0();
    return iVar1;
  }
  piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);
  iVar10 = 0xc7d;
  iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;
  iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;
  pcVar18 = *(code **)(pcVar18 + 0x3a3474);
  (*pcVar18)();
  if (iVar14 == 0) {
    (**(code **)(pcVar18 + 0x3a32f8))
              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,
               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);
LAB_000574f0:
    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))
                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,
                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);
LAB_00057518:
    (**(code **)(pcVar18 + 0x3a2ed0))
              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,
               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);
    iVar14 = *(int *)(iVar1 + 0x2d4);
  }
  else {
    iVar1 = iVar14;
    unaff_s2 = piVar15;
    unaff_s3 = iVar9;
    unaff_s4 = iVar10;
    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;
    iVar9 = iVar14 + 0x340;
    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;
    iVar14 = *(int *)(iVar14 + 0x2d4);
  }
  if (iVar14 == 0) {
    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;
    (**(code **)(pcVar18 + 0x3a32f8))
              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,
               iVar14);
LAB_0005757c:
    iVar14 = iVar14 + 0x60c4;
    (**(code **)(pcVar18 + 0x3a32f8))
              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,
               iVar14);
LAB_000575a0:
    iVar14 = iVar14 + 0x60c4;
    (**(code **)(pcVar18 + 0x3a32f8))
              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,
               iVar14);
LAB_000575c4:
    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))
                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,
                        0xfd7,iVar14 + 0x60c4);
  }
  else {
    iVar14 = *(int *)(pcVar18 + 0x3a25b8);
    if (unaff_s3 == 0) goto LAB_0005757c;
    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;
    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();
    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);
    iVar14 = *(int *)(pcVar18 + 0x3a25b8);
    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;
    if (unaff_s4 == 0) {
      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);
      if (iVar14 != 0) {
        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);
        puVar3[200] = 1;
        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);
        puVar3[0xec] = 0xffffffff;
        *puVar3 = *unaff_s1;
        puVar3[1] = unaff_s1[1];
        puVar3[2] = unaff_s1[2];
        puVar3[3] = unaff_s1[3];
        puVar3[4] = unaff_s1[4];
        puVar3[5] = unaff_s1[5];
        puVar3[7] = unaff_s1[7];
        puVar3[6] = unaff_s1[6];
        puVar3[0xc9] = 3;
        uVar4 = unaff_s1[0xce];
        puVar3[0xcf] = unaff_s1[0xcf];
        puVar3[0xce] = uVar4;
        puVar7 = unaff_s1 + 8;
        puVar5 = puVar3 + 8;
        do {
          uVar13 = puVar7[1];
          uVar12 = puVar7[2];
          uVar4 = puVar7[3];
          *puVar5 = *puVar7;
          puVar5[1] = uVar13;
          puVar5[2] = uVar12;
          puVar5[3] = uVar4;
          puVar7 = puVar7 + 4;
          puVar5 = puVar5 + 4;
        } while (puVar7 != unaff_s1 + 200);
        iVar1 = *unaff_s2;
        puVar3[0xcd] = unaff_s2[1];
        puVar3[0xcc] = iVar1;
        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);
        iVar9 = unaff_s1[0xce];
        uVar11 = unaff_s1[0xcf];
        iVar14 = *unaff_s2;
        uVar2 = uVar11 + unaff_s2[1];
        uVar16 = uVar2 + unaff_s5;
        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();
        uVar6 = uVar16 - (int)uVar20;
        *unaff_s2 = (((uint)(uVar16 < uVar2) +
                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -
                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);
        unaff_s2[1] = uVar6;
        FUN_00050cb4(puVar3);
        return iVar1;
      }
      (**(code **)(pcVar18 + 0x3a2c10))
                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0
                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,
                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);
      return 0;
    }
    iVar14 = *(int *)(pcVar18 + 0x3a25b8);
    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;
  }
  (**(code **)(pcVar18 + 0x3a2ed0))
            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,
             iVar14 + 0x5ca0);
LAB_000573e8:
  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);
  unaff_s1[200] = 3;
  iVar14 = *unaff_s2;
  unaff_s1[0xcd] = unaff_s2[1];
  unaff_s1[0xcc] = iVar14;
  iVar1 = FUN_00051e60(iVar1,0,pcVar19);
  if (iVar1 != 0) {
    iVar14 = unaff_s1[0xce];
    uVar11 = unaff_s1[0xcf];
    iVar1 = *unaff_s2;
    uVar2 = uVar11 + unaff_s2[1];
    uVar16 = uVar2 + unaff_s5;
    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();
    uVar6 = uVar16 - (int)uVar20;
    *unaff_s2 = (((uint)(uVar16 < uVar2) +
                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -
                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);
    unaff_s2[1] = uVar6;
    iVar1 = 1;
  }
  return iVar1;
}


lui gp,0x3b
addiu gp,gp,-0x5710
addu gp,gp,t9
addiu sp,sp,-0x20
sw ra,0x1c(sp)
sw gp,0x10(sp)
beq a0,zero,0x00057010
_lw a3,-0x7fd0(gp)
lw v1,0x2404(a0)
lui v0,0xabac
ori v0,v0,0xadab
bne v1,v0,0x00057034
_addiu a3,a3,0x60d8
lw v0,0x0(a0)
beq v0,zero,0x00057004
_or v0,zero,zero
lw v0,0x24(a1)
lw ra,0x1c(sp)
jr ra
_addiu sp,sp,0x20
addiu a3,a3,0x60d8
li a2,0xd15
lw a1,-0x7fd0(gp)
addiu a1,a1,0x57f0
lw a0,-0x7fd0(gp)
addiu a0,a0,0x59e0
lw t9,-0x7290(gp)
jalr t9
_nop
li a2,0xd17
lw a1,-0x7fd0(gp)
addiu a1,a1,0x57f0
lw a0,-0x7fd0(gp)
addiu a0,a0,0x5804
lw t9,-0x7290(gp)
jalr t9
_nop
(translation_unit "int FUN_00056fc0(int *param_1,int param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 *unaff_s1;\n  uint uVar16;\n  int *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int unaff_s5;\n  undefined *puVar17;\n  code *pcVar18;\n  code *pcVar19;\n  undefined8 uVar20;\n  \n  if (param_1 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }\n  puVar8 = PTR_LAB_003f98e0 + 0x5804;\n  puVar17 = PTR___assert_fail_003fa620;\n  (*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);\n  iVar1 = (**(code **)(puVar17 + 0x3a34cc))();\n  if (puVar8 == (undefined *)0x0) {\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }\n  iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;\n  pcVar18 = *(code **)(puVar17 + 0x3a35cc);\n  (*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            );\n  pcVar19 = pcVar18 + 0x3aa704;\n  iVar14 = (**(code **)(pcVar18 + 0x3a3374))();\n  if (iVar1 == 0) {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }\n  if (iVar14 < *(int *)(iVar10 + 0x3a0)) {\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }\n  piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);\n  iVar10 = 0xc7d;\n  iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;\n  iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;\n  pcVar18 = *(code **)(pcVar18 + 0x3a3474);\n  (*pcVar18)();\n  if (iVar14 == 0) {\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }\n  else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }\n  if (iVar14 == 0) {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }\n  else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }\n  (**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0);\nLAB_000573e8:\n  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);\n  unaff_s1[200] = 3;\n  iVar14 = *unaff_s2;\n  unaff_s1[0xcd] = unaff_s2[1];\n  unaff_s1[0xcc] = iVar14;\n  iVar1 = FUN_00051e60(iVar1,0,pcVar19);\n  if (iVar1 != 0) {\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }\n  return iVar1;\n}\n\n" (function_definition "int FUN_00056fc0(int *param_1,int param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 *unaff_s1;\n  uint uVar16;\n  int *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int unaff_s5;\n  undefined *puVar17;\n  code *pcVar18;\n  code *pcVar19;\n  undefined8 uVar20;\n  \n  if (param_1 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }\n  puVar8 = PTR_LAB_003f98e0 + 0x5804;\n  puVar17 = PTR___assert_fail_003fa620;\n  (*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);\n  iVar1 = (**(code **)(puVar17 + 0x3a34cc))();\n  if (puVar8 == (undefined *)0x0) {\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }\n  iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;\n  pcVar18 = *(code **)(puVar17 + 0x3a35cc);\n  (*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            );\n  pcVar19 = pcVar18 + 0x3aa704;\n  iVar14 = (**(code **)(pcVar18 + 0x3a3374))();\n  if (iVar1 == 0) {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }\n  if (iVar14 < *(int *)(iVar10 + 0x3a0)) {\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }\n  piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);\n  iVar10 = 0xc7d;\n  iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;\n  iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;\n  pcVar18 = *(code **)(pcVar18 + 0x3a3474);\n  (*pcVar18)();\n  if (iVar14 == 0) {\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }\n  else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }\n  if (iVar14 == 0) {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }\n  else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }\n  (**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0);\nLAB_000573e8:\n  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);\n  unaff_s1[200] = 3;\n  iVar14 = *unaff_s2;\n  unaff_s1[0xcd] = unaff_s2[1];\n  unaff_s1[0xcc] = iVar14;\n  iVar1 = FUN_00051e60(iVar1,0,pcVar19);\n  if (iVar1 != 0) {\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }\n  return iVar1;\n}" primitive_type (function_declarator "FUN_00056fc0(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 *unaff_s1;\n  uint uVar16;\n  int *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int unaff_s5;\n  undefined *puVar17;\n  code *pcVar18;\n  code *pcVar19;\n  undefined8 uVar20;\n  \n  if (param_1 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }\n  puVar8 = PTR_LAB_003f98e0 + 0x5804;\n  puVar17 = PTR___assert_fail_003fa620;\n  (*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);\n  iVar1 = (**(code **)(puVar17 + 0x3a34cc))();\n  if (puVar8 == (undefined *)0x0) {\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }\n  iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;\n  pcVar18 = *(code **)(puVar17 + 0x3a35cc);\n  (*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            );\n  pcVar19 = pcVar18 + 0x3aa704;\n  iVar14 = (**(code **)(pcVar18 + 0x3a3374))();\n  if (iVar1 == 0) {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }\n  if (iVar14 < *(int *)(iVar10 + 0x3a0)) {\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }\n  piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);\n  iVar10 = 0xc7d;\n  iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;\n  iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;\n  pcVar18 = *(code **)(pcVar18 + 0x3a3474);\n  (*pcVar18)();\n  if (iVar14 == 0) {\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }\n  else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }\n  if (iVar14 == 0) {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }\n  else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }\n  (**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0);\nLAB_000573e8:\n  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);\n  unaff_s1[200] = 3;\n  iVar14 = *unaff_s2;\n  unaff_s1[0xcd] = unaff_s2[1];\n  unaff_s1[0xcc] = iVar14;\n  iVar1 = FUN_00051e60(iVar1,0,pcVar19);\n  if (iVar1 != 0) {\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined4 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "int unaff_s4;" primitive_type identifier ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "undefined8 uVar20;" type_identifier identifier ;) (if_statement "if (param_1 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\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    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x59e0" identifier + number_literal) , (binary_expression "PTR_LAB_003f98e0 + 0x57f0" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_003f98e0 + 0x60d8" identifier + number_literal) ))) ;) }) (else_clause "else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }" else (if_statement "if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }" if (parenthesized_expression "(param_1[0x901] == -0x54535255)" ( (binary_expression "param_1[0x901] == -0x54535255" (subscript_expression "param_1[0x901]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (if_statement "if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }" if (parenthesized_expression "(*param_1 != 0)" ( (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) )) (compound_statement "{\n      iVar1 = *(int *)(param_2 + 0x24);\n    }" { (expression_statement "iVar1 = *(int *)(param_2 + 0x24);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x24)" identifier = (pointer_expression "*(int *)(param_2 + 0x24)" * (cast_expression "(int *)(param_2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) ))))) ;) })) (return_statement "return iVar1;" return identifier ;) })))) (expression_statement "puVar8 = PTR_LAB_003f98e0 + 0x5804;" (assignment_expression "puVar8 = PTR_LAB_003f98e0 + 0x5804" identifier = (binary_expression "PTR_LAB_003f98e0 + 0x5804" identifier + number_literal)) ;) (expression_statement "puVar17 = PTR___assert_fail_003fa620;" (assignment_expression "puVar17 = PTR___assert_fail_003fa620" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);" (call_expression "(*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17)" ( identifier , (binary_expression "PTR_LAB_003f98e0 + 0x57f0" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar1 = (**(code **)(puVar17 + 0x3a34cc))();" (assignment_expression "iVar1 = (**(code **)(puVar17 + 0x3a34cc))()" identifier = (call_expression "(**(code **)(puVar17 + 0x3a34cc))()" (parenthesized_expression "(**(code **)(puVar17 + 0x3a34cc))" ( (pointer_expression "**(code **)(puVar17 + 0x3a34cc)" * (pointer_expression "*(code **)(puVar17 + 0x3a34cc)" * (cast_expression "(code **)(puVar17 + 0x3a34cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a34cc)" ( (binary_expression "puVar17 + 0x3a34cc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (puVar8 == (undefined *)0x0) {\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }" if (parenthesized_expression "(puVar8 == (undefined *)0x0)" ( (binary_expression "puVar8 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }" { (expression_statement "iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;" (assignment_expression "iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8" identifier = (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x62a8" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" * (cast_expression "(code **)(puVar17 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a35cc)" ( (binary_expression "puVar17 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14)" ( (binary_expression "*(int *)(puVar17 + 0x3a2890) + -0x7b0" (pointer_expression "*(int *)(puVar17 + 0x3a2890)" * (cast_expression "(int *)(puVar17 + 0x3a2890)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a2890)" ( (binary_expression "puVar17 + 0x3a2890" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;" statement_identifier : (expression_statement "iVar14 = iVar14 + 0x62a8;" (assignment_expression "iVar14 = iVar14 + 0x62a8" identifier = (binary_expression "iVar14 + 0x62a8" identifier + number_literal)) ;)) (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" * (cast_expression "(code **)(puVar17 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a35cc)" ( (binary_expression "puVar17 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14)" ( (binary_expression "*(int *)(puVar17 + 0x3a2890) + -0x784" (pointer_expression "*(int *)(puVar17 + 0x3a2890)" * (cast_expression "(int *)(puVar17 + 0x3a2890)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a2890)" ( (binary_expression "puVar17 + 0x3a2890" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);" statement_identifier : (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" * (cast_expression "(code **)(puVar17 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a35cc)" ( (binary_expression "puVar17 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8)" ( (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x6818" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar14 + 0x62a8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);" statement_identifier : (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" * (cast_expression "(code **)(puVar17 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a35cc)" ( (binary_expression "puVar17 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0)" ( (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x5804" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal ))) ;)) }) (else_clause "else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }" else (compound_statement "{\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }" { (expression_statement "iVar14 = *(int *)(puVar17 + 0x3a288c);" (assignment_expression "iVar14 = *(int *)(puVar17 + 0x3a288c)" identifier = (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;" if (parenthesized_expression "(*(int *)(puVar8 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(puVar8 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(puVar8 + 0x336c)" * (cast_expression "(int *)(puVar8 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x336c)" ( (binary_expression "puVar8 + 0x336c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0005711c;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(puVar8 + 0x2d4);" (assignment_expression "iVar9 = *(int *)(puVar8 + 0x2d4)" identifier = (pointer_expression "*(int *)(puVar8 + 0x2d4)" * (cast_expression "(int *)(puVar8 + 0x2d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x2d4)" ( (binary_expression "puVar8 + 0x2d4" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) goto LAB_00057140;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00057140;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;" if (parenthesized_expression "(*(int *)(iVar9 + 0x2404) != -0x54535255)" ( (binary_expression "*(int *)(iVar9 + 0x2404) != -0x54535255" (pointer_expression "*(int *)(iVar9 + 0x2404)" * (cast_expression "(int *)(iVar9 + 0x2404)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x2404)" ( (binary_expression "iVar9 + 0x2404" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00057164;" goto statement_identifier ;)) (if_statement "if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }" if (parenthesized_expression "(iVar1 < *(int *)(iVar9 + 0x3a0))" ( (binary_expression "iVar1 < *(int *)(iVar9 + 0x3a0)" identifier < (pointer_expression "*(int *)(iVar9 + 0x3a0)" * (cast_expression "(int *)(iVar9 + 0x3a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x3a0)" ( (binary_expression "iVar9 + 0x3a0" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }" { (expression_statement "iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));" (assignment_expression "iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4))" identifier = (call_expression "FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4))" identifier (argument_list "(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4))" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4)" * (cast_expression "(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x3a4) + iVar1 * 4)" ( (binary_expression "*(int *)(iVar9 + 0x3a4) + iVar1 * 4" (pointer_expression "*(int *)(iVar9 + 0x3a4)" * (cast_expression "(int *)(iVar9 + 0x3a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x3a4)" ( (binary_expression "iVar9 + 0x3a4" identifier + number_literal) )))) + (binary_expression "iVar1 * 4" identifier * number_literal)) )))) )))) ;) (return_statement "return iVar1;" return identifier ;) })) }))) (expression_statement "iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;" (assignment_expression "iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834" identifier = (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x5834" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar18 = *(code **)(puVar17 + 0x3a35cc);" (assignment_expression "pcVar18 = *(code **)(puVar17 + 0x3a35cc)" identifier = (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" * (cast_expression "(code **)(puVar17 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a35cc)" ( (binary_expression "puVar17 + 0x3a35cc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            );" (call_expression "(*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            )" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            )" ( identifier , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x62a8" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar19 = pcVar18 + 0x3aa704;" (assignment_expression "pcVar19 = pcVar18 + 0x3aa704" identifier = (binary_expression "pcVar18 + 0x3aa704" identifier + number_literal)) ;) (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a3374))();" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a3374))()" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a3374))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3374))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a3374)" * (pointer_expression "*(code **)(pcVar18 + 0x3a3374)" * (cast_expression "(code **)(pcVar18 + 0x3a3374)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3374)" ( (binary_expression "pcVar18 + 0x3a3374" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }" { (expression_statement "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;" (assignment_expression "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104" identifier = (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x6104" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);" (call_expression "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" * (cast_expression "(code **)(pcVar18 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3474)" ( (binary_expression "pcVar18 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9)" ( (binary_expression "*(int *)(pcVar18 + 0x3a2738) + -0x7b0" (pointer_expression "*(int *)(pcVar18 + 0x3a2738)" * (cast_expression "(int *)(pcVar18 + 0x3a2738)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2738)" ( (binary_expression "pcVar18 + 0x3a2738" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00057264:\n    iVar9 = iVar9 + 0x6104;" statement_identifier : (expression_statement "iVar9 = iVar9 + 0x6104;" (assignment_expression "iVar9 = iVar9 + 0x6104" identifier = (binary_expression "iVar9 + 0x6104" identifier + number_literal)) ;)) (expression_statement "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);" (call_expression "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" * (cast_expression "(code **)(pcVar18 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3474)" ( (binary_expression "pcVar18 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9)" ( (binary_expression "*(int *)(pcVar18 + 0x3a2738) + -0x784" (pointer_expression "*(int *)(pcVar18 + 0x3a2738)" * (cast_expression "(int *)(pcVar18 + 0x3a2738)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2738)" ( (binary_expression "pcVar18 + 0x3a2738" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);" statement_identifier : (expression_statement "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);" (call_expression "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" * (cast_expression "(code **)(pcVar18 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3474)" ( (binary_expression "pcVar18 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104)" ( (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x6818" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar9 + 0x6104" identifier + number_literal) ))) ;)) (labeled_statement "LAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;" statement_identifier : (expression_statement "iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;" (assignment_expression "iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804" identifier = (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x5804" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79)" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" * (cast_expression "(code **)(pcVar18 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3474)" ( (binary_expression "pcVar18 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79)" ( identifier , (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) }) (else_clause "else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }" else (compound_statement "{\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }" { (expression_statement "iVar9 = *(int *)(pcVar18 + 0x3a2734);" (assignment_expression "iVar9 = *(int *)(pcVar18 + 0x3a2734)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;" if (parenthesized_expression "(*(int *)(iVar1 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar1 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar1 + 0x336c)" * (cast_expression "(int *)(iVar1 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x336c)" ( (binary_expression "iVar1 + 0x336c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00057264;" goto statement_identifier ;)) (expression_statement "iVar10 = *(int *)(iVar1 + 0x2d4);" (assignment_expression "iVar10 = *(int *)(iVar1 + 0x2d4)" identifier = (pointer_expression "*(int *)(iVar1 + 0x2d4)" * (cast_expression "(int *)(iVar1 + 0x2d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2d4)" ( (binary_expression "iVar1 + 0x2d4" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) goto LAB_00057288;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00057288;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;" if (parenthesized_expression "(*(int *)(iVar10 + 0x2404) != -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x2404) != -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x2404)" * (cast_expression "(int *)(iVar10 + 0x2404)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2404)" ( (binary_expression "iVar10 + 0x2404" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000572ac;" goto statement_identifier ;)) (if_statement "if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }" if (parenthesized_expression "(*(code **)(iVar10 + 0x23b8) != (code *)0x0)" ( (binary_expression "*(code **)(iVar10 + 0x23b8) != (code *)0x0" (pointer_expression "*(code **)(iVar10 + 0x23b8)" * (cast_expression "(code **)(iVar10 + 0x23b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x23b8)" ( (binary_expression "iVar10 + 0x23b8" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }" { (expression_statement "iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);" (assignment_expression "iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1)" identifier = (call_expression "(**(code **)(iVar10 + 0x23b8))(iVar1)" (parenthesized_expression "(**(code **)(iVar10 + 0x23b8))" ( (pointer_expression "**(code **)(iVar10 + 0x23b8)" * (pointer_expression "*(code **)(iVar10 + 0x23b8)" * (cast_expression "(code **)(iVar10 + 0x23b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x23b8)" ( (binary_expression "iVar10 + 0x23b8" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier )))) ;) (return_statement "return iVar1;" return identifier ;) })) }))) (if_statement "if (iVar14 < *(int *)(iVar10 + 0x3a0)) {\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }" if (parenthesized_expression "(iVar14 < *(int *)(iVar10 + 0x3a0))" ( (binary_expression "iVar14 < *(int *)(iVar10 + 0x3a0)" identifier < (pointer_expression "*(int *)(iVar10 + 0x3a0)" * (cast_expression "(int *)(iVar10 + 0x3a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3a0)" ( (binary_expression "iVar10 + 0x3a0" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }" { (expression_statement "iVar1 = FUN_00056fc0();" (assignment_expression "iVar1 = FUN_00056fc0()" identifier = (call_expression "FUN_00056fc0()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);" (assignment_expression "piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104)" identifier = (cast_expression "(int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0x3a2734) + 0x6104)" ( (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x6104" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar10 = 0xc7d;" (assignment_expression "iVar10 = 0xc7d" identifier = number_literal) ;) (expression_statement "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;" (assignment_expression "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0" identifier = (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834" identifier = (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x5834" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x3a3474);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x3a3474)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" * (cast_expression "(code **)(pcVar18 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3474)" ( (binary_expression "pcVar18 + 0x3a3474" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar14 == 0) {\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }\n  else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }" { (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x3da0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);" statement_identifier : (expression_statement "iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);" (assignment_expression "iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25bc) + -0x784" (pointer_expression "*(int *)(pcVar18 + 0x3a25bc)" * (cast_expression "(int *)(pcVar18 + 0x3a25bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25bc)" ( (binary_expression "pcVar18 + 0x3a25bc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) )))) ;)) (labeled_statement "LAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);" statement_identifier : (expression_statement "(**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);" (call_expression "(**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2ed0))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a2ed0)" * (pointer_expression "*(code **)(pcVar18 + 0x3a2ed0)" * (cast_expression "(code **)(pcVar18 + 0x3a2ed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a2ed0)" ( (binary_expression "pcVar18 + 0x3a2ed0" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9)" ( number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c" (pointer_expression "*(int *)(pcVar18 + 0x3a25c0)" * (cast_expression "(int *)(pcVar18 + 0x3a25c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25c0)" ( (binary_expression "pcVar18 + 0x3a25c0" identifier + number_literal) )))) + number_literal) , identifier ))) ;)) (expression_statement "iVar14 = *(int *)(iVar1 + 0x2d4);" (assignment_expression "iVar14 = *(int *)(iVar1 + 0x2d4)" identifier = (pointer_expression "*(int *)(iVar1 + 0x2d4)" * (cast_expression "(int *)(iVar1 + 0x2d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2d4)" ( (binary_expression "iVar1 + 0x2d4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }" else (compound_statement "{\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }" { (expression_statement "iVar1 = iVar14;" (assignment_expression "iVar1 = iVar14" identifier = identifier) ;) (expression_statement "unaff_s2 = piVar15;" (assignment_expression "unaff_s2 = piVar15" identifier = identifier) ;) (expression_statement "unaff_s3 = iVar9;" (assignment_expression "unaff_s3 = iVar9" identifier = identifier) ;) (expression_statement "unaff_s4 = iVar10;" (assignment_expression "unaff_s4 = iVar10" identifier = identifier) ;) (if_statement "if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;" if (parenthesized_expression "(*(int *)(iVar14 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar14 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar14 + 0x336c)" * (cast_expression "(int *)(iVar14 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x336c)" ( (binary_expression "iVar14 + 0x336c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000574f0;" goto statement_identifier ;)) (expression_statement "iVar9 = iVar14 + 0x340;" (assignment_expression "iVar9 = iVar14 + 0x340" identifier = (binary_expression "iVar14 + 0x340" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;" if (parenthesized_expression "(*(int *)(iVar14 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x3350) != 0" (pointer_expression "*(int *)(iVar14 + 0x3350)" * (cast_expression "(int *)(iVar14 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x3350)" ( (binary_expression "iVar14 + 0x3350" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00057518;" goto statement_identifier ;)) (expression_statement "iVar14 = *(int *)(iVar14 + 0x2d4);" (assignment_expression "iVar14 = *(int *)(iVar14 + 0x2d4)" identifier = (pointer_expression "*(int *)(iVar14 + 0x2d4)" * (cast_expression "(int *)(iVar14 + 0x2d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x2d4)" ( (binary_expression "iVar14 + 0x2d4" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar14 == 0) {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }\n  else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }" { (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4" identifier = (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;" statement_identifier : (expression_statement "iVar14 = iVar14 + 0x60c4;" (assignment_expression "iVar14 = iVar14 + 0x60c4" identifier = (binary_expression "iVar14 + 0x60c4" identifier + number_literal)) ;)) (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;" statement_identifier : (expression_statement "iVar14 = iVar14 + 0x60c4;" (assignment_expression "iVar14 = iVar14 + 0x60c4" identifier = (binary_expression "iVar14 + 0x60c4" identifier + number_literal)) ;)) (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);" statement_identifier : (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4)" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5804" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar14 + 0x60c4" identifier + number_literal) )))) ;)) }) (else_clause "else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }" else (compound_statement "{\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }" { (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8);" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s3 == 0) goto LAB_0005757c;" if (parenthesized_expression "(unaff_s3 == 0)" ( (binary_expression "unaff_s3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005757c;" goto statement_identifier ;)) (if_statement "if (unaff_s2 == (int *)0x0) goto LAB_000575a0;" if (parenthesized_expression "(unaff_s2 == (int *)0x0)" ( (binary_expression "unaff_s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000575a0;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();" (assignment_expression "unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))()" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a2650))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2650))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a2650)" * (pointer_expression "*(code **)(pcVar18 + 0x3a2650)" * (cast_expression "(code **)(pcVar18 + 0x3a2650)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a2650)" ( (binary_expression "pcVar18 + 0x3a2650" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);" (assignment_expression "unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x2d4)" * (cast_expression "(undefined4 **)(iVar1 + 0x2d4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2d4)" ( (binary_expression "iVar1 + 0x2d4" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8);" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;" if (parenthesized_expression "(unaff_s1[0x901] != -0x54535255)" ( (binary_expression "unaff_s1[0x901] != -0x54535255" (subscript_expression "unaff_s1[0x901]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000575c4;" goto statement_identifier ;)) (if_statement "if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }" if (parenthesized_expression "(unaff_s4 == 0)" ( (binary_expression "unaff_s4 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }" { (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2)" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a350c))(2)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a350c))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a350c)" * (pointer_expression "*(code **)(pcVar18 + 0x3a350c)" * (cast_expression "(code **)(pcVar18 + 0x3a350c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a350c)" ( (binary_expression "pcVar18 + 0x3a350c" identifier + number_literal) ))))) )) (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }" { (expression_statement "puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);" (assignment_expression "puVar3 = (undefined4 *)FUN_000508d4(unaff_s1)" identifier = (cast_expression "(undefined4 *)FUN_000508d4(unaff_s1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000508d4(unaff_s1)" identifier (argument_list "(unaff_s1)" ( identifier ))))) ;) (expression_statement "puVar3[200] = 1;" (assignment_expression "puVar3[200] = 1" (subscript_expression "puVar3[200]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);" (call_expression "(**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a352c))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a352c)" * (pointer_expression "*(code **)(pcVar18 + 0x3a352c)" * (cast_expression "(code **)(pcVar18 + 0x3a352c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a352c)" ( (binary_expression "pcVar18 + 0x3a352c" identifier + number_literal) ))))) )) (argument_list "(puVar3 + 0x4ed,unaff_s3,0x1000)" ( (binary_expression "puVar3 + 0x4ed" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "puVar3[0xec] = 0xffffffff;" (assignment_expression "puVar3[0xec] = 0xffffffff" (subscript_expression "puVar3[0xec]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar3 = *unaff_s1;" (assignment_expression "*puVar3 = *unaff_s1" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*unaff_s1" * identifier)) ;) (expression_statement "puVar3[1] = unaff_s1[1];" (assignment_expression "puVar3[1] = unaff_s1[1]" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[1]" identifier [ number_literal ])) ;) (expression_statement "puVar3[2] = unaff_s1[2];" (assignment_expression "puVar3[2] = unaff_s1[2]" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[2]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = unaff_s1[3];" (assignment_expression "puVar3[3] = unaff_s1[3]" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[3]" identifier [ number_literal ])) ;) (expression_statement "puVar3[4] = unaff_s1[4];" (assignment_expression "puVar3[4] = unaff_s1[4]" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[4]" identifier [ number_literal ])) ;) (expression_statement "puVar3[5] = unaff_s1[5];" (assignment_expression "puVar3[5] = unaff_s1[5]" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[5]" identifier [ number_literal ])) ;) (expression_statement "puVar3[7] = unaff_s1[7];" (assignment_expression "puVar3[7] = unaff_s1[7]" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[7]" identifier [ number_literal ])) ;) (expression_statement "puVar3[6] = unaff_s1[6];" (assignment_expression "puVar3[6] = unaff_s1[6]" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[6]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xc9] = 3;" (assignment_expression "puVar3[0xc9] = 3" (subscript_expression "puVar3[0xc9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar4 = unaff_s1[0xce];" (assignment_expression "uVar4 = unaff_s1[0xce]" identifier = (subscript_expression "unaff_s1[0xce]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xcf] = unaff_s1[0xcf];" (assignment_expression "puVar3[0xcf] = unaff_s1[0xcf]" (subscript_expression "puVar3[0xcf]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[0xcf]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xce] = uVar4;" (assignment_expression "puVar3[0xce] = uVar4" (subscript_expression "puVar3[0xce]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = unaff_s1 + 8;" (assignment_expression "puVar7 = unaff_s1 + 8" identifier = (binary_expression "unaff_s1 + 8" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar3 + 8;" (assignment_expression "puVar5 = puVar3 + 8" identifier = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (do_statement "do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);" do (compound_statement "{\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        }" { (expression_statement "uVar13 = puVar7[1];" (assignment_expression "uVar13 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = puVar7[2];" (assignment_expression "uVar12 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar7[3];" (assignment_expression "uVar4 = puVar7[3]" identifier = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar7;" (assignment_expression "*puVar5 = *puVar7" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar5[1] = uVar13;" (assignment_expression "puVar5[1] = uVar13" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar12;" (assignment_expression "puVar5[2] = uVar12" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar4;" (assignment_expression "puVar5[3] = uVar4" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar7 + 4;" (assignment_expression "puVar7 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar5 + 4;" (assignment_expression "puVar5 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != unaff_s1 + 200)" ( (binary_expression "puVar7 != unaff_s1 + 200" identifier != (binary_expression "unaff_s1 + 200" identifier + number_literal)) )) ;) (expression_statement "iVar1 = *unaff_s2;" (assignment_expression "iVar1 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "puVar3[0xcd] = unaff_s2[1];" (assignment_expression "puVar3[0xcd] = unaff_s2[1]" (subscript_expression "puVar3[0xcd]" identifier [ number_literal ]) = (subscript_expression "unaff_s2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xcc] = iVar1;" (assignment_expression "puVar3[0xcc] = iVar1" (subscript_expression "puVar3[0xcc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);" (assignment_expression "iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19)" identifier = (call_expression "FUN_0005135c(puVar3,unaff_s1,pcVar19)" identifier (argument_list "(puVar3,unaff_s1,pcVar19)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar9 = unaff_s1[0xce];" (assignment_expression "iVar9 = unaff_s1[0xce]" identifier = (subscript_expression "unaff_s1[0xce]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = unaff_s1[0xcf];" (assignment_expression "uVar11 = unaff_s1[0xcf]" identifier = (subscript_expression "unaff_s1[0xcf]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = *unaff_s2;" (assignment_expression "iVar14 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "uVar2 = uVar11 + unaff_s2[1];" (assignment_expression "uVar2 = uVar11 + unaff_s2[1]" identifier = (binary_expression "uVar11 + unaff_s2[1]" identifier + (subscript_expression "unaff_s2[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar2 + unaff_s5;" (assignment_expression "uVar16 = uVar2 + unaff_s5" identifier = (binary_expression "uVar2 + unaff_s5" identifier + identifier)) ;) (expression_statement "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();" (assignment_expression "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))()" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a25f4))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a25f4))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a25f4)" * (pointer_expression "*(code **)(pcVar18 + 0x3a25f4)" * (cast_expression "(code **)(pcVar18 + 0x3a25f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a25f4)" ( (binary_expression "pcVar18 + 0x3a25f4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = uVar16 - (int)uVar20;" (assignment_expression "uVar6 = uVar16 - (int)uVar20" identifier = (binary_expression "uVar16 - (int)uVar20" identifier - (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);" (assignment_expression "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (pointer_expression "*unaff_s2" * identifier) = (binary_expression "(((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (parenthesized_expression "(((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20))" ( (binary_expression "((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)" (parenthesized_expression "((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f))" ( (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)" (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14" (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9" (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11)" (call_expression "(uint)(uVar16 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < uVar2)" ( (binary_expression "uVar16 < uVar2" identifier < identifier) ))) + (call_expression "(uint)(uVar2 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar11)" ( (binary_expression "uVar2 < uVar11" identifier < identifier) )))) + identifier) + identifier) + (parenthesized_expression "(unaff_s5 >> 0x1f)" ( (binary_expression "unaff_s5 >> 0x1f" identifier >> number_literal) ))) )) - (cast_expression "(int)((ulonglong)uVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar20 >> 0x20)" ( (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) - (call_expression "(uint)(uVar16 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < uVar6)" ( (binary_expression "uVar16 < uVar6" identifier < identifier) ))))) ;) (expression_statement "unaff_s2[1] = uVar6;" (assignment_expression "unaff_s2[1] = uVar6" (subscript_expression "unaff_s2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00050cb4(puVar3);" (call_expression "FUN_00050cb4(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "(**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);" (call_expression "(**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2c10))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a2c10)" * (pointer_expression "*(code **)(pcVar18 + 0x3a2c10)" * (cast_expression "(code **)(pcVar18 + 0x3a2c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a2c10)" ( (binary_expression "pcVar18 + 0x3a2c10" identifier + number_literal) ))))) )) (argument_list "(pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340)" ( identifier , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5b98" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x6e78" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar1 + 0x340" identifier + number_literal) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8);" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;" if (parenthesized_expression "(*(int *)(iVar1 + 0x3350) == 0)" ( (binary_expression "*(int *)(iVar1 + 0x3350) == 0" (pointer_expression "*(int *)(iVar1 + 0x3350)" * (cast_expression "(int *)(iVar1 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x3350)" ( (binary_expression "iVar1 + 0x3350" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000573e8;" goto statement_identifier ;)) }))) (expression_statement "(**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0);" (call_expression "(**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2ed0))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a2ed0)" * (pointer_expression "*(code **)(pcVar18 + 0x3a2ed0)" * (cast_expression "(code **)(pcVar18 + 0x3a2ed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a2ed0)" ( (binary_expression "pcVar18 + 0x3a2ed0" identifier + number_literal) ))))) )) (argument_list "(8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0)" ( number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar14 + 0x5ca0" identifier + number_literal) ))) ;) (labeled_statement "LAB_000573e8:\n  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);" statement_identifier : (expression_statement "(**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);" (call_expression "(**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a352c))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a352c)" * (pointer_expression "*(code **)(pcVar18 + 0x3a352c)" * (cast_expression "(code **)(pcVar18 + 0x3a352c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a352c)" ( (binary_expression "pcVar18 + 0x3a352c" identifier + number_literal) ))))) )) (argument_list "(unaff_s1 + 0x4ed,unaff_s3,0x1000)" ( (binary_expression "unaff_s1 + 0x4ed" identifier + number_literal) , identifier , number_literal ))) ;)) (expression_statement "unaff_s1[200] = 3;" (assignment_expression "unaff_s1[200] = 3" (subscript_expression "unaff_s1[200]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar14 = *unaff_s2;" (assignment_expression "iVar14 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "unaff_s1[0xcd] = unaff_s2[1];" (assignment_expression "unaff_s1[0xcd] = unaff_s2[1]" (subscript_expression "unaff_s1[0xcd]" identifier [ number_literal ]) = (subscript_expression "unaff_s2[1]" identifier [ number_literal ])) ;) (expression_statement "unaff_s1[0xcc] = iVar14;" (assignment_expression "unaff_s1[0xcc] = iVar14" (subscript_expression "unaff_s1[0xcc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar1 = FUN_00051e60(iVar1,0,pcVar19);" (assignment_expression "iVar1 = FUN_00051e60(iVar1,0,pcVar19)" identifier = (call_expression "FUN_00051e60(iVar1,0,pcVar19)" identifier (argument_list "(iVar1,0,pcVar19)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }" { (expression_statement "iVar14 = unaff_s1[0xce];" (assignment_expression "iVar14 = unaff_s1[0xce]" identifier = (subscript_expression "unaff_s1[0xce]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = unaff_s1[0xcf];" (assignment_expression "uVar11 = unaff_s1[0xcf]" identifier = (subscript_expression "unaff_s1[0xcf]" identifier [ number_literal ])) ;) (expression_statement "iVar1 = *unaff_s2;" (assignment_expression "iVar1 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "uVar2 = uVar11 + unaff_s2[1];" (assignment_expression "uVar2 = uVar11 + unaff_s2[1]" identifier = (binary_expression "uVar11 + unaff_s2[1]" identifier + (subscript_expression "unaff_s2[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar2 + unaff_s5;" (assignment_expression "uVar16 = uVar2 + unaff_s5" identifier = (binary_expression "uVar2 + unaff_s5" identifier + identifier)) ;) (expression_statement "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();" (assignment_expression "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))()" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a25f4))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a25f4))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a25f4)" * (pointer_expression "*(code **)(pcVar18 + 0x3a25f4)" * (cast_expression "(code **)(pcVar18 + 0x3a25f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a25f4)" ( (binary_expression "pcVar18 + 0x3a25f4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = uVar16 - (int)uVar20;" (assignment_expression "uVar6 = uVar16 - (int)uVar20" identifier = (binary_expression "uVar16 - (int)uVar20" identifier - (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);" (assignment_expression "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (pointer_expression "*unaff_s2" * identifier) = (binary_expression "(((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (parenthesized_expression "(((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20))" ( (binary_expression "((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)" (parenthesized_expression "((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f))" ( (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)" (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1" (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14" (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11)" (call_expression "(uint)(uVar16 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < uVar2)" ( (binary_expression "uVar16 < uVar2" identifier < identifier) ))) + (call_expression "(uint)(uVar2 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar11)" ( (binary_expression "uVar2 < uVar11" identifier < identifier) )))) + identifier) + identifier) + (parenthesized_expression "(unaff_s5 >> 0x1f)" ( (binary_expression "unaff_s5 >> 0x1f" identifier >> number_literal) ))) )) - (cast_expression "(int)((ulonglong)uVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar20 >> 0x20)" ( (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) - (call_expression "(uint)(uVar16 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < uVar6)" ( (binary_expression "uVar16 < uVar6" identifier < identifier) ))))) ;) (expression_statement "unaff_s2[1] = uVar6;" (assignment_expression "unaff_s2[1] = uVar6" (subscript_expression "unaff_s2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) })) (return_statement "return iVar1;" 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/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nQuantum * GetVirtualPixelsNexus(Cache cache,NexusInfo *nexus_info)\n\n{\n  Quantum *pQVar1;\n  int iVar2;\n  void *pvVar3;\n  uint uVar4;\n  char *pcVar5;\n  CacheInfo *clone_info;\n  undefined4 uVar6;\n  PixelChannelMap *pPVar7;\n  uint uVar8;\n  PixelChannelMap *pPVar9;\n  undefined *puVar10;\n  Cache pvVar11;\n  Image *image;\n  Image *pIVar12;\n  PixelChannel PVar13;\n  uint uVar14;\n  ssize_t sVar15;\n  PixelTrait PVar16;\n  int iVar17;\n  int *piVar18;\n  CacheInfo *unaff_s1;\n  uint uVar19;\n  int *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int unaff_s5;\n  undefined *puVar20;\n  code *pcVar21;\n  ExceptionInfo *exception;\n  undefined8 uVar22;\n  \n  if (cache == (Cache)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (*(int *)((int)cache + 0x2404) == -0x54535255) {\n                    /* WARNING: Load size is inaccurate */\n    pQVar1 = (Quantum *)0x0;\n    if (*cache != 0) {\n      pQVar1 = nexus_info->pixels;\n    }\n    return pQVar1;\n  }\n  puVar10 = PTR_LAB_003f98e0 + 0x5804;\n  puVar20 = PTR___assert_fail_003fa620;\n  (*(code *)PTR___assert_fail_003fa620)(puVar10,PTR_LAB_003f98e0 + 0x57f0,0xd17);\n  iVar2 = (**(code **)(puVar20 + 0x3a34cc))();\n  if (puVar10 == (undefined *)0x0) {\n    iVar17 = *(int *)(puVar20 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x7b0,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcec,\n               iVar17);\nLAB_0005711c:\n    iVar17 = iVar17 + 0x62a8;\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x784,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xced,\n               iVar17);\nLAB_00057140:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x6818,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcee,\n               iVar17 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x5804,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar17 = *(int *)(puVar20 + 0x3a288c);\n    if (*(int *)(puVar10 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    pvVar11 = *(Cache *)(puVar10 + 0x2d4);\n    if (pvVar11 == (Cache)0x0) goto LAB_00057140;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {\n      pQVar1 = GetVirtualPixelsNexus\n                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n      return pQVar1;\n    }\n  }\n  image = (Image *)(*(int *)(puVar20 + 0x3a288c) + 0x5834);\n  pcVar21 = *(code **)(puVar20 + 0x3a35cc);\n  (*pcVar21)(image,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar20 + 0x3a288c) + 0x62a8\n            );\n  exception = (ExceptionInfo *)(pcVar21 + 0x3aa704);\n  iVar2 = (**(code **)(pcVar21 + 0x3a3374))();\n  if (image == (Image *)0x0) {\n    iVar17 = *(int *)(pcVar21 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x7b0,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc75,\n               iVar17);\nLAB_00057264:\n    iVar17 = iVar17 + 0x6104;\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x784,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc76,\n               iVar17);\nLAB_00057288:\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2734) + 0x6818,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc77,\n               iVar17 + 0x6104);\nLAB_000572ac:\n    pvVar11 = (Cache)(*(int *)(pcVar21 + 0x3a2734) + 0x5804);\n    iVar2 = (**(code **)(pcVar21 + 0x3a3474))(pvVar11,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar17 = *(int *)(pcVar21 + 0x3a2734);\n    if (image->signature != 0xabacadab) goto LAB_00057264;\n    pvVar11 = image->cache;\n    if (pvVar11 == (Cache)0x0) goto LAB_00057288;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)((int)pvVar11 + 0x23b8) != (code *)0x0) {\n      pQVar1 = (Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image);\n      return pQVar1;\n    }\n  }\n  if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {\n    pQVar1 = GetVirtualPixelsNexus\n                       (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n    return pQVar1;\n  }\n  piVar18 = (int *)(*(int *)(pcVar21 + 0x3a2734) + 0x6104);\n  iVar17 = 0xc7d;\n  iVar2 = *(int *)(pcVar21 + 0x3a2734) + 0x57f0;\n  pIVar12 = (Image *)(*(int *)(pcVar21 + 0x3a2734) + 0x5834);\n  pcVar21 = *(code **)(pcVar21 + 0x3a3474);\n  (*pcVar21)();\n  if (pIVar12 == (Image *)0x0) {\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x3da0,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    pcVar5 = (char *)(**(code **)(pcVar21 + 0x3a32f8))\n                               (*(int *)(pcVar21 + 0x3a25bc) + -0x784,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar21 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar21 + 0x3a25c0) + -0x2f6c,pcVar5);\n    pvVar3 = image->cache;\n  }\n  else {\n    image = pIVar12;\n    unaff_s2 = piVar18;\n    unaff_s3 = iVar2;\n    unaff_s4 = iVar17;\n    if (pIVar12->signature != 0xabacadab) goto LAB_000574f0;\n    pcVar5 = pIVar12->filename;\n    if (pIVar12->debug != MagickFalse) goto LAB_00057518;\n    pvVar3 = pIVar12->cache;\n  }\n  if (pvVar3 == (void *)0x0) {\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar2);\nLAB_0005757c:\n    iVar2 = iVar2 + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar2);\nLAB_000575a0:\n    iVar2 = iVar2 + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar2);\nLAB_000575c4:\n    iVar2 = (**(code **)(pcVar21 + 0x3a32f8))\n                      (*(int *)(pcVar21 + 0x3a25b8) + 0x5804,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                       0xfd7,iVar2 + 0x60c4);\n  }\n  else {\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar21 + 0x3a2650))();\n    unaff_s1 = (CacheInfo *)image->cache;\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s1->signature != 0xabacadab) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar2 = (**(code **)(pcVar21 + 0x3a350c))(2);\n      if (iVar2 != 0) {\n        clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);\n        clone_info->type = DiskCache;\n        (**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);\n        clone_info->file = -1;\n        clone_info->storage_class = unaff_s1->storage_class;\n        clone_info->colorspace = unaff_s1->colorspace;\n        clone_info->alpha_trait = unaff_s1->alpha_trait;\n        clone_info->channels = unaff_s1->channels;\n        clone_info->columns = unaff_s1->columns;\n        clone_info->rows = unaff_s1->rows;\n        clone_info->number_channels = unaff_s1->number_channels;\n        clone_info->metacontent_extent = unaff_s1->metacontent_extent;\n        clone_info->mode = PersistMode;\n        uVar6 = *(undefined4 *)&unaff_s1->length;\n        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;\n        *(undefined4 *)&clone_info->length = uVar6;\n        pPVar9 = unaff_s1->channel_map;\n        pPVar7 = clone_info->channel_map;\n        do {\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);\n        iVar2 = *unaff_s2;\n        *(int *)((int)&clone_info->offset + 4) = unaff_s2[1];\n        *(int *)&clone_info->offset = iVar2;\n        pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);\n        iVar17 = *(int *)&unaff_s1->length;\n        uVar14 = (uint)unaff_s1->length;\n        iVar2 = *unaff_s2;\n        uVar4 = uVar14 + unaff_s2[1];\n        uVar19 = uVar4 + unaff_s5;\n        uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n        uVar8 = uVar19 - (int)uVar22;\n        *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n        unaff_s2[1] = uVar8;\n        DestroyPixelCache(clone_info);\n        return pQVar1;\n      }\n      (**(code **)(pcVar21 + 0x3a2c10))\n                (exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,\n                 image->filename);\n      return (Quantum *)0x0;\n    }\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (image->debug == MagickFalse) goto LAB_000573e8;\n  }\n  (**(code **)(pcVar21 + 0x3a2ed0))\n            (8,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar2 + 0x5ca0);\nLAB_000573e8:\n  (**(code **)(pcVar21 + 0x3a352c))(unaff_s1->cache_filename,unaff_s3,0x1000);\n  unaff_s1->type = MapCache;\n  iVar2 = *unaff_s2;\n  *(int *)((int)&unaff_s1->offset + 4) = unaff_s2[1];\n  *(int *)&unaff_s1->offset = iVar2;\n  pQVar1 = (Quantum *)OpenPixelCache(image,ReadMode,exception);\n  if (pQVar1 != (Quantum *)0x0) {\n    iVar17 = *(int *)&unaff_s1->length;\n    uVar14 = (uint)unaff_s1->length;\n    iVar2 = *unaff_s2;\n    uVar4 = uVar14 + unaff_s2[1];\n    uVar19 = uVar4 + unaff_s5;\n    uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n    uVar8 = uVar19 - (int)uVar22;\n    *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n    unaff_s2[1] = uVar8;\n    pQVar1 = (Quantum *)0x1;\n  }\n  return pQVar1;\n}\n\n" comment comment comment comment comment (function_definition "Quantum * GetVirtualPixelsNexus(Cache cache,NexusInfo *nexus_info)\n\n{\n  Quantum *pQVar1;\n  int iVar2;\n  void *pvVar3;\n  uint uVar4;\n  char *pcVar5;\n  CacheInfo *clone_info;\n  undefined4 uVar6;\n  PixelChannelMap *pPVar7;\n  uint uVar8;\n  PixelChannelMap *pPVar9;\n  undefined *puVar10;\n  Cache pvVar11;\n  Image *image;\n  Image *pIVar12;\n  PixelChannel PVar13;\n  uint uVar14;\n  ssize_t sVar15;\n  PixelTrait PVar16;\n  int iVar17;\n  int *piVar18;\n  CacheInfo *unaff_s1;\n  uint uVar19;\n  int *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int unaff_s5;\n  undefined *puVar20;\n  code *pcVar21;\n  ExceptionInfo *exception;\n  undefined8 uVar22;\n  \n  if (cache == (Cache)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (*(int *)((int)cache + 0x2404) == -0x54535255) {\n                    /* WARNING: Load size is inaccurate */\n    pQVar1 = (Quantum *)0x0;\n    if (*cache != 0) {\n      pQVar1 = nexus_info->pixels;\n    }\n    return pQVar1;\n  }\n  puVar10 = PTR_LAB_003f98e0 + 0x5804;\n  puVar20 = PTR___assert_fail_003fa620;\n  (*(code *)PTR___assert_fail_003fa620)(puVar10,PTR_LAB_003f98e0 + 0x57f0,0xd17);\n  iVar2 = (**(code **)(puVar20 + 0x3a34cc))();\n  if (puVar10 == (undefined *)0x0) {\n    iVar17 = *(int *)(puVar20 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x7b0,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcec,\n               iVar17);\nLAB_0005711c:\n    iVar17 = iVar17 + 0x62a8;\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x784,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xced,\n               iVar17);\nLAB_00057140:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x6818,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcee,\n               iVar17 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x5804,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar17 = *(int *)(puVar20 + 0x3a288c);\n    if (*(int *)(puVar10 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    pvVar11 = *(Cache *)(puVar10 + 0x2d4);\n    if (pvVar11 == (Cache)0x0) goto LAB_00057140;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {\n      pQVar1 = GetVirtualPixelsNexus\n                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n      return pQVar1;\n    }\n  }\n  image = (Image *)(*(int *)(puVar20 + 0x3a288c) + 0x5834);\n  pcVar21 = *(code **)(puVar20 + 0x3a35cc);\n  (*pcVar21)(image,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar20 + 0x3a288c) + 0x62a8\n            );\n  exception = (ExceptionInfo *)(pcVar21 + 0x3aa704);\n  iVar2 = (**(code **)(pcVar21 + 0x3a3374))();\n  if (image == (Image *)0x0) {\n    iVar17 = *(int *)(pcVar21 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x7b0,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc75,\n               iVar17);\nLAB_00057264:\n    iVar17 = iVar17 + 0x6104;\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x784,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc76,\n               iVar17);\nLAB_00057288:\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2734) + 0x6818,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc77,\n               iVar17 + 0x6104);\nLAB_000572ac:\n    pvVar11 = (Cache)(*(int *)(pcVar21 + 0x3a2734) + 0x5804);\n    iVar2 = (**(code **)(pcVar21 + 0x3a3474))(pvVar11,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar17 = *(int *)(pcVar21 + 0x3a2734);\n    if (image->signature != 0xabacadab) goto LAB_00057264;\n    pvVar11 = image->cache;\n    if (pvVar11 == (Cache)0x0) goto LAB_00057288;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)((int)pvVar11 + 0x23b8) != (code *)0x0) {\n      pQVar1 = (Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image);\n      return pQVar1;\n    }\n  }\n  if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {\n    pQVar1 = GetVirtualPixelsNexus\n                       (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n    return pQVar1;\n  }\n  piVar18 = (int *)(*(int *)(pcVar21 + 0x3a2734) + 0x6104);\n  iVar17 = 0xc7d;\n  iVar2 = *(int *)(pcVar21 + 0x3a2734) + 0x57f0;\n  pIVar12 = (Image *)(*(int *)(pcVar21 + 0x3a2734) + 0x5834);\n  pcVar21 = *(code **)(pcVar21 + 0x3a3474);\n  (*pcVar21)();\n  if (pIVar12 == (Image *)0x0) {\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x3da0,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    pcVar5 = (char *)(**(code **)(pcVar21 + 0x3a32f8))\n                               (*(int *)(pcVar21 + 0x3a25bc) + -0x784,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar21 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar21 + 0x3a25c0) + -0x2f6c,pcVar5);\n    pvVar3 = image->cache;\n  }\n  else {\n    image = pIVar12;\n    unaff_s2 = piVar18;\n    unaff_s3 = iVar2;\n    unaff_s4 = iVar17;\n    if (pIVar12->signature != 0xabacadab) goto LAB_000574f0;\n    pcVar5 = pIVar12->filename;\n    if (pIVar12->debug != MagickFalse) goto LAB_00057518;\n    pvVar3 = pIVar12->cache;\n  }\n  if (pvVar3 == (void *)0x0) {\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar2);\nLAB_0005757c:\n    iVar2 = iVar2 + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar2);\nLAB_000575a0:\n    iVar2 = iVar2 + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar2);\nLAB_000575c4:\n    iVar2 = (**(code **)(pcVar21 + 0x3a32f8))\n                      (*(int *)(pcVar21 + 0x3a25b8) + 0x5804,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                       0xfd7,iVar2 + 0x60c4);\n  }\n  else {\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar21 + 0x3a2650))();\n    unaff_s1 = (CacheInfo *)image->cache;\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s1->signature != 0xabacadab) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar2 = (**(code **)(pcVar21 + 0x3a350c))(2);\n      if (iVar2 != 0) {\n        clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);\n        clone_info->type = DiskCache;\n        (**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);\n        clone_info->file = -1;\n        clone_info->storage_class = unaff_s1->storage_class;\n        clone_info->colorspace = unaff_s1->colorspace;\n        clone_info->alpha_trait = unaff_s1->alpha_trait;\n        clone_info->channels = unaff_s1->channels;\n        clone_info->columns = unaff_s1->columns;\n        clone_info->rows = unaff_s1->rows;\n        clone_info->number_channels = unaff_s1->number_channels;\n        clone_info->metacontent_extent = unaff_s1->metacontent_extent;\n        clone_info->mode = PersistMode;\n        uVar6 = *(undefined4 *)&unaff_s1->length;\n        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;\n        *(undefined4 *)&clone_info->length = uVar6;\n        pPVar9 = unaff_s1->channel_map;\n        pPVar7 = clone_info->channel_map;\n        do {\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);\n        iVar2 = *unaff_s2;\n        *(int *)((int)&clone_info->offset + 4) = unaff_s2[1];\n        *(int *)&clone_info->offset = iVar2;\n        pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);\n        iVar17 = *(int *)&unaff_s1->length;\n        uVar14 = (uint)unaff_s1->length;\n        iVar2 = *unaff_s2;\n        uVar4 = uVar14 + unaff_s2[1];\n        uVar19 = uVar4 + unaff_s5;\n        uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n        uVar8 = uVar19 - (int)uVar22;\n        *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n        unaff_s2[1] = uVar8;\n        DestroyPixelCache(clone_info);\n        return pQVar1;\n      }\n      (**(code **)(pcVar21 + 0x3a2c10))\n                (exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,\n                 image->filename);\n      return (Quantum *)0x0;\n    }\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (image->debug == MagickFalse) goto LAB_000573e8;\n  }\n  (**(code **)(pcVar21 + 0x3a2ed0))\n            (8,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar2 + 0x5ca0);\nLAB_000573e8:\n  (**(code **)(pcVar21 + 0x3a352c))(unaff_s1->cache_filename,unaff_s3,0x1000);\n  unaff_s1->type = MapCache;\n  iVar2 = *unaff_s2;\n  *(int *)((int)&unaff_s1->offset + 4) = unaff_s2[1];\n  *(int *)&unaff_s1->offset = iVar2;\n  pQVar1 = (Quantum *)OpenPixelCache(image,ReadMode,exception);\n  if (pQVar1 != (Quantum *)0x0) {\n    iVar17 = *(int *)&unaff_s1->length;\n    uVar14 = (uint)unaff_s1->length;\n    iVar2 = *unaff_s2;\n    uVar4 = uVar14 + unaff_s2[1];\n    uVar19 = uVar4 + unaff_s5;\n    uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n    uVar8 = uVar19 - (int)uVar22;\n    *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n    unaff_s2[1] = uVar8;\n    pQVar1 = (Quantum *)0x1;\n  }\n  return pQVar1;\n}" type_identifier (pointer_declarator "* GetVirtualPixelsNexus(Cache cache,NexusInfo *nexus_info)" * (function_declarator "GetVirtualPixelsNexus(Cache cache,NexusInfo *nexus_info)" identifier (parameter_list "(Cache cache,NexusInfo *nexus_info)" ( (parameter_declaration "Cache cache" type_identifier identifier) , (parameter_declaration "NexusInfo *nexus_info" type_identifier (pointer_declarator "*nexus_info" * identifier)) )))) (compound_statement "{\n  Quantum *pQVar1;\n  int iVar2;\n  void *pvVar3;\n  uint uVar4;\n  char *pcVar5;\n  CacheInfo *clone_info;\n  undefined4 uVar6;\n  PixelChannelMap *pPVar7;\n  uint uVar8;\n  PixelChannelMap *pPVar9;\n  undefined *puVar10;\n  Cache pvVar11;\n  Image *image;\n  Image *pIVar12;\n  PixelChannel PVar13;\n  uint uVar14;\n  ssize_t sVar15;\n  PixelTrait PVar16;\n  int iVar17;\n  int *piVar18;\n  CacheInfo *unaff_s1;\n  uint uVar19;\n  int *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int unaff_s5;\n  undefined *puVar20;\n  code *pcVar21;\n  ExceptionInfo *exception;\n  undefined8 uVar22;\n  \n  if (cache == (Cache)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (*(int *)((int)cache + 0x2404) == -0x54535255) {\n                    /* WARNING: Load size is inaccurate */\n    pQVar1 = (Quantum *)0x0;\n    if (*cache != 0) {\n      pQVar1 = nexus_info->pixels;\n    }\n    return pQVar1;\n  }\n  puVar10 = PTR_LAB_003f98e0 + 0x5804;\n  puVar20 = PTR___assert_fail_003fa620;\n  (*(code *)PTR___assert_fail_003fa620)(puVar10,PTR_LAB_003f98e0 + 0x57f0,0xd17);\n  iVar2 = (**(code **)(puVar20 + 0x3a34cc))();\n  if (puVar10 == (undefined *)0x0) {\n    iVar17 = *(int *)(puVar20 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x7b0,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcec,\n               iVar17);\nLAB_0005711c:\n    iVar17 = iVar17 + 0x62a8;\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x784,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xced,\n               iVar17);\nLAB_00057140:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x6818,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcee,\n               iVar17 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x5804,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar17 = *(int *)(puVar20 + 0x3a288c);\n    if (*(int *)(puVar10 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    pvVar11 = *(Cache *)(puVar10 + 0x2d4);\n    if (pvVar11 == (Cache)0x0) goto LAB_00057140;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {\n      pQVar1 = GetVirtualPixelsNexus\n                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n      return pQVar1;\n    }\n  }\n  image = (Image *)(*(int *)(puVar20 + 0x3a288c) + 0x5834);\n  pcVar21 = *(code **)(puVar20 + 0x3a35cc);\n  (*pcVar21)(image,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar20 + 0x3a288c) + 0x62a8\n            );\n  exception = (ExceptionInfo *)(pcVar21 + 0x3aa704);\n  iVar2 = (**(code **)(pcVar21 + 0x3a3374))();\n  if (image == (Image *)0x0) {\n    iVar17 = *(int *)(pcVar21 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x7b0,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc75,\n               iVar17);\nLAB_00057264:\n    iVar17 = iVar17 + 0x6104;\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x784,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc76,\n               iVar17);\nLAB_00057288:\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2734) + 0x6818,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc77,\n               iVar17 + 0x6104);\nLAB_000572ac:\n    pvVar11 = (Cache)(*(int *)(pcVar21 + 0x3a2734) + 0x5804);\n    iVar2 = (**(code **)(pcVar21 + 0x3a3474))(pvVar11,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar17 = *(int *)(pcVar21 + 0x3a2734);\n    if (image->signature != 0xabacadab) goto LAB_00057264;\n    pvVar11 = image->cache;\n    if (pvVar11 == (Cache)0x0) goto LAB_00057288;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)((int)pvVar11 + 0x23b8) != (code *)0x0) {\n      pQVar1 = (Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image);\n      return pQVar1;\n    }\n  }\n  if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {\n    pQVar1 = GetVirtualPixelsNexus\n                       (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n    return pQVar1;\n  }\n  piVar18 = (int *)(*(int *)(pcVar21 + 0x3a2734) + 0x6104);\n  iVar17 = 0xc7d;\n  iVar2 = *(int *)(pcVar21 + 0x3a2734) + 0x57f0;\n  pIVar12 = (Image *)(*(int *)(pcVar21 + 0x3a2734) + 0x5834);\n  pcVar21 = *(code **)(pcVar21 + 0x3a3474);\n  (*pcVar21)();\n  if (pIVar12 == (Image *)0x0) {\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x3da0,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    pcVar5 = (char *)(**(code **)(pcVar21 + 0x3a32f8))\n                               (*(int *)(pcVar21 + 0x3a25bc) + -0x784,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar21 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar21 + 0x3a25c0) + -0x2f6c,pcVar5);\n    pvVar3 = image->cache;\n  }\n  else {\n    image = pIVar12;\n    unaff_s2 = piVar18;\n    unaff_s3 = iVar2;\n    unaff_s4 = iVar17;\n    if (pIVar12->signature != 0xabacadab) goto LAB_000574f0;\n    pcVar5 = pIVar12->filename;\n    if (pIVar12->debug != MagickFalse) goto LAB_00057518;\n    pvVar3 = pIVar12->cache;\n  }\n  if (pvVar3 == (void *)0x0) {\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar2);\nLAB_0005757c:\n    iVar2 = iVar2 + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar2);\nLAB_000575a0:\n    iVar2 = iVar2 + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar2);\nLAB_000575c4:\n    iVar2 = (**(code **)(pcVar21 + 0x3a32f8))\n                      (*(int *)(pcVar21 + 0x3a25b8) + 0x5804,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                       0xfd7,iVar2 + 0x60c4);\n  }\n  else {\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar21 + 0x3a2650))();\n    unaff_s1 = (CacheInfo *)image->cache;\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s1->signature != 0xabacadab) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar2 = (**(code **)(pcVar21 + 0x3a350c))(2);\n      if (iVar2 != 0) {\n        clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);\n        clone_info->type = DiskCache;\n        (**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);\n        clone_info->file = -1;\n        clone_info->storage_class = unaff_s1->storage_class;\n        clone_info->colorspace = unaff_s1->colorspace;\n        clone_info->alpha_trait = unaff_s1->alpha_trait;\n        clone_info->channels = unaff_s1->channels;\n        clone_info->columns = unaff_s1->columns;\n        clone_info->rows = unaff_s1->rows;\n        clone_info->number_channels = unaff_s1->number_channels;\n        clone_info->metacontent_extent = unaff_s1->metacontent_extent;\n        clone_info->mode = PersistMode;\n        uVar6 = *(undefined4 *)&unaff_s1->length;\n        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;\n        *(undefined4 *)&clone_info->length = uVar6;\n        pPVar9 = unaff_s1->channel_map;\n        pPVar7 = clone_info->channel_map;\n        do {\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);\n        iVar2 = *unaff_s2;\n        *(int *)((int)&clone_info->offset + 4) = unaff_s2[1];\n        *(int *)&clone_info->offset = iVar2;\n        pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);\n        iVar17 = *(int *)&unaff_s1->length;\n        uVar14 = (uint)unaff_s1->length;\n        iVar2 = *unaff_s2;\n        uVar4 = uVar14 + unaff_s2[1];\n        uVar19 = uVar4 + unaff_s5;\n        uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n        uVar8 = uVar19 - (int)uVar22;\n        *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n        unaff_s2[1] = uVar8;\n        DestroyPixelCache(clone_info);\n        return pQVar1;\n      }\n      (**(code **)(pcVar21 + 0x3a2c10))\n                (exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,\n                 image->filename);\n      return (Quantum *)0x0;\n    }\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (image->debug == MagickFalse) goto LAB_000573e8;\n  }\n  (**(code **)(pcVar21 + 0x3a2ed0))\n            (8,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar2 + 0x5ca0);\nLAB_000573e8:\n  (**(code **)(pcVar21 + 0x3a352c))(unaff_s1->cache_filename,unaff_s3,0x1000);\n  unaff_s1->type = MapCache;\n  iVar2 = *unaff_s2;\n  *(int *)((int)&unaff_s1->offset + 4) = unaff_s2[1];\n  *(int *)&unaff_s1->offset = iVar2;\n  pQVar1 = (Quantum *)OpenPixelCache(image,ReadMode,exception);\n  if (pQVar1 != (Quantum *)0x0) {\n    iVar17 = *(int *)&unaff_s1->length;\n    uVar14 = (uint)unaff_s1->length;\n    iVar2 = *unaff_s2;\n    uVar4 = uVar14 + unaff_s2[1];\n    uVar19 = uVar4 + unaff_s5;\n    uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n    uVar8 = uVar19 - (int)uVar22;\n    *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n    unaff_s2[1] = uVar8;\n    pQVar1 = (Quantum *)0x1;\n  }\n  return pQVar1;\n}" { (declaration "Quantum *pQVar1;" type_identifier (pointer_declarator "*pQVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "void *pvVar3;" primitive_type (pointer_declarator "*pvVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "CacheInfo *clone_info;" type_identifier (pointer_declarator "*clone_info" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "PixelChannelMap *pPVar7;" type_identifier (pointer_declarator "*pPVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "PixelChannelMap *pPVar9;" type_identifier (pointer_declarator "*pPVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "Cache pvVar11;" type_identifier identifier ;) (declaration "Image *image;" type_identifier (pointer_declarator "*image" * identifier) ;) (declaration "Image *pIVar12;" type_identifier (pointer_declarator "*pIVar12" * identifier) ;) (declaration "PixelChannel PVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "ssize_t sVar15;" primitive_type identifier ;) (declaration "PixelTrait PVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "CacheInfo *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "int unaff_s4;" primitive_type identifier ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "ExceptionInfo *exception;" type_identifier (pointer_declarator "*exception" * identifier) ;) (declaration "undefined8 uVar22;" type_identifier identifier ;) (if_statement "if (cache == (Cache)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (*(int *)((int)cache + 0x2404) == -0x54535255) {\n                    /* WARNING: Load size is inaccurate */\n    pQVar1 = (Quantum *)0x0;\n    if (*cache != 0) {\n      pQVar1 = nexus_info->pixels;\n    }\n    return pQVar1;\n  }" if (parenthesized_expression "(cache == (Cache)0x0)" ( (binary_expression "cache == (Cache)0x0" identifier == (cast_expression "(Cache)0x0" ( (type_descriptor "Cache" type_identifier) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x59e0" identifier + number_literal) , (binary_expression "PTR_LAB_003f98e0 + 0x57f0" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_003f98e0 + 0x60d8" identifier + number_literal) ))) ;) }) (else_clause "else if (*(int *)((int)cache + 0x2404) == -0x54535255) {\n                    /* WARNING: Load size is inaccurate */\n    pQVar1 = (Quantum *)0x0;\n    if (*cache != 0) {\n      pQVar1 = nexus_info->pixels;\n    }\n    return pQVar1;\n  }" else (if_statement "if (*(int *)((int)cache + 0x2404) == -0x54535255) {\n                    /* WARNING: Load size is inaccurate */\n    pQVar1 = (Quantum *)0x0;\n    if (*cache != 0) {\n      pQVar1 = nexus_info->pixels;\n    }\n    return pQVar1;\n  }" if (parenthesized_expression "(*(int *)((int)cache + 0x2404) == -0x54535255)" ( (binary_expression "*(int *)((int)cache + 0x2404) == -0x54535255" (pointer_expression "*(int *)((int)cache + 0x2404)" * (cast_expression "(int *)((int)cache + 0x2404)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)cache + 0x2404)" ( (binary_expression "(int)cache + 0x2404" (cast_expression "(int)cache" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n    pQVar1 = (Quantum *)0x0;\n    if (*cache != 0) {\n      pQVar1 = nexus_info->pixels;\n    }\n    return pQVar1;\n  }" { comment (expression_statement "pQVar1 = (Quantum *)0x0;" (assignment_expression "pQVar1 = (Quantum *)0x0" identifier = (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*cache != 0) {\n      pQVar1 = nexus_info->pixels;\n    }" if (parenthesized_expression "(*cache != 0)" ( (binary_expression "*cache != 0" (pointer_expression "*cache" * identifier) != number_literal) )) (compound_statement "{\n      pQVar1 = nexus_info->pixels;\n    }" { (expression_statement "pQVar1 = nexus_info->pixels;" (assignment_expression "pQVar1 = nexus_info->pixels" identifier = (field_expression "nexus_info->pixels" identifier -> field_identifier)) ;) })) (return_statement "return pQVar1;" return identifier ;) })))) (expression_statement "puVar10 = PTR_LAB_003f98e0 + 0x5804;" (assignment_expression "puVar10 = PTR_LAB_003f98e0 + 0x5804" identifier = (binary_expression "PTR_LAB_003f98e0 + 0x5804" identifier + number_literal)) ;) (expression_statement "puVar20 = PTR___assert_fail_003fa620;" (assignment_expression "puVar20 = PTR___assert_fail_003fa620" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003fa620)(puVar10,PTR_LAB_003f98e0 + 0x57f0,0xd17);" (call_expression "(*(code *)PTR___assert_fail_003fa620)(puVar10,PTR_LAB_003f98e0 + 0x57f0,0xd17)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10,PTR_LAB_003f98e0 + 0x57f0,0xd17)" ( identifier , (binary_expression "PTR_LAB_003f98e0 + 0x57f0" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar2 = (**(code **)(puVar20 + 0x3a34cc))();" (assignment_expression "iVar2 = (**(code **)(puVar20 + 0x3a34cc))()" identifier = (call_expression "(**(code **)(puVar20 + 0x3a34cc))()" (parenthesized_expression "(**(code **)(puVar20 + 0x3a34cc))" ( (pointer_expression "**(code **)(puVar20 + 0x3a34cc)" * (pointer_expression "*(code **)(puVar20 + 0x3a34cc)" * (cast_expression "(code **)(puVar20 + 0x3a34cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x3a34cc)" ( (binary_expression "puVar20 + 0x3a34cc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (puVar10 == (undefined *)0x0) {\n    iVar17 = *(int *)(puVar20 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x7b0,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcec,\n               iVar17);\nLAB_0005711c:\n    iVar17 = iVar17 + 0x62a8;\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x784,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xced,\n               iVar17);\nLAB_00057140:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x6818,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcee,\n               iVar17 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x5804,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar17 = *(int *)(puVar20 + 0x3a288c);\n    if (*(int *)(puVar10 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    pvVar11 = *(Cache *)(puVar10 + 0x2d4);\n    if (pvVar11 == (Cache)0x0) goto LAB_00057140;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {\n      pQVar1 = GetVirtualPixelsNexus\n                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n      return pQVar1;\n    }\n  }" if (parenthesized_expression "(puVar10 == (undefined *)0x0)" ( (binary_expression "puVar10 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar17 = *(int *)(puVar20 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x7b0,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcec,\n               iVar17);\nLAB_0005711c:\n    iVar17 = iVar17 + 0x62a8;\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x784,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xced,\n               iVar17);\nLAB_00057140:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x6818,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcee,\n               iVar17 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x5804,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf0);\n  }" { (expression_statement "iVar17 = *(int *)(puVar20 + 0x3a288c) + 0x62a8;" (assignment_expression "iVar17 = *(int *)(puVar20 + 0x3a288c) + 0x62a8" identifier = (binary_expression "*(int *)(puVar20 + 0x3a288c) + 0x62a8" (pointer_expression "*(int *)(puVar20 + 0x3a288c)" * (cast_expression "(int *)(puVar20 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a288c)" ( (binary_expression "puVar20 + 0x3a288c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x7b0,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcec,\n               iVar17);" (call_expression "(**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x7b0,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcec,\n               iVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar20 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar20 + 0x3a35cc)" * (cast_expression "(code **)(puVar20 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x3a35cc)" ( (binary_expression "puVar20 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar20 + 0x3a2890) + -0x7b0,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcec,\n               iVar17)" ( (binary_expression "*(int *)(puVar20 + 0x3a2890) + -0x7b0" (pointer_expression "*(int *)(puVar20 + 0x3a2890)" * (cast_expression "(int *)(puVar20 + 0x3a2890)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a2890)" ( (binary_expression "puVar20 + 0x3a2890" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar20 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar20 + 0x3a288c)" * (cast_expression "(int *)(puVar20 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a288c)" ( (binary_expression "puVar20 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_0005711c:\n    iVar17 = iVar17 + 0x62a8;" statement_identifier : (expression_statement "iVar17 = iVar17 + 0x62a8;" (assignment_expression "iVar17 = iVar17 + 0x62a8" identifier = (binary_expression "iVar17 + 0x62a8" identifier + number_literal)) ;)) (expression_statement "(**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x784,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xced,\n               iVar17);" (call_expression "(**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a2890) + -0x784,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xced,\n               iVar17)" (parenthesized_expression "(**(code **)(puVar20 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar20 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar20 + 0x3a35cc)" * (cast_expression "(code **)(puVar20 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x3a35cc)" ( (binary_expression "puVar20 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar20 + 0x3a2890) + -0x784,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xced,\n               iVar17)" ( (binary_expression "*(int *)(puVar20 + 0x3a2890) + -0x784" (pointer_expression "*(int *)(puVar20 + 0x3a2890)" * (cast_expression "(int *)(puVar20 + 0x3a2890)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a2890)" ( (binary_expression "puVar20 + 0x3a2890" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar20 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar20 + 0x3a288c)" * (cast_expression "(int *)(puVar20 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a288c)" ( (binary_expression "puVar20 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00057140:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x6818,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcee,\n               iVar17 + 0x62a8);" statement_identifier : (expression_statement "(**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x6818,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcee,\n               iVar17 + 0x62a8);" (call_expression "(**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x6818,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcee,\n               iVar17 + 0x62a8)" (parenthesized_expression "(**(code **)(puVar20 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar20 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar20 + 0x3a35cc)" * (cast_expression "(code **)(puVar20 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x3a35cc)" ( (binary_expression "puVar20 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar20 + 0x3a288c) + 0x6818,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcee,\n               iVar17 + 0x62a8)" ( (binary_expression "*(int *)(puVar20 + 0x3a288c) + 0x6818" (pointer_expression "*(int *)(puVar20 + 0x3a288c)" * (cast_expression "(int *)(puVar20 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a288c)" ( (binary_expression "puVar20 + 0x3a288c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar20 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar20 + 0x3a288c)" * (cast_expression "(int *)(puVar20 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a288c)" ( (binary_expression "puVar20 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar17 + 0x62a8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00057164:\n    (**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x5804,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf0);" statement_identifier : (expression_statement "(**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x5804,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf0);" (call_expression "(**(code **)(puVar20 + 0x3a35cc))\n              (*(int *)(puVar20 + 0x3a288c) + 0x5804,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf0)" (parenthesized_expression "(**(code **)(puVar20 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar20 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar20 + 0x3a35cc)" * (cast_expression "(code **)(puVar20 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x3a35cc)" ( (binary_expression "puVar20 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar20 + 0x3a288c) + 0x5804,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf0)" ( (binary_expression "*(int *)(puVar20 + 0x3a288c) + 0x5804" (pointer_expression "*(int *)(puVar20 + 0x3a288c)" * (cast_expression "(int *)(puVar20 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a288c)" ( (binary_expression "puVar20 + 0x3a288c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar20 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar20 + 0x3a288c)" * (cast_expression "(int *)(puVar20 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a288c)" ( (binary_expression "puVar20 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal ))) ;)) }) (else_clause "else {\n    iVar17 = *(int *)(puVar20 + 0x3a288c);\n    if (*(int *)(puVar10 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    pvVar11 = *(Cache *)(puVar10 + 0x2d4);\n    if (pvVar11 == (Cache)0x0) goto LAB_00057140;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {\n      pQVar1 = GetVirtualPixelsNexus\n                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n      return pQVar1;\n    }\n  }" else (compound_statement "{\n    iVar17 = *(int *)(puVar20 + 0x3a288c);\n    if (*(int *)(puVar10 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    pvVar11 = *(Cache *)(puVar10 + 0x2d4);\n    if (pvVar11 == (Cache)0x0) goto LAB_00057140;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {\n      pQVar1 = GetVirtualPixelsNexus\n                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n      return pQVar1;\n    }\n  }" { (expression_statement "iVar17 = *(int *)(puVar20 + 0x3a288c);" (assignment_expression "iVar17 = *(int *)(puVar20 + 0x3a288c)" identifier = (pointer_expression "*(int *)(puVar20 + 0x3a288c)" * (cast_expression "(int *)(puVar20 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a288c)" ( (binary_expression "puVar20 + 0x3a288c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar10 + 0x336c) != -0x54535255) goto LAB_0005711c;" if (parenthesized_expression "(*(int *)(puVar10 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(puVar10 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(puVar10 + 0x336c)" * (cast_expression "(int *)(puVar10 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x336c)" ( (binary_expression "puVar10 + 0x336c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0005711c;" goto statement_identifier ;)) (expression_statement "pvVar11 = *(Cache *)(puVar10 + 0x2d4);" (assignment_expression "pvVar11 = *(Cache *)(puVar10 + 0x2d4)" identifier = (pointer_expression "*(Cache *)(puVar10 + 0x2d4)" * (cast_expression "(Cache *)(puVar10 + 0x2d4)" ( (type_descriptor "Cache *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2d4)" ( (binary_expression "puVar10 + 0x2d4" identifier + number_literal) ))))) ;) (if_statement "if (pvVar11 == (Cache)0x0) goto LAB_00057140;" if (parenthesized_expression "(pvVar11 == (Cache)0x0)" ( (binary_expression "pvVar11 == (Cache)0x0" identifier == (cast_expression "(Cache)0x0" ( (type_descriptor "Cache" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00057140;" goto statement_identifier ;)) (if_statement "if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_00057164;" if (parenthesized_expression "(*(int *)((int)pvVar11 + 0x2404) != -0x54535255)" ( (binary_expression "*(int *)((int)pvVar11 + 0x2404) != -0x54535255" (pointer_expression "*(int *)((int)pvVar11 + 0x2404)" * (cast_expression "(int *)((int)pvVar11 + 0x2404)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar11 + 0x2404)" ( (binary_expression "(int)pvVar11 + 0x2404" (cast_expression "(int)pvVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00057164;" goto statement_identifier ;)) (if_statement "if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {\n      pQVar1 = GetVirtualPixelsNexus\n                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n      return pQVar1;\n    }" if (parenthesized_expression "(iVar2 < *(int *)((int)pvVar11 + 0x3a0))" ( (binary_expression "iVar2 < *(int *)((int)pvVar11 + 0x3a0)" identifier < (pointer_expression "*(int *)((int)pvVar11 + 0x3a0)" * (cast_expression "(int *)((int)pvVar11 + 0x3a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar11 + 0x3a0)" ( (binary_expression "(int)pvVar11 + 0x3a0" (cast_expression "(int)pvVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n      pQVar1 = GetVirtualPixelsNexus\n                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n      return pQVar1;\n    }" { (expression_statement "pQVar1 = GetVirtualPixelsNexus\n                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));" (assignment_expression "pQVar1 = GetVirtualPixelsNexus\n                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4))" identifier = (call_expression "GetVirtualPixelsNexus\n                         (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4))" identifier (argument_list "(pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4))" ( identifier , (pointer_expression "*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4)" * (cast_expression "(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4)" ( (type_descriptor "NexusInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4)" ( (binary_expression "*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4" (pointer_expression "*(int *)((int)pvVar11 + 0x3a4)" * (cast_expression "(int *)((int)pvVar11 + 0x3a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar11 + 0x3a4)" ( (binary_expression "(int)pvVar11 + 0x3a4" (cast_expression "(int)pvVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (binary_expression "iVar2 * 4" identifier * number_literal)) )))) )))) ;) (return_statement "return pQVar1;" return identifier ;) })) }))) (expression_statement "image = (Image *)(*(int *)(puVar20 + 0x3a288c) + 0x5834);" (assignment_expression "image = (Image *)(*(int *)(puVar20 + 0x3a288c) + 0x5834)" identifier = (cast_expression "(Image *)(*(int *)(puVar20 + 0x3a288c) + 0x5834)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + 0x3a288c) + 0x5834)" ( (binary_expression "*(int *)(puVar20 + 0x3a288c) + 0x5834" (pointer_expression "*(int *)(puVar20 + 0x3a288c)" * (cast_expression "(int *)(puVar20 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a288c)" ( (binary_expression "puVar20 + 0x3a288c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar21 = *(code **)(puVar20 + 0x3a35cc);" (assignment_expression "pcVar21 = *(code **)(puVar20 + 0x3a35cc)" identifier = (pointer_expression "*(code **)(puVar20 + 0x3a35cc)" * (cast_expression "(code **)(puVar20 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x3a35cc)" ( (binary_expression "puVar20 + 0x3a35cc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar21)(image,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar20 + 0x3a288c) + 0x62a8\n            );" (call_expression "(*pcVar21)(image,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar20 + 0x3a288c) + 0x62a8\n            )" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(image,*(int *)(puVar20 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar20 + 0x3a288c) + 0x62a8\n            )" ( identifier , (binary_expression "*(int *)(puVar20 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar20 + 0x3a288c)" * (cast_expression "(int *)(puVar20 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a288c)" ( (binary_expression "puVar20 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar20 + 0x3a288c) + 0x62a8" (pointer_expression "*(int *)(puVar20 + 0x3a288c)" * (cast_expression "(int *)(puVar20 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x3a288c)" ( (binary_expression "puVar20 + 0x3a288c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "exception = (ExceptionInfo *)(pcVar21 + 0x3aa704);" (assignment_expression "exception = (ExceptionInfo *)(pcVar21 + 0x3aa704)" identifier = (cast_expression "(ExceptionInfo *)(pcVar21 + 0x3aa704)" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3aa704)" ( (binary_expression "pcVar21 + 0x3aa704" identifier + number_literal) )))) ;) (expression_statement "iVar2 = (**(code **)(pcVar21 + 0x3a3374))();" (assignment_expression "iVar2 = (**(code **)(pcVar21 + 0x3a3374))()" identifier = (call_expression "(**(code **)(pcVar21 + 0x3a3374))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a3374))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a3374)" * (pointer_expression "*(code **)(pcVar21 + 0x3a3374)" * (cast_expression "(code **)(pcVar21 + 0x3a3374)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a3374)" ( (binary_expression "pcVar21 + 0x3a3374" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (image == (Image *)0x0) {\n    iVar17 = *(int *)(pcVar21 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x7b0,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc75,\n               iVar17);\nLAB_00057264:\n    iVar17 = iVar17 + 0x6104;\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x784,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc76,\n               iVar17);\nLAB_00057288:\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2734) + 0x6818,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc77,\n               iVar17 + 0x6104);\nLAB_000572ac:\n    pvVar11 = (Cache)(*(int *)(pcVar21 + 0x3a2734) + 0x5804);\n    iVar2 = (**(code **)(pcVar21 + 0x3a3474))(pvVar11,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar17 = *(int *)(pcVar21 + 0x3a2734);\n    if (image->signature != 0xabacadab) goto LAB_00057264;\n    pvVar11 = image->cache;\n    if (pvVar11 == (Cache)0x0) goto LAB_00057288;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)((int)pvVar11 + 0x23b8) != (code *)0x0) {\n      pQVar1 = (Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image);\n      return pQVar1;\n    }\n  }" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar17 = *(int *)(pcVar21 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x7b0,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc75,\n               iVar17);\nLAB_00057264:\n    iVar17 = iVar17 + 0x6104;\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x784,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc76,\n               iVar17);\nLAB_00057288:\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2734) + 0x6818,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc77,\n               iVar17 + 0x6104);\nLAB_000572ac:\n    pvVar11 = (Cache)(*(int *)(pcVar21 + 0x3a2734) + 0x5804);\n    iVar2 = (**(code **)(pcVar21 + 0x3a3474))(pvVar11,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc79);\n  }" { (expression_statement "iVar17 = *(int *)(pcVar21 + 0x3a2734) + 0x6104;" (assignment_expression "iVar17 = *(int *)(pcVar21 + 0x3a2734) + 0x6104" identifier = (binary_expression "*(int *)(pcVar21 + 0x3a2734) + 0x6104" (pointer_expression "*(int *)(pcVar21 + 0x3a2734)" * (cast_expression "(int *)(pcVar21 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2734)" ( (binary_expression "pcVar21 + 0x3a2734" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x7b0,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc75,\n               iVar17);" (call_expression "(**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x7b0,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc75,\n               iVar17)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar21 + 0x3a3474)" * (cast_expression "(code **)(pcVar21 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a3474)" ( (binary_expression "pcVar21 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0x3a2738) + -0x7b0,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc75,\n               iVar17)" ( (binary_expression "*(int *)(pcVar21 + 0x3a2738) + -0x7b0" (pointer_expression "*(int *)(pcVar21 + 0x3a2738)" * (cast_expression "(int *)(pcVar21 + 0x3a2738)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2738)" ( (binary_expression "pcVar21 + 0x3a2738" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a2734)" * (cast_expression "(int *)(pcVar21 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2734)" ( (binary_expression "pcVar21 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00057264:\n    iVar17 = iVar17 + 0x6104;" statement_identifier : (expression_statement "iVar17 = iVar17 + 0x6104;" (assignment_expression "iVar17 = iVar17 + 0x6104" identifier = (binary_expression "iVar17 + 0x6104" identifier + number_literal)) ;)) (expression_statement "(**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x784,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc76,\n               iVar17);" (call_expression "(**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2738) + -0x784,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc76,\n               iVar17)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar21 + 0x3a3474)" * (cast_expression "(code **)(pcVar21 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a3474)" ( (binary_expression "pcVar21 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0x3a2738) + -0x784,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc76,\n               iVar17)" ( (binary_expression "*(int *)(pcVar21 + 0x3a2738) + -0x784" (pointer_expression "*(int *)(pcVar21 + 0x3a2738)" * (cast_expression "(int *)(pcVar21 + 0x3a2738)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2738)" ( (binary_expression "pcVar21 + 0x3a2738" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a2734)" * (cast_expression "(int *)(pcVar21 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2734)" ( (binary_expression "pcVar21 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00057288:\n    (**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2734) + 0x6818,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc77,\n               iVar17 + 0x6104);" statement_identifier : (expression_statement "(**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2734) + 0x6818,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc77,\n               iVar17 + 0x6104);" (call_expression "(**(code **)(pcVar21 + 0x3a3474))\n              (*(int *)(pcVar21 + 0x3a2734) + 0x6818,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc77,\n               iVar17 + 0x6104)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar21 + 0x3a3474)" * (cast_expression "(code **)(pcVar21 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a3474)" ( (binary_expression "pcVar21 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0x3a2734) + 0x6818,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc77,\n               iVar17 + 0x6104)" ( (binary_expression "*(int *)(pcVar21 + 0x3a2734) + 0x6818" (pointer_expression "*(int *)(pcVar21 + 0x3a2734)" * (cast_expression "(int *)(pcVar21 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2734)" ( (binary_expression "pcVar21 + 0x3a2734" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a2734)" * (cast_expression "(int *)(pcVar21 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2734)" ( (binary_expression "pcVar21 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar17 + 0x6104" identifier + number_literal) ))) ;)) (labeled_statement "LAB_000572ac:\n    pvVar11 = (Cache)(*(int *)(pcVar21 + 0x3a2734) + 0x5804);" statement_identifier : (expression_statement "pvVar11 = (Cache)(*(int *)(pcVar21 + 0x3a2734) + 0x5804);" (assignment_expression "pvVar11 = (Cache)(*(int *)(pcVar21 + 0x3a2734) + 0x5804)" identifier = (call_expression "(Cache)(*(int *)(pcVar21 + 0x3a2734) + 0x5804)" (parenthesized_expression "(Cache)" ( identifier )) (argument_list "(*(int *)(pcVar21 + 0x3a2734) + 0x5804)" ( (binary_expression "*(int *)(pcVar21 + 0x3a2734) + 0x5804" (pointer_expression "*(int *)(pcVar21 + 0x3a2734)" * (cast_expression "(int *)(pcVar21 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2734)" ( (binary_expression "pcVar21 + 0x3a2734" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "iVar2 = (**(code **)(pcVar21 + 0x3a3474))(pvVar11,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc79);" (assignment_expression "iVar2 = (**(code **)(pcVar21 + 0x3a3474))(pvVar11,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc79)" identifier = (call_expression "(**(code **)(pcVar21 + 0x3a3474))(pvVar11,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc79)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar21 + 0x3a3474)" * (cast_expression "(code **)(pcVar21 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a3474)" ( (binary_expression "pcVar21 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(pvVar11,*(int *)(pcVar21 + 0x3a2734) + 0x57f0,0xc79)" ( identifier , (binary_expression "*(int *)(pcVar21 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a2734)" * (cast_expression "(int *)(pcVar21 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2734)" ( (binary_expression "pcVar21 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) }) (else_clause "else {\n    iVar17 = *(int *)(pcVar21 + 0x3a2734);\n    if (image->signature != 0xabacadab) goto LAB_00057264;\n    pvVar11 = image->cache;\n    if (pvVar11 == (Cache)0x0) goto LAB_00057288;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)((int)pvVar11 + 0x23b8) != (code *)0x0) {\n      pQVar1 = (Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image);\n      return pQVar1;\n    }\n  }" else (compound_statement "{\n    iVar17 = *(int *)(pcVar21 + 0x3a2734);\n    if (image->signature != 0xabacadab) goto LAB_00057264;\n    pvVar11 = image->cache;\n    if (pvVar11 == (Cache)0x0) goto LAB_00057288;\n    if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)((int)pvVar11 + 0x23b8) != (code *)0x0) {\n      pQVar1 = (Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image);\n      return pQVar1;\n    }\n  }" { (expression_statement "iVar17 = *(int *)(pcVar21 + 0x3a2734);" (assignment_expression "iVar17 = *(int *)(pcVar21 + 0x3a2734)" identifier = (pointer_expression "*(int *)(pcVar21 + 0x3a2734)" * (cast_expression "(int *)(pcVar21 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2734)" ( (binary_expression "pcVar21 + 0x3a2734" identifier + number_literal) ))))) ;) (if_statement "if (image->signature != 0xabacadab) goto LAB_00057264;" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_00057264;" goto statement_identifier ;)) (expression_statement "pvVar11 = image->cache;" (assignment_expression "pvVar11 = image->cache" identifier = (field_expression "image->cache" identifier -> field_identifier)) ;) (if_statement "if (pvVar11 == (Cache)0x0) goto LAB_00057288;" if (parenthesized_expression "(pvVar11 == (Cache)0x0)" ( (binary_expression "pvVar11 == (Cache)0x0" identifier == (cast_expression "(Cache)0x0" ( (type_descriptor "Cache" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00057288;" goto statement_identifier ;)) (if_statement "if (*(int *)((int)pvVar11 + 0x2404) != -0x54535255) goto LAB_000572ac;" if (parenthesized_expression "(*(int *)((int)pvVar11 + 0x2404) != -0x54535255)" ( (binary_expression "*(int *)((int)pvVar11 + 0x2404) != -0x54535255" (pointer_expression "*(int *)((int)pvVar11 + 0x2404)" * (cast_expression "(int *)((int)pvVar11 + 0x2404)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar11 + 0x2404)" ( (binary_expression "(int)pvVar11 + 0x2404" (cast_expression "(int)pvVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000572ac;" goto statement_identifier ;)) (if_statement "if (*(code **)((int)pvVar11 + 0x23b8) != (code *)0x0) {\n      pQVar1 = (Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image);\n      return pQVar1;\n    }" if (parenthesized_expression "(*(code **)((int)pvVar11 + 0x23b8) != (code *)0x0)" ( (binary_expression "*(code **)((int)pvVar11 + 0x23b8) != (code *)0x0" (pointer_expression "*(code **)((int)pvVar11 + 0x23b8)" * (cast_expression "(code **)((int)pvVar11 + 0x23b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar11 + 0x23b8)" ( (binary_expression "(int)pvVar11 + 0x23b8" (cast_expression "(int)pvVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pQVar1 = (Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image);\n      return pQVar1;\n    }" { (expression_statement "pQVar1 = (Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image);" (assignment_expression "pQVar1 = (Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image)" identifier = (cast_expression "(Quantum *)(**(code **)((int)pvVar11 + 0x23b8))(image)" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)((int)pvVar11 + 0x23b8))(image)" (parenthesized_expression "(**(code **)((int)pvVar11 + 0x23b8))" ( (pointer_expression "**(code **)((int)pvVar11 + 0x23b8)" * (pointer_expression "*(code **)((int)pvVar11 + 0x23b8)" * (cast_expression "(code **)((int)pvVar11 + 0x23b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar11 + 0x23b8)" ( (binary_expression "(int)pvVar11 + 0x23b8" (cast_expression "(int)pvVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (argument_list "(image)" ( identifier ))))) ;) (return_statement "return pQVar1;" return identifier ;) })) }))) (if_statement "if (iVar2 < *(int *)((int)pvVar11 + 0x3a0)) {\n    pQVar1 = GetVirtualPixelsNexus\n                       (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n    return pQVar1;\n  }" if (parenthesized_expression "(iVar2 < *(int *)((int)pvVar11 + 0x3a0))" ( (binary_expression "iVar2 < *(int *)((int)pvVar11 + 0x3a0)" identifier < (pointer_expression "*(int *)((int)pvVar11 + 0x3a0)" * (cast_expression "(int *)((int)pvVar11 + 0x3a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar11 + 0x3a0)" ( (binary_expression "(int)pvVar11 + 0x3a0" (cast_expression "(int)pvVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n    pQVar1 = GetVirtualPixelsNexus\n                       (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));\n    return pQVar1;\n  }" { (expression_statement "pQVar1 = GetVirtualPixelsNexus\n                       (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4));" (assignment_expression "pQVar1 = GetVirtualPixelsNexus\n                       (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4))" identifier = (call_expression "GetVirtualPixelsNexus\n                       (pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4))" identifier (argument_list "(pvVar11,*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4))" ( identifier , (pointer_expression "*(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4)" * (cast_expression "(NexusInfo **)(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4)" ( (type_descriptor "NexusInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4)" ( (binary_expression "*(int *)((int)pvVar11 + 0x3a4) + iVar2 * 4" (pointer_expression "*(int *)((int)pvVar11 + 0x3a4)" * (cast_expression "(int *)((int)pvVar11 + 0x3a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar11 + 0x3a4)" ( (binary_expression "(int)pvVar11 + 0x3a4" (cast_expression "(int)pvVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (binary_expression "iVar2 * 4" identifier * number_literal)) )))) )))) ;) (return_statement "return pQVar1;" return identifier ;) })) (expression_statement "piVar18 = (int *)(*(int *)(pcVar21 + 0x3a2734) + 0x6104);" (assignment_expression "piVar18 = (int *)(*(int *)(pcVar21 + 0x3a2734) + 0x6104)" identifier = (cast_expression "(int *)(*(int *)(pcVar21 + 0x3a2734) + 0x6104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar21 + 0x3a2734) + 0x6104)" ( (binary_expression "*(int *)(pcVar21 + 0x3a2734) + 0x6104" (pointer_expression "*(int *)(pcVar21 + 0x3a2734)" * (cast_expression "(int *)(pcVar21 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2734)" ( (binary_expression "pcVar21 + 0x3a2734" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar17 = 0xc7d;" (assignment_expression "iVar17 = 0xc7d" identifier = number_literal) ;) (expression_statement "iVar2 = *(int *)(pcVar21 + 0x3a2734) + 0x57f0;" (assignment_expression "iVar2 = *(int *)(pcVar21 + 0x3a2734) + 0x57f0" identifier = (binary_expression "*(int *)(pcVar21 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a2734)" * (cast_expression "(int *)(pcVar21 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2734)" ( (binary_expression "pcVar21 + 0x3a2734" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pIVar12 = (Image *)(*(int *)(pcVar21 + 0x3a2734) + 0x5834);" (assignment_expression "pIVar12 = (Image *)(*(int *)(pcVar21 + 0x3a2734) + 0x5834)" identifier = (cast_expression "(Image *)(*(int *)(pcVar21 + 0x3a2734) + 0x5834)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar21 + 0x3a2734) + 0x5834)" ( (binary_expression "*(int *)(pcVar21 + 0x3a2734) + 0x5834" (pointer_expression "*(int *)(pcVar21 + 0x3a2734)" * (cast_expression "(int *)(pcVar21 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a2734)" ( (binary_expression "pcVar21 + 0x3a2734" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar21 = *(code **)(pcVar21 + 0x3a3474);" (assignment_expression "pcVar21 = *(code **)(pcVar21 + 0x3a3474)" identifier = (pointer_expression "*(code **)(pcVar21 + 0x3a3474)" * (cast_expression "(code **)(pcVar21 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a3474)" ( (binary_expression "pcVar21 + 0x3a3474" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (pIVar12 == (Image *)0x0) {\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x3da0,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    pcVar5 = (char *)(**(code **)(pcVar21 + 0x3a32f8))\n                               (*(int *)(pcVar21 + 0x3a25bc) + -0x784,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar21 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar21 + 0x3a25c0) + -0x2f6c,pcVar5);\n    pvVar3 = image->cache;\n  }\n  else {\n    image = pIVar12;\n    unaff_s2 = piVar18;\n    unaff_s3 = iVar2;\n    unaff_s4 = iVar17;\n    if (pIVar12->signature != 0xabacadab) goto LAB_000574f0;\n    pcVar5 = pIVar12->filename;\n    if (pIVar12->debug != MagickFalse) goto LAB_00057518;\n    pvVar3 = pIVar12->cache;\n  }" if (parenthesized_expression "(pIVar12 == (Image *)0x0)" ( (binary_expression "pIVar12 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x3da0,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    pcVar5 = (char *)(**(code **)(pcVar21 + 0x3a32f8))\n                               (*(int *)(pcVar21 + 0x3a25bc) + -0x784,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar21 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar21 + 0x3a25c0) + -0x2f6c,pcVar5);\n    pvVar3 = image->cache;\n  }" { (expression_statement "(**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x3da0,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);" (call_expression "(**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x3da0,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar21 + 0x3a25b8) + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar21 + 0x3a32f8)" * (cast_expression "(code **)(pcVar21 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a32f8)" ( (binary_expression "pcVar21 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0x3a25b8) + 0x3da0,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar21 + 0x3a25b8) + 0x60c4)" ( (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x3da0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_000574f0:\n    pcVar5 = (char *)(**(code **)(pcVar21 + 0x3a32f8))\n                               (*(int *)(pcVar21 + 0x3a25bc) + -0x784,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);" statement_identifier : (expression_statement "pcVar5 = (char *)(**(code **)(pcVar21 + 0x3a32f8))\n                               (*(int *)(pcVar21 + 0x3a25bc) + -0x784,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4);" (assignment_expression "pcVar5 = (char *)(**(code **)(pcVar21 + 0x3a32f8))\n                               (*(int *)(pcVar21 + 0x3a25bc) + -0x784,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4)" identifier = (cast_expression "(char *)(**(code **)(pcVar21 + 0x3a32f8))\n                               (*(int *)(pcVar21 + 0x3a25bc) + -0x784,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar21 + 0x3a32f8))\n                               (*(int *)(pcVar21 + 0x3a25bc) + -0x784,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar21 + 0x3a32f8)" * (cast_expression "(code **)(pcVar21 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a32f8)" ( (binary_expression "pcVar21 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0x3a25bc) + -0x784,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfcf,\n                                *(int *)(pcVar21 + 0x3a25b8) + 0x60c4)" ( (binary_expression "*(int *)(pcVar21 + 0x3a25bc) + -0x784" (pointer_expression "*(int *)(pcVar21 + 0x3a25bc)" * (cast_expression "(int *)(pcVar21 + 0x3a25bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25bc)" ( (binary_expression "pcVar21 + 0x3a25bc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_00057518:\n    (**(code **)(pcVar21 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar21 + 0x3a25c0) + -0x2f6c,pcVar5);" statement_identifier : (expression_statement "(**(code **)(pcVar21 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar21 + 0x3a25c0) + -0x2f6c,pcVar5);" (call_expression "(**(code **)(pcVar21 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar21 + 0x3a25c0) + -0x2f6c,pcVar5)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a2ed0))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a2ed0)" * (pointer_expression "*(code **)(pcVar21 + 0x3a2ed0)" * (cast_expression "(code **)(pcVar21 + 0x3a2ed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a2ed0)" ( (binary_expression "pcVar21 + 0x3a2ed0" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar21 + 0x3a25c0) + -0x2f6c,pcVar5)" ( number_literal , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar21 + 0x3a25c0) + -0x2f6c" (pointer_expression "*(int *)(pcVar21 + 0x3a25c0)" * (cast_expression "(int *)(pcVar21 + 0x3a25c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25c0)" ( (binary_expression "pcVar21 + 0x3a25c0" identifier + number_literal) )))) + number_literal) , identifier ))) ;)) (expression_statement "pvVar3 = image->cache;" (assignment_expression "pvVar3 = image->cache" identifier = (field_expression "image->cache" identifier -> field_identifier)) ;) }) (else_clause "else {\n    image = pIVar12;\n    unaff_s2 = piVar18;\n    unaff_s3 = iVar2;\n    unaff_s4 = iVar17;\n    if (pIVar12->signature != 0xabacadab) goto LAB_000574f0;\n    pcVar5 = pIVar12->filename;\n    if (pIVar12->debug != MagickFalse) goto LAB_00057518;\n    pvVar3 = pIVar12->cache;\n  }" else (compound_statement "{\n    image = pIVar12;\n    unaff_s2 = piVar18;\n    unaff_s3 = iVar2;\n    unaff_s4 = iVar17;\n    if (pIVar12->signature != 0xabacadab) goto LAB_000574f0;\n    pcVar5 = pIVar12->filename;\n    if (pIVar12->debug != MagickFalse) goto LAB_00057518;\n    pvVar3 = pIVar12->cache;\n  }" { (expression_statement "image = pIVar12;" (assignment_expression "image = pIVar12" identifier = identifier) ;) (expression_statement "unaff_s2 = piVar18;" (assignment_expression "unaff_s2 = piVar18" identifier = identifier) ;) (expression_statement "unaff_s3 = iVar2;" (assignment_expression "unaff_s3 = iVar2" identifier = identifier) ;) (expression_statement "unaff_s4 = iVar17;" (assignment_expression "unaff_s4 = iVar17" identifier = identifier) ;) (if_statement "if (pIVar12->signature != 0xabacadab) goto LAB_000574f0;" if (parenthesized_expression "(pIVar12->signature != 0xabacadab)" ( (binary_expression "pIVar12->signature != 0xabacadab" (field_expression "pIVar12->signature" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_000574f0;" goto statement_identifier ;)) (expression_statement "pcVar5 = pIVar12->filename;" (assignment_expression "pcVar5 = pIVar12->filename" identifier = (field_expression "pIVar12->filename" identifier -> field_identifier)) ;) (if_statement "if (pIVar12->debug != MagickFalse) goto LAB_00057518;" if (parenthesized_expression "(pIVar12->debug != MagickFalse)" ( (binary_expression "pIVar12->debug != MagickFalse" (field_expression "pIVar12->debug" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_00057518;" goto statement_identifier ;)) (expression_statement "pvVar3 = pIVar12->cache;" (assignment_expression "pvVar3 = pIVar12->cache" identifier = (field_expression "pIVar12->cache" identifier -> field_identifier)) ;) }))) (if_statement "if (pvVar3 == (void *)0x0) {\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar2);\nLAB_0005757c:\n    iVar2 = iVar2 + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar2);\nLAB_000575a0:\n    iVar2 = iVar2 + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar2);\nLAB_000575c4:\n    iVar2 = (**(code **)(pcVar21 + 0x3a32f8))\n                      (*(int *)(pcVar21 + 0x3a25b8) + 0x5804,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                       0xfd7,iVar2 + 0x60c4);\n  }\n  else {\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar21 + 0x3a2650))();\n    unaff_s1 = (CacheInfo *)image->cache;\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s1->signature != 0xabacadab) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar2 = (**(code **)(pcVar21 + 0x3a350c))(2);\n      if (iVar2 != 0) {\n        clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);\n        clone_info->type = DiskCache;\n        (**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);\n        clone_info->file = -1;\n        clone_info->storage_class = unaff_s1->storage_class;\n        clone_info->colorspace = unaff_s1->colorspace;\n        clone_info->alpha_trait = unaff_s1->alpha_trait;\n        clone_info->channels = unaff_s1->channels;\n        clone_info->columns = unaff_s1->columns;\n        clone_info->rows = unaff_s1->rows;\n        clone_info->number_channels = unaff_s1->number_channels;\n        clone_info->metacontent_extent = unaff_s1->metacontent_extent;\n        clone_info->mode = PersistMode;\n        uVar6 = *(undefined4 *)&unaff_s1->length;\n        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;\n        *(undefined4 *)&clone_info->length = uVar6;\n        pPVar9 = unaff_s1->channel_map;\n        pPVar7 = clone_info->channel_map;\n        do {\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);\n        iVar2 = *unaff_s2;\n        *(int *)((int)&clone_info->offset + 4) = unaff_s2[1];\n        *(int *)&clone_info->offset = iVar2;\n        pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);\n        iVar17 = *(int *)&unaff_s1->length;\n        uVar14 = (uint)unaff_s1->length;\n        iVar2 = *unaff_s2;\n        uVar4 = uVar14 + unaff_s2[1];\n        uVar19 = uVar4 + unaff_s5;\n        uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n        uVar8 = uVar19 - (int)uVar22;\n        *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n        unaff_s2[1] = uVar8;\n        DestroyPixelCache(clone_info);\n        return pQVar1;\n      }\n      (**(code **)(pcVar21 + 0x3a2c10))\n                (exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,\n                 image->filename);\n      return (Quantum *)0x0;\n    }\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (image->debug == MagickFalse) goto LAB_000573e8;\n  }" if (parenthesized_expression "(pvVar3 == (void *)0x0)" ( (binary_expression "pvVar3 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar2);\nLAB_0005757c:\n    iVar2 = iVar2 + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar2);\nLAB_000575a0:\n    iVar2 = iVar2 + 0x60c4;\n    (**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar2);\nLAB_000575c4:\n    iVar2 = (**(code **)(pcVar21 + 0x3a32f8))\n                      (*(int *)(pcVar21 + 0x3a25b8) + 0x5804,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                       0xfd7,iVar2 + 0x60c4);\n  }" { (expression_statement "iVar2 = *(int *)(pcVar21 + 0x3a25b8) + 0x60c4;" (assignment_expression "iVar2 = *(int *)(pcVar21 + 0x3a25b8) + 0x60c4" identifier = (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar2);" (call_expression "(**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar2)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar21 + 0x3a32f8)" * (cast_expression "(code **)(pcVar21 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a32f8)" ( (binary_expression "pcVar21 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar2)" ( (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x5c5c" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_0005757c:\n    iVar2 = iVar2 + 0x60c4;" statement_identifier : (expression_statement "iVar2 = iVar2 + 0x60c4;" (assignment_expression "iVar2 = iVar2 + 0x60c4" identifier = (binary_expression "iVar2 + 0x60c4" identifier + number_literal)) ;)) (expression_statement "(**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar2);" (call_expression "(**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar2)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar21 + 0x3a32f8)" * (cast_expression "(code **)(pcVar21 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a32f8)" ( (binary_expression "pcVar21 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar2)" ( (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x4b2c" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_000575a0:\n    iVar2 = iVar2 + 0x60c4;" statement_identifier : (expression_statement "iVar2 = iVar2 + 0x60c4;" (assignment_expression "iVar2 = iVar2 + 0x60c4" identifier = (binary_expression "iVar2 + 0x60c4" identifier + number_literal)) ;)) (expression_statement "(**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar2);" (call_expression "(**(code **)(pcVar21 + 0x3a32f8))\n              (*(int *)(pcVar21 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar2)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar21 + 0x3a32f8)" * (cast_expression "(code **)(pcVar21 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a32f8)" ( (binary_expression "pcVar21 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar2)" ( (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x5c7c" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_000575c4:\n    iVar2 = (**(code **)(pcVar21 + 0x3a32f8))\n                      (*(int *)(pcVar21 + 0x3a25b8) + 0x5804,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                       0xfd7,iVar2 + 0x60c4);" statement_identifier : (expression_statement "iVar2 = (**(code **)(pcVar21 + 0x3a32f8))\n                      (*(int *)(pcVar21 + 0x3a25b8) + 0x5804,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                       0xfd7,iVar2 + 0x60c4);" (assignment_expression "iVar2 = (**(code **)(pcVar21 + 0x3a32f8))\n                      (*(int *)(pcVar21 + 0x3a25b8) + 0x5804,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                       0xfd7,iVar2 + 0x60c4)" identifier = (call_expression "(**(code **)(pcVar21 + 0x3a32f8))\n                      (*(int *)(pcVar21 + 0x3a25b8) + 0x5804,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                       0xfd7,iVar2 + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar21 + 0x3a32f8)" * (cast_expression "(code **)(pcVar21 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a32f8)" ( (binary_expression "pcVar21 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0x3a25b8) + 0x5804,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                       0xfd7,iVar2 + 0x60c4)" ( (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x5804" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar2 + 0x60c4" identifier + number_literal) )))) ;)) }) (else_clause "else {\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar21 + 0x3a2650))();\n    unaff_s1 = (CacheInfo *)image->cache;\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s1->signature != 0xabacadab) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar2 = (**(code **)(pcVar21 + 0x3a350c))(2);\n      if (iVar2 != 0) {\n        clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);\n        clone_info->type = DiskCache;\n        (**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);\n        clone_info->file = -1;\n        clone_info->storage_class = unaff_s1->storage_class;\n        clone_info->colorspace = unaff_s1->colorspace;\n        clone_info->alpha_trait = unaff_s1->alpha_trait;\n        clone_info->channels = unaff_s1->channels;\n        clone_info->columns = unaff_s1->columns;\n        clone_info->rows = unaff_s1->rows;\n        clone_info->number_channels = unaff_s1->number_channels;\n        clone_info->metacontent_extent = unaff_s1->metacontent_extent;\n        clone_info->mode = PersistMode;\n        uVar6 = *(undefined4 *)&unaff_s1->length;\n        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;\n        *(undefined4 *)&clone_info->length = uVar6;\n        pPVar9 = unaff_s1->channel_map;\n        pPVar7 = clone_info->channel_map;\n        do {\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);\n        iVar2 = *unaff_s2;\n        *(int *)((int)&clone_info->offset + 4) = unaff_s2[1];\n        *(int *)&clone_info->offset = iVar2;\n        pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);\n        iVar17 = *(int *)&unaff_s1->length;\n        uVar14 = (uint)unaff_s1->length;\n        iVar2 = *unaff_s2;\n        uVar4 = uVar14 + unaff_s2[1];\n        uVar19 = uVar4 + unaff_s5;\n        uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n        uVar8 = uVar19 - (int)uVar22;\n        *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n        unaff_s2[1] = uVar8;\n        DestroyPixelCache(clone_info);\n        return pQVar1;\n      }\n      (**(code **)(pcVar21 + 0x3a2c10))\n                (exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,\n                 image->filename);\n      return (Quantum *)0x0;\n    }\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (image->debug == MagickFalse) goto LAB_000573e8;\n  }" else (compound_statement "{\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar21 + 0x3a2650))();\n    unaff_s1 = (CacheInfo *)image->cache;\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (unaff_s1->signature != 0xabacadab) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar2 = (**(code **)(pcVar21 + 0x3a350c))(2);\n      if (iVar2 != 0) {\n        clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);\n        clone_info->type = DiskCache;\n        (**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);\n        clone_info->file = -1;\n        clone_info->storage_class = unaff_s1->storage_class;\n        clone_info->colorspace = unaff_s1->colorspace;\n        clone_info->alpha_trait = unaff_s1->alpha_trait;\n        clone_info->channels = unaff_s1->channels;\n        clone_info->columns = unaff_s1->columns;\n        clone_info->rows = unaff_s1->rows;\n        clone_info->number_channels = unaff_s1->number_channels;\n        clone_info->metacontent_extent = unaff_s1->metacontent_extent;\n        clone_info->mode = PersistMode;\n        uVar6 = *(undefined4 *)&unaff_s1->length;\n        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;\n        *(undefined4 *)&clone_info->length = uVar6;\n        pPVar9 = unaff_s1->channel_map;\n        pPVar7 = clone_info->channel_map;\n        do {\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);\n        iVar2 = *unaff_s2;\n        *(int *)((int)&clone_info->offset + 4) = unaff_s2[1];\n        *(int *)&clone_info->offset = iVar2;\n        pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);\n        iVar17 = *(int *)&unaff_s1->length;\n        uVar14 = (uint)unaff_s1->length;\n        iVar2 = *unaff_s2;\n        uVar4 = uVar14 + unaff_s2[1];\n        uVar19 = uVar4 + unaff_s5;\n        uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n        uVar8 = uVar19 - (int)uVar22;\n        *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n        unaff_s2[1] = uVar8;\n        DestroyPixelCache(clone_info);\n        return pQVar1;\n      }\n      (**(code **)(pcVar21 + 0x3a2c10))\n                (exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,\n                 image->filename);\n      return (Quantum *)0x0;\n    }\n    iVar2 = *(int *)(pcVar21 + 0x3a25b8);\n    if (image->debug == MagickFalse) goto LAB_000573e8;\n  }" { (expression_statement "iVar2 = *(int *)(pcVar21 + 0x3a25b8);" (assignment_expression "iVar2 = *(int *)(pcVar21 + 0x3a25b8)" identifier = (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s3 == 0) goto LAB_0005757c;" if (parenthesized_expression "(unaff_s3 == 0)" ( (binary_expression "unaff_s3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005757c;" goto statement_identifier ;)) (if_statement "if (unaff_s2 == (int *)0x0) goto LAB_000575a0;" if (parenthesized_expression "(unaff_s2 == (int *)0x0)" ( (binary_expression "unaff_s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000575a0;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (**(code **)(pcVar21 + 0x3a2650))();" (assignment_expression "unaff_s5 = (**(code **)(pcVar21 + 0x3a2650))()" identifier = (call_expression "(**(code **)(pcVar21 + 0x3a2650))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a2650))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a2650)" * (pointer_expression "*(code **)(pcVar21 + 0x3a2650)" * (cast_expression "(code **)(pcVar21 + 0x3a2650)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a2650)" ( (binary_expression "pcVar21 + 0x3a2650" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "unaff_s1 = (CacheInfo *)image->cache;" (assignment_expression "unaff_s1 = (CacheInfo *)image->cache" identifier = (cast_expression "(CacheInfo *)image->cache" ( (type_descriptor "CacheInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "image->cache" identifier -> field_identifier))) ;) (expression_statement "iVar2 = *(int *)(pcVar21 + 0x3a25b8);" (assignment_expression "iVar2 = *(int *)(pcVar21 + 0x3a25b8)" identifier = (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s1->signature != 0xabacadab) goto LAB_000575c4;" if (parenthesized_expression "(unaff_s1->signature != 0xabacadab)" ( (binary_expression "unaff_s1->signature != 0xabacadab" (field_expression "unaff_s1->signature" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_000575c4;" goto statement_identifier ;)) (if_statement "if (unaff_s4 == 0) {\n      iVar2 = (**(code **)(pcVar21 + 0x3a350c))(2);\n      if (iVar2 != 0) {\n        clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);\n        clone_info->type = DiskCache;\n        (**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);\n        clone_info->file = -1;\n        clone_info->storage_class = unaff_s1->storage_class;\n        clone_info->colorspace = unaff_s1->colorspace;\n        clone_info->alpha_trait = unaff_s1->alpha_trait;\n        clone_info->channels = unaff_s1->channels;\n        clone_info->columns = unaff_s1->columns;\n        clone_info->rows = unaff_s1->rows;\n        clone_info->number_channels = unaff_s1->number_channels;\n        clone_info->metacontent_extent = unaff_s1->metacontent_extent;\n        clone_info->mode = PersistMode;\n        uVar6 = *(undefined4 *)&unaff_s1->length;\n        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;\n        *(undefined4 *)&clone_info->length = uVar6;\n        pPVar9 = unaff_s1->channel_map;\n        pPVar7 = clone_info->channel_map;\n        do {\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);\n        iVar2 = *unaff_s2;\n        *(int *)((int)&clone_info->offset + 4) = unaff_s2[1];\n        *(int *)&clone_info->offset = iVar2;\n        pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);\n        iVar17 = *(int *)&unaff_s1->length;\n        uVar14 = (uint)unaff_s1->length;\n        iVar2 = *unaff_s2;\n        uVar4 = uVar14 + unaff_s2[1];\n        uVar19 = uVar4 + unaff_s5;\n        uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n        uVar8 = uVar19 - (int)uVar22;\n        *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n        unaff_s2[1] = uVar8;\n        DestroyPixelCache(clone_info);\n        return pQVar1;\n      }\n      (**(code **)(pcVar21 + 0x3a2c10))\n                (exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,\n                 image->filename);\n      return (Quantum *)0x0;\n    }" if (parenthesized_expression "(unaff_s4 == 0)" ( (binary_expression "unaff_s4 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = (**(code **)(pcVar21 + 0x3a350c))(2);\n      if (iVar2 != 0) {\n        clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);\n        clone_info->type = DiskCache;\n        (**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);\n        clone_info->file = -1;\n        clone_info->storage_class = unaff_s1->storage_class;\n        clone_info->colorspace = unaff_s1->colorspace;\n        clone_info->alpha_trait = unaff_s1->alpha_trait;\n        clone_info->channels = unaff_s1->channels;\n        clone_info->columns = unaff_s1->columns;\n        clone_info->rows = unaff_s1->rows;\n        clone_info->number_channels = unaff_s1->number_channels;\n        clone_info->metacontent_extent = unaff_s1->metacontent_extent;\n        clone_info->mode = PersistMode;\n        uVar6 = *(undefined4 *)&unaff_s1->length;\n        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;\n        *(undefined4 *)&clone_info->length = uVar6;\n        pPVar9 = unaff_s1->channel_map;\n        pPVar7 = clone_info->channel_map;\n        do {\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);\n        iVar2 = *unaff_s2;\n        *(int *)((int)&clone_info->offset + 4) = unaff_s2[1];\n        *(int *)&clone_info->offset = iVar2;\n        pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);\n        iVar17 = *(int *)&unaff_s1->length;\n        uVar14 = (uint)unaff_s1->length;\n        iVar2 = *unaff_s2;\n        uVar4 = uVar14 + unaff_s2[1];\n        uVar19 = uVar4 + unaff_s5;\n        uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n        uVar8 = uVar19 - (int)uVar22;\n        *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n        unaff_s2[1] = uVar8;\n        DestroyPixelCache(clone_info);\n        return pQVar1;\n      }\n      (**(code **)(pcVar21 + 0x3a2c10))\n                (exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,\n                 image->filename);\n      return (Quantum *)0x0;\n    }" { (expression_statement "iVar2 = (**(code **)(pcVar21 + 0x3a350c))(2);" (assignment_expression "iVar2 = (**(code **)(pcVar21 + 0x3a350c))(2)" identifier = (call_expression "(**(code **)(pcVar21 + 0x3a350c))(2)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a350c))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a350c)" * (pointer_expression "*(code **)(pcVar21 + 0x3a350c)" * (cast_expression "(code **)(pcVar21 + 0x3a350c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a350c)" ( (binary_expression "pcVar21 + 0x3a350c" identifier + number_literal) ))))) )) (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n        clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);\n        clone_info->type = DiskCache;\n        (**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);\n        clone_info->file = -1;\n        clone_info->storage_class = unaff_s1->storage_class;\n        clone_info->colorspace = unaff_s1->colorspace;\n        clone_info->alpha_trait = unaff_s1->alpha_trait;\n        clone_info->channels = unaff_s1->channels;\n        clone_info->columns = unaff_s1->columns;\n        clone_info->rows = unaff_s1->rows;\n        clone_info->number_channels = unaff_s1->number_channels;\n        clone_info->metacontent_extent = unaff_s1->metacontent_extent;\n        clone_info->mode = PersistMode;\n        uVar6 = *(undefined4 *)&unaff_s1->length;\n        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;\n        *(undefined4 *)&clone_info->length = uVar6;\n        pPVar9 = unaff_s1->channel_map;\n        pPVar7 = clone_info->channel_map;\n        do {\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);\n        iVar2 = *unaff_s2;\n        *(int *)((int)&clone_info->offset + 4) = unaff_s2[1];\n        *(int *)&clone_info->offset = iVar2;\n        pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);\n        iVar17 = *(int *)&unaff_s1->length;\n        uVar14 = (uint)unaff_s1->length;\n        iVar2 = *unaff_s2;\n        uVar4 = uVar14 + unaff_s2[1];\n        uVar19 = uVar4 + unaff_s5;\n        uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n        uVar8 = uVar19 - (int)uVar22;\n        *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n        unaff_s2[1] = uVar8;\n        DestroyPixelCache(clone_info);\n        return pQVar1;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);\n        clone_info->type = DiskCache;\n        (**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);\n        clone_info->file = -1;\n        clone_info->storage_class = unaff_s1->storage_class;\n        clone_info->colorspace = unaff_s1->colorspace;\n        clone_info->alpha_trait = unaff_s1->alpha_trait;\n        clone_info->channels = unaff_s1->channels;\n        clone_info->columns = unaff_s1->columns;\n        clone_info->rows = unaff_s1->rows;\n        clone_info->number_channels = unaff_s1->number_channels;\n        clone_info->metacontent_extent = unaff_s1->metacontent_extent;\n        clone_info->mode = PersistMode;\n        uVar6 = *(undefined4 *)&unaff_s1->length;\n        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;\n        *(undefined4 *)&clone_info->length = uVar6;\n        pPVar9 = unaff_s1->channel_map;\n        pPVar7 = clone_info->channel_map;\n        do {\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);\n        iVar2 = *unaff_s2;\n        *(int *)((int)&clone_info->offset + 4) = unaff_s2[1];\n        *(int *)&clone_info->offset = iVar2;\n        pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);\n        iVar17 = *(int *)&unaff_s1->length;\n        uVar14 = (uint)unaff_s1->length;\n        iVar2 = *unaff_s2;\n        uVar4 = uVar14 + unaff_s2[1];\n        uVar19 = uVar4 + unaff_s5;\n        uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n        uVar8 = uVar19 - (int)uVar22;\n        *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n        unaff_s2[1] = uVar8;\n        DestroyPixelCache(clone_info);\n        return pQVar1;\n      }" { (expression_statement "clone_info = (CacheInfo *)ClonePixelCache(unaff_s1);" (assignment_expression "clone_info = (CacheInfo *)ClonePixelCache(unaff_s1)" identifier = (cast_expression "(CacheInfo *)ClonePixelCache(unaff_s1)" ( (type_descriptor "CacheInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ClonePixelCache(unaff_s1)" identifier (argument_list "(unaff_s1)" ( identifier ))))) ;) (expression_statement "clone_info->type = DiskCache;" (assignment_expression "clone_info->type = DiskCache" (field_expression "clone_info->type" identifier -> field_identifier) = identifier) ;) (expression_statement "(**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000);" (call_expression "(**(code **)(pcVar21 + 0x3a352c))(clone_info->cache_filename,unaff_s3,0x1000)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a352c))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a352c)" * (pointer_expression "*(code **)(pcVar21 + 0x3a352c)" * (cast_expression "(code **)(pcVar21 + 0x3a352c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a352c)" ( (binary_expression "pcVar21 + 0x3a352c" identifier + number_literal) ))))) )) (argument_list "(clone_info->cache_filename,unaff_s3,0x1000)" ( (field_expression "clone_info->cache_filename" identifier -> field_identifier) , identifier , number_literal ))) ;) (expression_statement "clone_info->file = -1;" (assignment_expression "clone_info->file = -1" (field_expression "clone_info->file" identifier -> field_identifier) = number_literal) ;) (expression_statement "clone_info->storage_class = unaff_s1->storage_class;" (assignment_expression "clone_info->storage_class = unaff_s1->storage_class" (field_expression "clone_info->storage_class" identifier -> field_identifier) = (field_expression "unaff_s1->storage_class" identifier -> field_identifier)) ;) (expression_statement "clone_info->colorspace = unaff_s1->colorspace;" (assignment_expression "clone_info->colorspace = unaff_s1->colorspace" (field_expression "clone_info->colorspace" identifier -> field_identifier) = (field_expression "unaff_s1->colorspace" identifier -> field_identifier)) ;) (expression_statement "clone_info->alpha_trait = unaff_s1->alpha_trait;" (assignment_expression "clone_info->alpha_trait = unaff_s1->alpha_trait" (field_expression "clone_info->alpha_trait" identifier -> field_identifier) = (field_expression "unaff_s1->alpha_trait" identifier -> field_identifier)) ;) (expression_statement "clone_info->channels = unaff_s1->channels;" (assignment_expression "clone_info->channels = unaff_s1->channels" (field_expression "clone_info->channels" identifier -> field_identifier) = (field_expression "unaff_s1->channels" identifier -> field_identifier)) ;) (expression_statement "clone_info->columns = unaff_s1->columns;" (assignment_expression "clone_info->columns = unaff_s1->columns" (field_expression "clone_info->columns" identifier -> field_identifier) = (field_expression "unaff_s1->columns" identifier -> field_identifier)) ;) (expression_statement "clone_info->rows = unaff_s1->rows;" (assignment_expression "clone_info->rows = unaff_s1->rows" (field_expression "clone_info->rows" identifier -> field_identifier) = (field_expression "unaff_s1->rows" identifier -> field_identifier)) ;) (expression_statement "clone_info->number_channels = unaff_s1->number_channels;" (assignment_expression "clone_info->number_channels = unaff_s1->number_channels" (field_expression "clone_info->number_channels" identifier -> field_identifier) = (field_expression "unaff_s1->number_channels" identifier -> field_identifier)) ;) (expression_statement "clone_info->metacontent_extent = unaff_s1->metacontent_extent;" (assignment_expression "clone_info->metacontent_extent = unaff_s1->metacontent_extent" (field_expression "clone_info->metacontent_extent" identifier -> field_identifier) = (field_expression "unaff_s1->metacontent_extent" identifier -> field_identifier)) ;) (expression_statement "clone_info->mode = PersistMode;" (assignment_expression "clone_info->mode = PersistMode" (field_expression "clone_info->mode" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar6 = *(undefined4 *)&unaff_s1->length;" (assignment_expression "uVar6 = *(undefined4 *)&unaff_s1->length" identifier = (pointer_expression "*(undefined4 *)&unaff_s1->length" * (cast_expression "(undefined4 *)&unaff_s1->length" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s1->length" & (field_expression "unaff_s1->length" identifier -> field_identifier))))) ;) (expression_statement "*(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;" (assignment_expression "*(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length" (pointer_expression "*(int *)((int)&clone_info->length + 4)" * (cast_expression "(int *)((int)&clone_info->length + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&clone_info->length + 4)" ( (binary_expression "(int)&clone_info->length + 4" (cast_expression "(int)&clone_info->length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&clone_info->length" & (field_expression "clone_info->length" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)unaff_s1->length" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s1->length" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)&clone_info->length = uVar6;" (assignment_expression "*(undefined4 *)&clone_info->length = uVar6" (pointer_expression "*(undefined4 *)&clone_info->length" * (cast_expression "(undefined4 *)&clone_info->length" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&clone_info->length" & (field_expression "clone_info->length" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pPVar9 = unaff_s1->channel_map;" (assignment_expression "pPVar9 = unaff_s1->channel_map" identifier = (field_expression "unaff_s1->channel_map" identifier -> field_identifier)) ;) (expression_statement "pPVar7 = clone_info->channel_map;" (assignment_expression "pPVar7 = clone_info->channel_map" identifier = (field_expression "clone_info->channel_map" identifier -> field_identifier)) ;) (do_statement "do {\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        } while (pPVar9 != (PixelChannelMap *)&unaff_s1->type);" do (compound_statement "{\n          PVar16 = pPVar9->traits;\n          sVar15 = pPVar9->offset;\n          PVar13 = pPVar9[1].channel;\n          pPVar7->channel = pPVar9->channel;\n          pPVar7->traits = PVar16;\n          pPVar7->offset = sVar15;\n          pPVar7[1].channel = PVar13;\n          pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;\n          pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;\n        }" { (expression_statement "PVar16 = pPVar9->traits;" (assignment_expression "PVar16 = pPVar9->traits" identifier = (field_expression "pPVar9->traits" identifier -> field_identifier)) ;) (expression_statement "sVar15 = pPVar9->offset;" (assignment_expression "sVar15 = pPVar9->offset" identifier = (field_expression "pPVar9->offset" identifier -> field_identifier)) ;) (expression_statement "PVar13 = pPVar9[1].channel;" (assignment_expression "PVar13 = pPVar9[1].channel" identifier = (field_expression "pPVar9[1].channel" (subscript_expression "pPVar9[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pPVar7->channel = pPVar9->channel;" (assignment_expression "pPVar7->channel = pPVar9->channel" (field_expression "pPVar7->channel" identifier -> field_identifier) = (field_expression "pPVar9->channel" identifier -> field_identifier)) ;) (expression_statement "pPVar7->traits = PVar16;" (assignment_expression "pPVar7->traits = PVar16" (field_expression "pPVar7->traits" identifier -> field_identifier) = identifier) ;) (expression_statement "pPVar7->offset = sVar15;" (assignment_expression "pPVar7->offset = sVar15" (field_expression "pPVar7->offset" identifier -> field_identifier) = identifier) ;) (expression_statement "pPVar7[1].channel = PVar13;" (assignment_expression "pPVar7[1].channel = PVar13" (field_expression "pPVar7[1].channel" (subscript_expression "pPVar7[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pPVar9 = (PixelChannelMap *)&pPVar9[1].traits;" (assignment_expression "pPVar9 = (PixelChannelMap *)&pPVar9[1].traits" identifier = (cast_expression "(PixelChannelMap *)&pPVar9[1].traits" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar9[1].traits" & (field_expression "pPVar9[1].traits" (subscript_expression "pPVar9[1]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "pPVar7 = (PixelChannelMap *)&pPVar7[1].traits;" (assignment_expression "pPVar7 = (PixelChannelMap *)&pPVar7[1].traits" identifier = (cast_expression "(PixelChannelMap *)&pPVar7[1].traits" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar7[1].traits" & (field_expression "pPVar7[1].traits" (subscript_expression "pPVar7[1]" identifier [ number_literal ]) . field_identifier)))) ;) }) while (parenthesized_expression "(pPVar9 != (PixelChannelMap *)&unaff_s1->type)" ( (binary_expression "pPVar9 != (PixelChannelMap *)&unaff_s1->type" identifier != (cast_expression "(PixelChannelMap *)&unaff_s1->type" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s1->type" & (field_expression "unaff_s1->type" identifier -> field_identifier)))) )) ;) (expression_statement "iVar2 = *unaff_s2;" (assignment_expression "iVar2 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "*(int *)((int)&clone_info->offset + 4) = unaff_s2[1];" (assignment_expression "*(int *)((int)&clone_info->offset + 4) = unaff_s2[1]" (pointer_expression "*(int *)((int)&clone_info->offset + 4)" * (cast_expression "(int *)((int)&clone_info->offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&clone_info->offset + 4)" ( (binary_expression "(int)&clone_info->offset + 4" (cast_expression "(int)&clone_info->offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&clone_info->offset" & (field_expression "clone_info->offset" identifier -> field_identifier))) + number_literal) )))) = (subscript_expression "unaff_s2[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)&clone_info->offset = iVar2;" (assignment_expression "*(int *)&clone_info->offset = iVar2" (pointer_expression "*(int *)&clone_info->offset" * (cast_expression "(int *)&clone_info->offset" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&clone_info->offset" & (field_expression "clone_info->offset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception);" (assignment_expression "pQVar1 = (Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception)" identifier = (cast_expression "(Quantum *)ClonePixelCacheRepository(clone_info,unaff_s1,exception)" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ClonePixelCacheRepository(clone_info,unaff_s1,exception)" identifier (argument_list "(clone_info,unaff_s1,exception)" ( identifier , identifier , identifier ))))) ;) (expression_statement "iVar17 = *(int *)&unaff_s1->length;" (assignment_expression "iVar17 = *(int *)&unaff_s1->length" identifier = (pointer_expression "*(int *)&unaff_s1->length" * (cast_expression "(int *)&unaff_s1->length" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s1->length" & (field_expression "unaff_s1->length" identifier -> field_identifier))))) ;) (expression_statement "uVar14 = (uint)unaff_s1->length;" (assignment_expression "uVar14 = (uint)unaff_s1->length" identifier = (cast_expression "(uint)unaff_s1->length" ( (type_descriptor "uint" type_identifier) ) (field_expression "unaff_s1->length" identifier -> field_identifier))) ;) (expression_statement "iVar2 = *unaff_s2;" (assignment_expression "iVar2 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "uVar4 = uVar14 + unaff_s2[1];" (assignment_expression "uVar4 = uVar14 + unaff_s2[1]" identifier = (binary_expression "uVar14 + unaff_s2[1]" identifier + (subscript_expression "unaff_s2[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = uVar4 + unaff_s5;" (assignment_expression "uVar19 = uVar4 + unaff_s5" identifier = (binary_expression "uVar4 + unaff_s5" identifier + identifier)) ;) (expression_statement "uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();" (assignment_expression "uVar22 = (**(code **)(pcVar21 + 0x3a25f4))()" identifier = (call_expression "(**(code **)(pcVar21 + 0x3a25f4))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a25f4))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a25f4)" * (pointer_expression "*(code **)(pcVar21 + 0x3a25f4)" * (cast_expression "(code **)(pcVar21 + 0x3a25f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a25f4)" ( (binary_expression "pcVar21 + 0x3a25f4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = uVar19 - (int)uVar22;" (assignment_expression "uVar8 = uVar19 - (int)uVar22" identifier = (binary_expression "uVar19 - (int)uVar22" identifier - (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);" (assignment_expression "*unaff_s2 = (((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8)" (pointer_expression "*unaff_s2" * identifier) = (binary_expression "(((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8)" (parenthesized_expression "(((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20))" ( (binary_expression "((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar22 >> 0x20)" (parenthesized_expression "((uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f))" ( (binary_expression "(uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)" (binary_expression "(uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17 + iVar2" (binary_expression "(uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14) + iVar17" (binary_expression "(uint)(uVar19 < uVar4) +\n                     (uint)(uVar4 < uVar14)" (call_expression "(uint)(uVar19 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar4)" ( (binary_expression "uVar19 < uVar4" identifier < identifier) ))) + (call_expression "(uint)(uVar4 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar14)" ( (binary_expression "uVar4 < uVar14" identifier < identifier) )))) + identifier) + identifier) + (parenthesized_expression "(unaff_s5 >> 0x1f)" ( (binary_expression "unaff_s5 >> 0x1f" identifier >> number_literal) ))) )) - (cast_expression "(int)((ulonglong)uVar22 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar22 >> 0x20)" ( (binary_expression "(ulonglong)uVar22 >> 0x20" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) - (call_expression "(uint)(uVar19 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar8)" ( (binary_expression "uVar19 < uVar8" identifier < identifier) ))))) ;) (expression_statement "unaff_s2[1] = uVar8;" (assignment_expression "unaff_s2[1] = uVar8" (subscript_expression "unaff_s2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "DestroyPixelCache(clone_info);" (call_expression "DestroyPixelCache(clone_info)" identifier (argument_list "(clone_info)" ( identifier ))) ;) (return_statement "return pQVar1;" return identifier ;) })) (expression_statement "(**(code **)(pcVar21 + 0x3a2c10))\n                (exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,\n                 image->filename);" (call_expression "(**(code **)(pcVar21 + 0x3a2c10))\n                (exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,\n                 image->filename)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a2c10))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a2c10)" * (pointer_expression "*(code **)(pcVar21 + 0x3a2c10)" * (cast_expression "(code **)(pcVar21 + 0x3a2c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a2c10)" ( (binary_expression "pcVar21 + 0x3a2c10" identifier + number_literal) ))))) )) (argument_list "(exception,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,\n                 *(int *)(pcVar21 + 0x3a25b8) + 0x5b98,*(int *)(pcVar21 + 0x3a25b8) + 0x6e78,\n                 image->filename)" ( identifier , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x5b98" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x6e78" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (return_statement "return (Quantum *)0x0;" return (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar2 = *(int *)(pcVar21 + 0x3a25b8);" (assignment_expression "iVar2 = *(int *)(pcVar21 + 0x3a25b8)" identifier = (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) ))))) ;) (if_statement "if (image->debug == MagickFalse) goto LAB_000573e8;" if (parenthesized_expression "(image->debug == MagickFalse)" ( (binary_expression "image->debug == MagickFalse" (field_expression "image->debug" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_000573e8;" goto statement_identifier ;)) }))) (expression_statement "(**(code **)(pcVar21 + 0x3a2ed0))\n            (8,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar2 + 0x5ca0);" (call_expression "(**(code **)(pcVar21 + 0x3a2ed0))\n            (8,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar2 + 0x5ca0)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a2ed0))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a2ed0)" * (pointer_expression "*(code **)(pcVar21 + 0x3a2ed0)" * (cast_expression "(code **)(pcVar21 + 0x3a2ed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a2ed0)" ( (binary_expression "pcVar21 + 0x3a2ed0" identifier + number_literal) ))))) )) (argument_list "(8,*(int *)(pcVar21 + 0x3a25b8) + 0x57f0,*(int *)(pcVar21 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar2 + 0x5ca0)" ( number_literal , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar21 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar21 + 0x3a25b8)" * (cast_expression "(int *)(pcVar21 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x3a25b8)" ( (binary_expression "pcVar21 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar2 + 0x5ca0" identifier + number_literal) ))) ;) (labeled_statement "LAB_000573e8:\n  (**(code **)(pcVar21 + 0x3a352c))(unaff_s1->cache_filename,unaff_s3,0x1000);" statement_identifier : (expression_statement "(**(code **)(pcVar21 + 0x3a352c))(unaff_s1->cache_filename,unaff_s3,0x1000);" (call_expression "(**(code **)(pcVar21 + 0x3a352c))(unaff_s1->cache_filename,unaff_s3,0x1000)" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a352c))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a352c)" * (pointer_expression "*(code **)(pcVar21 + 0x3a352c)" * (cast_expression "(code **)(pcVar21 + 0x3a352c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a352c)" ( (binary_expression "pcVar21 + 0x3a352c" identifier + number_literal) ))))) )) (argument_list "(unaff_s1->cache_filename,unaff_s3,0x1000)" ( (field_expression "unaff_s1->cache_filename" identifier -> field_identifier) , identifier , number_literal ))) ;)) (expression_statement "unaff_s1->type = MapCache;" (assignment_expression "unaff_s1->type = MapCache" (field_expression "unaff_s1->type" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar2 = *unaff_s2;" (assignment_expression "iVar2 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "*(int *)((int)&unaff_s1->offset + 4) = unaff_s2[1];" (assignment_expression "*(int *)((int)&unaff_s1->offset + 4) = unaff_s2[1]" (pointer_expression "*(int *)((int)&unaff_s1->offset + 4)" * (cast_expression "(int *)((int)&unaff_s1->offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s1->offset + 4)" ( (binary_expression "(int)&unaff_s1->offset + 4" (cast_expression "(int)&unaff_s1->offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s1->offset" & (field_expression "unaff_s1->offset" identifier -> field_identifier))) + number_literal) )))) = (subscript_expression "unaff_s2[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)&unaff_s1->offset = iVar2;" (assignment_expression "*(int *)&unaff_s1->offset = iVar2" (pointer_expression "*(int *)&unaff_s1->offset" * (cast_expression "(int *)&unaff_s1->offset" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s1->offset" & (field_expression "unaff_s1->offset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pQVar1 = (Quantum *)OpenPixelCache(image,ReadMode,exception);" (assignment_expression "pQVar1 = (Quantum *)OpenPixelCache(image,ReadMode,exception)" identifier = (cast_expression "(Quantum *)OpenPixelCache(image,ReadMode,exception)" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OpenPixelCache(image,ReadMode,exception)" identifier (argument_list "(image,ReadMode,exception)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (pQVar1 != (Quantum *)0x0) {\n    iVar17 = *(int *)&unaff_s1->length;\n    uVar14 = (uint)unaff_s1->length;\n    iVar2 = *unaff_s2;\n    uVar4 = uVar14 + unaff_s2[1];\n    uVar19 = uVar4 + unaff_s5;\n    uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n    uVar8 = uVar19 - (int)uVar22;\n    *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n    unaff_s2[1] = uVar8;\n    pQVar1 = (Quantum *)0x1;\n  }" if (parenthesized_expression "(pQVar1 != (Quantum *)0x0)" ( (binary_expression "pQVar1 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar17 = *(int *)&unaff_s1->length;\n    uVar14 = (uint)unaff_s1->length;\n    iVar2 = *unaff_s2;\n    uVar4 = uVar14 + unaff_s2[1];\n    uVar19 = uVar4 + unaff_s5;\n    uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();\n    uVar8 = uVar19 - (int)uVar22;\n    *unaff_s2 = (((uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);\n    unaff_s2[1] = uVar8;\n    pQVar1 = (Quantum *)0x1;\n  }" { (expression_statement "iVar17 = *(int *)&unaff_s1->length;" (assignment_expression "iVar17 = *(int *)&unaff_s1->length" identifier = (pointer_expression "*(int *)&unaff_s1->length" * (cast_expression "(int *)&unaff_s1->length" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s1->length" & (field_expression "unaff_s1->length" identifier -> field_identifier))))) ;) (expression_statement "uVar14 = (uint)unaff_s1->length;" (assignment_expression "uVar14 = (uint)unaff_s1->length" identifier = (cast_expression "(uint)unaff_s1->length" ( (type_descriptor "uint" type_identifier) ) (field_expression "unaff_s1->length" identifier -> field_identifier))) ;) (expression_statement "iVar2 = *unaff_s2;" (assignment_expression "iVar2 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "uVar4 = uVar14 + unaff_s2[1];" (assignment_expression "uVar4 = uVar14 + unaff_s2[1]" identifier = (binary_expression "uVar14 + unaff_s2[1]" identifier + (subscript_expression "unaff_s2[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = uVar4 + unaff_s5;" (assignment_expression "uVar19 = uVar4 + unaff_s5" identifier = (binary_expression "uVar4 + unaff_s5" identifier + identifier)) ;) (expression_statement "uVar22 = (**(code **)(pcVar21 + 0x3a25f4))();" (assignment_expression "uVar22 = (**(code **)(pcVar21 + 0x3a25f4))()" identifier = (call_expression "(**(code **)(pcVar21 + 0x3a25f4))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x3a25f4))" ( (pointer_expression "**(code **)(pcVar21 + 0x3a25f4)" * (pointer_expression "*(code **)(pcVar21 + 0x3a25f4)" * (cast_expression "(code **)(pcVar21 + 0x3a25f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x3a25f4)" ( (binary_expression "pcVar21 + 0x3a25f4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = uVar19 - (int)uVar22;" (assignment_expression "uVar8 = uVar19 - (int)uVar22" identifier = (binary_expression "uVar19 - (int)uVar22" identifier - (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*unaff_s2 = (((uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8);" (assignment_expression "*unaff_s2 = (((uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8)" (pointer_expression "*unaff_s2" * identifier) = (binary_expression "(((uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar22 >> 0x20)) - (uint)(uVar19 < uVar8)" (parenthesized_expression "(((uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar22 >> 0x20))" ( (binary_expression "((uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar22 >> 0x20)" (parenthesized_expression "((uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f))" ( (binary_expression "(uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2 + (unaff_s5 >> 0x1f)" (binary_expression "(uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17 + iVar2" (binary_expression "(uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14) + iVar17" (binary_expression "(uint)(uVar19 < uVar4) +\n                 (uint)(uVar4 < uVar14)" (call_expression "(uint)(uVar19 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar4)" ( (binary_expression "uVar19 < uVar4" identifier < identifier) ))) + (call_expression "(uint)(uVar4 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar14)" ( (binary_expression "uVar4 < uVar14" identifier < identifier) )))) + identifier) + identifier) + (parenthesized_expression "(unaff_s5 >> 0x1f)" ( (binary_expression "unaff_s5 >> 0x1f" identifier >> number_literal) ))) )) - (cast_expression "(int)((ulonglong)uVar22 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar22 >> 0x20)" ( (binary_expression "(ulonglong)uVar22 >> 0x20" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) - (call_expression "(uint)(uVar19 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar8)" ( (binary_expression "uVar19 < uVar8" identifier < identifier) ))))) ;) (expression_statement "unaff_s2[1] = uVar8;" (assignment_expression "unaff_s2[1] = uVar8" (subscript_expression "unaff_s2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pQVar1 = (Quantum *)0x1;" (assignment_expression "pQVar1 = (Quantum *)0x1" identifier = (cast_expression "(Quantum *)0x1" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (return_statement "return pQVar1;" return identifier ;) })))
(translation_unit "int FUN_00056fc0(int *param_1,int param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 *unaff_s1;\n  uint uVar16;\n  int *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int unaff_s5;\n  undefined *puVar17;\n  code *pcVar18;\n  code *pcVar19;\n  undefined8 uVar20;\n  \n  if (param_1 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }\n  puVar8 = PTR_LAB_003f98e0 + 0x5804;\n  puVar17 = PTR___assert_fail_003fa620;\n  (*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);\n  iVar1 = (**(code **)(puVar17 + 0x3a34cc))();\n  if (puVar8 == (undefined *)0x0) {\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }\n  iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;\n  pcVar18 = *(code **)(puVar17 + 0x3a35cc);\n  (*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            );\n  pcVar19 = pcVar18 + 0x3aa704;\n  iVar14 = (**(code **)(pcVar18 + 0x3a3374))();\n  if (iVar1 == 0) {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }\n  if (iVar14 < *(int *)(iVar10 + 0x3a0)) {\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }\n  piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);\n  iVar10 = 0xc7d;\n  iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;\n  iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;\n  pcVar18 = *(code **)(pcVar18 + 0x3a3474);\n  (*pcVar18)();\n  if (iVar14 == 0) {\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }\n  else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }\n  if (iVar14 == 0) {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }\n  else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }\n  (**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0);\nLAB_000573e8:\n  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);\n  unaff_s1[200] = 3;\n  iVar14 = *unaff_s2;\n  unaff_s1[0xcd] = unaff_s2[1];\n  unaff_s1[0xcc] = iVar14;\n  iVar1 = FUN_00051e60(iVar1,0,pcVar19);\n  if (iVar1 != 0) {\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }\n  return iVar1;\n}\n\n" (function_definition "int FUN_00056fc0(int *param_1,int param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 *unaff_s1;\n  uint uVar16;\n  int *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int unaff_s5;\n  undefined *puVar17;\n  code *pcVar18;\n  code *pcVar19;\n  undefined8 uVar20;\n  \n  if (param_1 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }\n  puVar8 = PTR_LAB_003f98e0 + 0x5804;\n  puVar17 = PTR___assert_fail_003fa620;\n  (*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);\n  iVar1 = (**(code **)(puVar17 + 0x3a34cc))();\n  if (puVar8 == (undefined *)0x0) {\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }\n  iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;\n  pcVar18 = *(code **)(puVar17 + 0x3a35cc);\n  (*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            );\n  pcVar19 = pcVar18 + 0x3aa704;\n  iVar14 = (**(code **)(pcVar18 + 0x3a3374))();\n  if (iVar1 == 0) {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }\n  if (iVar14 < *(int *)(iVar10 + 0x3a0)) {\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }\n  piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);\n  iVar10 = 0xc7d;\n  iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;\n  iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;\n  pcVar18 = *(code **)(pcVar18 + 0x3a3474);\n  (*pcVar18)();\n  if (iVar14 == 0) {\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }\n  else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }\n  if (iVar14 == 0) {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }\n  else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }\n  (**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0);\nLAB_000573e8:\n  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);\n  unaff_s1[200] = 3;\n  iVar14 = *unaff_s2;\n  unaff_s1[0xcd] = unaff_s2[1];\n  unaff_s1[0xcc] = iVar14;\n  iVar1 = FUN_00051e60(iVar1,0,pcVar19);\n  if (iVar1 != 0) {\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }\n  return iVar1;\n}" primitive_type (function_declarator "FUN_00056fc0(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 *unaff_s1;\n  uint uVar16;\n  int *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int unaff_s5;\n  undefined *puVar17;\n  code *pcVar18;\n  code *pcVar19;\n  undefined8 uVar20;\n  \n  if (param_1 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }\n  puVar8 = PTR_LAB_003f98e0 + 0x5804;\n  puVar17 = PTR___assert_fail_003fa620;\n  (*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);\n  iVar1 = (**(code **)(puVar17 + 0x3a34cc))();\n  if (puVar8 == (undefined *)0x0) {\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }\n  iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;\n  pcVar18 = *(code **)(puVar17 + 0x3a35cc);\n  (*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            );\n  pcVar19 = pcVar18 + 0x3aa704;\n  iVar14 = (**(code **)(pcVar18 + 0x3a3374))();\n  if (iVar1 == 0) {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }\n  if (iVar14 < *(int *)(iVar10 + 0x3a0)) {\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }\n  piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);\n  iVar10 = 0xc7d;\n  iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;\n  iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;\n  pcVar18 = *(code **)(pcVar18 + 0x3a3474);\n  (*pcVar18)();\n  if (iVar14 == 0) {\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }\n  else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }\n  if (iVar14 == 0) {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }\n  else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }\n  (**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0);\nLAB_000573e8:\n  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);\n  unaff_s1[200] = 3;\n  iVar14 = *unaff_s2;\n  unaff_s1[0xcd] = unaff_s2[1];\n  unaff_s1[0xcc] = iVar14;\n  iVar1 = FUN_00051e60(iVar1,0,pcVar19);\n  if (iVar1 != 0) {\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined4 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "int unaff_s4;" primitive_type identifier ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "undefined8 uVar20;" type_identifier identifier ;) (if_statement "if (param_1 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\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    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x59e0" identifier + number_literal) , (binary_expression "PTR_LAB_003f98e0 + 0x57f0" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_003f98e0 + 0x60d8" identifier + number_literal) ))) ;) }) (else_clause "else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }" else (if_statement "if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }" if (parenthesized_expression "(param_1[0x901] == -0x54535255)" ( (binary_expression "param_1[0x901] == -0x54535255" (subscript_expression "param_1[0x901]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (if_statement "if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }" if (parenthesized_expression "(*param_1 != 0)" ( (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) )) (compound_statement "{\n      iVar1 = *(int *)(param_2 + 0x24);\n    }" { (expression_statement "iVar1 = *(int *)(param_2 + 0x24);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x24)" identifier = (pointer_expression "*(int *)(param_2 + 0x24)" * (cast_expression "(int *)(param_2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) ))))) ;) })) (return_statement "return iVar1;" return identifier ;) })))) (expression_statement "puVar8 = PTR_LAB_003f98e0 + 0x5804;" (assignment_expression "puVar8 = PTR_LAB_003f98e0 + 0x5804" identifier = (binary_expression "PTR_LAB_003f98e0 + 0x5804" identifier + number_literal)) ;) (expression_statement "puVar17 = PTR___assert_fail_003fa620;" (assignment_expression "puVar17 = PTR___assert_fail_003fa620" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);" (call_expression "(*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17)" ( identifier , (binary_expression "PTR_LAB_003f98e0 + 0x57f0" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar1 = (**(code **)(puVar17 + 0x3a34cc))();" (assignment_expression "iVar1 = (**(code **)(puVar17 + 0x3a34cc))()" identifier = (call_expression "(**(code **)(puVar17 + 0x3a34cc))()" (parenthesized_expression "(**(code **)(puVar17 + 0x3a34cc))" ( (pointer_expression "**(code **)(puVar17 + 0x3a34cc)" * (pointer_expression "*(code **)(puVar17 + 0x3a34cc)" * (cast_expression "(code **)(puVar17 + 0x3a34cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a34cc)" ( (binary_expression "puVar17 + 0x3a34cc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (puVar8 == (undefined *)0x0) {\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }" if (parenthesized_expression "(puVar8 == (undefined *)0x0)" ( (binary_expression "puVar8 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }" { (expression_statement "iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;" (assignment_expression "iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8" identifier = (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x62a8" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" * (cast_expression "(code **)(puVar17 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a35cc)" ( (binary_expression "puVar17 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14)" ( (binary_expression "*(int *)(puVar17 + 0x3a2890) + -0x7b0" (pointer_expression "*(int *)(puVar17 + 0x3a2890)" * (cast_expression "(int *)(puVar17 + 0x3a2890)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a2890)" ( (binary_expression "puVar17 + 0x3a2890" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;" statement_identifier : (expression_statement "iVar14 = iVar14 + 0x62a8;" (assignment_expression "iVar14 = iVar14 + 0x62a8" identifier = (binary_expression "iVar14 + 0x62a8" identifier + number_literal)) ;)) (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" * (cast_expression "(code **)(puVar17 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a35cc)" ( (binary_expression "puVar17 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14)" ( (binary_expression "*(int *)(puVar17 + 0x3a2890) + -0x784" (pointer_expression "*(int *)(puVar17 + 0x3a2890)" * (cast_expression "(int *)(puVar17 + 0x3a2890)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a2890)" ( (binary_expression "puVar17 + 0x3a2890" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);" statement_identifier : (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" * (cast_expression "(code **)(puVar17 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a35cc)" ( (binary_expression "puVar17 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8)" ( (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x6818" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar14 + 0x62a8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);" statement_identifier : (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" ( (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" * (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" * (cast_expression "(code **)(puVar17 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a35cc)" ( (binary_expression "puVar17 + 0x3a35cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0)" ( (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x5804" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal ))) ;)) }) (else_clause "else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }" else (compound_statement "{\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }" { (expression_statement "iVar14 = *(int *)(puVar17 + 0x3a288c);" (assignment_expression "iVar14 = *(int *)(puVar17 + 0x3a288c)" identifier = (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;" if (parenthesized_expression "(*(int *)(puVar8 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(puVar8 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(puVar8 + 0x336c)" * (cast_expression "(int *)(puVar8 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x336c)" ( (binary_expression "puVar8 + 0x336c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0005711c;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(puVar8 + 0x2d4);" (assignment_expression "iVar9 = *(int *)(puVar8 + 0x2d4)" identifier = (pointer_expression "*(int *)(puVar8 + 0x2d4)" * (cast_expression "(int *)(puVar8 + 0x2d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x2d4)" ( (binary_expression "puVar8 + 0x2d4" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) goto LAB_00057140;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00057140;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;" if (parenthesized_expression "(*(int *)(iVar9 + 0x2404) != -0x54535255)" ( (binary_expression "*(int *)(iVar9 + 0x2404) != -0x54535255" (pointer_expression "*(int *)(iVar9 + 0x2404)" * (cast_expression "(int *)(iVar9 + 0x2404)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x2404)" ( (binary_expression "iVar9 + 0x2404" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00057164;" goto statement_identifier ;)) (if_statement "if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }" if (parenthesized_expression "(iVar1 < *(int *)(iVar9 + 0x3a0))" ( (binary_expression "iVar1 < *(int *)(iVar9 + 0x3a0)" identifier < (pointer_expression "*(int *)(iVar9 + 0x3a0)" * (cast_expression "(int *)(iVar9 + 0x3a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x3a0)" ( (binary_expression "iVar9 + 0x3a0" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }" { (expression_statement "iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));" (assignment_expression "iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4))" identifier = (call_expression "FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4))" identifier (argument_list "(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4))" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4)" * (cast_expression "(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x3a4) + iVar1 * 4)" ( (binary_expression "*(int *)(iVar9 + 0x3a4) + iVar1 * 4" (pointer_expression "*(int *)(iVar9 + 0x3a4)" * (cast_expression "(int *)(iVar9 + 0x3a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x3a4)" ( (binary_expression "iVar9 + 0x3a4" identifier + number_literal) )))) + (binary_expression "iVar1 * 4" identifier * number_literal)) )))) )))) ;) (return_statement "return iVar1;" return identifier ;) })) }))) (expression_statement "iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;" (assignment_expression "iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834" identifier = (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x5834" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar18 = *(code **)(puVar17 + 0x3a35cc);" (assignment_expression "pcVar18 = *(code **)(puVar17 + 0x3a35cc)" identifier = (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" * (cast_expression "(code **)(puVar17 + 0x3a35cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x3a35cc)" ( (binary_expression "puVar17 + 0x3a35cc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            );" (call_expression "(*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            )" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            )" ( identifier , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x62a8" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" * (cast_expression "(int *)(puVar17 + 0x3a288c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x3a288c)" ( (binary_expression "puVar17 + 0x3a288c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar19 = pcVar18 + 0x3aa704;" (assignment_expression "pcVar19 = pcVar18 + 0x3aa704" identifier = (binary_expression "pcVar18 + 0x3aa704" identifier + number_literal)) ;) (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a3374))();" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a3374))()" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a3374))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3374))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a3374)" * (pointer_expression "*(code **)(pcVar18 + 0x3a3374)" * (cast_expression "(code **)(pcVar18 + 0x3a3374)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3374)" ( (binary_expression "pcVar18 + 0x3a3374" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }" { (expression_statement "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;" (assignment_expression "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104" identifier = (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x6104" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);" (call_expression "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" * (cast_expression "(code **)(pcVar18 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3474)" ( (binary_expression "pcVar18 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9)" ( (binary_expression "*(int *)(pcVar18 + 0x3a2738) + -0x7b0" (pointer_expression "*(int *)(pcVar18 + 0x3a2738)" * (cast_expression "(int *)(pcVar18 + 0x3a2738)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2738)" ( (binary_expression "pcVar18 + 0x3a2738" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00057264:\n    iVar9 = iVar9 + 0x6104;" statement_identifier : (expression_statement "iVar9 = iVar9 + 0x6104;" (assignment_expression "iVar9 = iVar9 + 0x6104" identifier = (binary_expression "iVar9 + 0x6104" identifier + number_literal)) ;)) (expression_statement "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);" (call_expression "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" * (cast_expression "(code **)(pcVar18 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3474)" ( (binary_expression "pcVar18 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9)" ( (binary_expression "*(int *)(pcVar18 + 0x3a2738) + -0x784" (pointer_expression "*(int *)(pcVar18 + 0x3a2738)" * (cast_expression "(int *)(pcVar18 + 0x3a2738)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2738)" ( (binary_expression "pcVar18 + 0x3a2738" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);" statement_identifier : (expression_statement "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);" (call_expression "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" * (cast_expression "(code **)(pcVar18 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3474)" ( (binary_expression "pcVar18 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104)" ( (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x6818" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar9 + 0x6104" identifier + number_literal) ))) ;)) (labeled_statement "LAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;" statement_identifier : (expression_statement "iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;" (assignment_expression "iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804" identifier = (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x5804" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79)" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" * (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" * (cast_expression "(code **)(pcVar18 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3474)" ( (binary_expression "pcVar18 + 0x3a3474" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79)" ( identifier , (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) }) (else_clause "else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }" else (compound_statement "{\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }" { (expression_statement "iVar9 = *(int *)(pcVar18 + 0x3a2734);" (assignment_expression "iVar9 = *(int *)(pcVar18 + 0x3a2734)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;" if (parenthesized_expression "(*(int *)(iVar1 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar1 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar1 + 0x336c)" * (cast_expression "(int *)(iVar1 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x336c)" ( (binary_expression "iVar1 + 0x336c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00057264;" goto statement_identifier ;)) (expression_statement "iVar10 = *(int *)(iVar1 + 0x2d4);" (assignment_expression "iVar10 = *(int *)(iVar1 + 0x2d4)" identifier = (pointer_expression "*(int *)(iVar1 + 0x2d4)" * (cast_expression "(int *)(iVar1 + 0x2d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2d4)" ( (binary_expression "iVar1 + 0x2d4" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) goto LAB_00057288;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00057288;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;" if (parenthesized_expression "(*(int *)(iVar10 + 0x2404) != -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x2404) != -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x2404)" * (cast_expression "(int *)(iVar10 + 0x2404)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2404)" ( (binary_expression "iVar10 + 0x2404" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000572ac;" goto statement_identifier ;)) (if_statement "if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }" if (parenthesized_expression "(*(code **)(iVar10 + 0x23b8) != (code *)0x0)" ( (binary_expression "*(code **)(iVar10 + 0x23b8) != (code *)0x0" (pointer_expression "*(code **)(iVar10 + 0x23b8)" * (cast_expression "(code **)(iVar10 + 0x23b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x23b8)" ( (binary_expression "iVar10 + 0x23b8" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }" { (expression_statement "iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);" (assignment_expression "iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1)" identifier = (call_expression "(**(code **)(iVar10 + 0x23b8))(iVar1)" (parenthesized_expression "(**(code **)(iVar10 + 0x23b8))" ( (pointer_expression "**(code **)(iVar10 + 0x23b8)" * (pointer_expression "*(code **)(iVar10 + 0x23b8)" * (cast_expression "(code **)(iVar10 + 0x23b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x23b8)" ( (binary_expression "iVar10 + 0x23b8" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier )))) ;) (return_statement "return iVar1;" return identifier ;) })) }))) (if_statement "if (iVar14 < *(int *)(iVar10 + 0x3a0)) {\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }" if (parenthesized_expression "(iVar14 < *(int *)(iVar10 + 0x3a0))" ( (binary_expression "iVar14 < *(int *)(iVar10 + 0x3a0)" identifier < (pointer_expression "*(int *)(iVar10 + 0x3a0)" * (cast_expression "(int *)(iVar10 + 0x3a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3a0)" ( (binary_expression "iVar10 + 0x3a0" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }" { (expression_statement "iVar1 = FUN_00056fc0();" (assignment_expression "iVar1 = FUN_00056fc0()" identifier = (call_expression "FUN_00056fc0()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);" (assignment_expression "piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104)" identifier = (cast_expression "(int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0x3a2734) + 0x6104)" ( (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x6104" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar10 = 0xc7d;" (assignment_expression "iVar10 = 0xc7d" identifier = number_literal) ;) (expression_statement "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;" (assignment_expression "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0" identifier = (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834" identifier = (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x5834" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" * (cast_expression "(int *)(pcVar18 + 0x3a2734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a2734)" ( (binary_expression "pcVar18 + 0x3a2734" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x3a3474);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x3a3474)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" * (cast_expression "(code **)(pcVar18 + 0x3a3474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a3474)" ( (binary_expression "pcVar18 + 0x3a3474" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar14 == 0) {\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }\n  else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }" { (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x3da0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);" statement_identifier : (expression_statement "iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);" (assignment_expression "iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25bc) + -0x784" (pointer_expression "*(int *)(pcVar18 + 0x3a25bc)" * (cast_expression "(int *)(pcVar18 + 0x3a25bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25bc)" ( (binary_expression "pcVar18 + 0x3a25bc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) )))) ;)) (labeled_statement "LAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);" statement_identifier : (expression_statement "(**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);" (call_expression "(**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2ed0))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a2ed0)" * (pointer_expression "*(code **)(pcVar18 + 0x3a2ed0)" * (cast_expression "(code **)(pcVar18 + 0x3a2ed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a2ed0)" ( (binary_expression "pcVar18 + 0x3a2ed0" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9)" ( number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c" (pointer_expression "*(int *)(pcVar18 + 0x3a25c0)" * (cast_expression "(int *)(pcVar18 + 0x3a25c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25c0)" ( (binary_expression "pcVar18 + 0x3a25c0" identifier + number_literal) )))) + number_literal) , identifier ))) ;)) (expression_statement "iVar14 = *(int *)(iVar1 + 0x2d4);" (assignment_expression "iVar14 = *(int *)(iVar1 + 0x2d4)" identifier = (pointer_expression "*(int *)(iVar1 + 0x2d4)" * (cast_expression "(int *)(iVar1 + 0x2d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2d4)" ( (binary_expression "iVar1 + 0x2d4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }" else (compound_statement "{\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }" { (expression_statement "iVar1 = iVar14;" (assignment_expression "iVar1 = iVar14" identifier = identifier) ;) (expression_statement "unaff_s2 = piVar15;" (assignment_expression "unaff_s2 = piVar15" identifier = identifier) ;) (expression_statement "unaff_s3 = iVar9;" (assignment_expression "unaff_s3 = iVar9" identifier = identifier) ;) (expression_statement "unaff_s4 = iVar10;" (assignment_expression "unaff_s4 = iVar10" identifier = identifier) ;) (if_statement "if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;" if (parenthesized_expression "(*(int *)(iVar14 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar14 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar14 + 0x336c)" * (cast_expression "(int *)(iVar14 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x336c)" ( (binary_expression "iVar14 + 0x336c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000574f0;" goto statement_identifier ;)) (expression_statement "iVar9 = iVar14 + 0x340;" (assignment_expression "iVar9 = iVar14 + 0x340" identifier = (binary_expression "iVar14 + 0x340" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;" if (parenthesized_expression "(*(int *)(iVar14 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x3350) != 0" (pointer_expression "*(int *)(iVar14 + 0x3350)" * (cast_expression "(int *)(iVar14 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x3350)" ( (binary_expression "iVar14 + 0x3350" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00057518;" goto statement_identifier ;)) (expression_statement "iVar14 = *(int *)(iVar14 + 0x2d4);" (assignment_expression "iVar14 = *(int *)(iVar14 + 0x2d4)" identifier = (pointer_expression "*(int *)(iVar14 + 0x2d4)" * (cast_expression "(int *)(iVar14 + 0x2d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x2d4)" ( (binary_expression "iVar14 + 0x2d4" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar14 == 0) {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }\n  else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }" { (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4" identifier = (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;" statement_identifier : (expression_statement "iVar14 = iVar14 + 0x60c4;" (assignment_expression "iVar14 = iVar14 + 0x60c4" identifier = (binary_expression "iVar14 + 0x60c4" identifier + number_literal)) ;)) (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;" statement_identifier : (expression_statement "iVar14 = iVar14 + 0x60c4;" (assignment_expression "iVar14 = iVar14 + 0x60c4" identifier = (binary_expression "iVar14 + 0x60c4" identifier + number_literal)) ;)) (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);" statement_identifier : (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4)" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" * (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" * (cast_expression "(code **)(pcVar18 + 0x3a32f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a32f8)" ( (binary_expression "pcVar18 + 0x3a32f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4)" ( (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5804" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar14 + 0x60c4" identifier + number_literal) )))) ;)) }) (else_clause "else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }" else (compound_statement "{\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }" { (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8);" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s3 == 0) goto LAB_0005757c;" if (parenthesized_expression "(unaff_s3 == 0)" ( (binary_expression "unaff_s3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005757c;" goto statement_identifier ;)) (if_statement "if (unaff_s2 == (int *)0x0) goto LAB_000575a0;" if (parenthesized_expression "(unaff_s2 == (int *)0x0)" ( (binary_expression "unaff_s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000575a0;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();" (assignment_expression "unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))()" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a2650))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2650))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a2650)" * (pointer_expression "*(code **)(pcVar18 + 0x3a2650)" * (cast_expression "(code **)(pcVar18 + 0x3a2650)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a2650)" ( (binary_expression "pcVar18 + 0x3a2650" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);" (assignment_expression "unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x2d4)" * (cast_expression "(undefined4 **)(iVar1 + 0x2d4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x2d4)" ( (binary_expression "iVar1 + 0x2d4" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8);" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;" if (parenthesized_expression "(unaff_s1[0x901] != -0x54535255)" ( (binary_expression "unaff_s1[0x901] != -0x54535255" (subscript_expression "unaff_s1[0x901]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000575c4;" goto statement_identifier ;)) (if_statement "if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }" if (parenthesized_expression "(unaff_s4 == 0)" ( (binary_expression "unaff_s4 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }" { (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2)" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a350c))(2)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a350c))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a350c)" * (pointer_expression "*(code **)(pcVar18 + 0x3a350c)" * (cast_expression "(code **)(pcVar18 + 0x3a350c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a350c)" ( (binary_expression "pcVar18 + 0x3a350c" identifier + number_literal) ))))) )) (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }" { (expression_statement "puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);" (assignment_expression "puVar3 = (undefined4 *)FUN_000508d4(unaff_s1)" identifier = (cast_expression "(undefined4 *)FUN_000508d4(unaff_s1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000508d4(unaff_s1)" identifier (argument_list "(unaff_s1)" ( identifier ))))) ;) (expression_statement "puVar3[200] = 1;" (assignment_expression "puVar3[200] = 1" (subscript_expression "puVar3[200]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);" (call_expression "(**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a352c))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a352c)" * (pointer_expression "*(code **)(pcVar18 + 0x3a352c)" * (cast_expression "(code **)(pcVar18 + 0x3a352c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a352c)" ( (binary_expression "pcVar18 + 0x3a352c" identifier + number_literal) ))))) )) (argument_list "(puVar3 + 0x4ed,unaff_s3,0x1000)" ( (binary_expression "puVar3 + 0x4ed" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "puVar3[0xec] = 0xffffffff;" (assignment_expression "puVar3[0xec] = 0xffffffff" (subscript_expression "puVar3[0xec]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar3 = *unaff_s1;" (assignment_expression "*puVar3 = *unaff_s1" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*unaff_s1" * identifier)) ;) (expression_statement "puVar3[1] = unaff_s1[1];" (assignment_expression "puVar3[1] = unaff_s1[1]" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[1]" identifier [ number_literal ])) ;) (expression_statement "puVar3[2] = unaff_s1[2];" (assignment_expression "puVar3[2] = unaff_s1[2]" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[2]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = unaff_s1[3];" (assignment_expression "puVar3[3] = unaff_s1[3]" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[3]" identifier [ number_literal ])) ;) (expression_statement "puVar3[4] = unaff_s1[4];" (assignment_expression "puVar3[4] = unaff_s1[4]" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[4]" identifier [ number_literal ])) ;) (expression_statement "puVar3[5] = unaff_s1[5];" (assignment_expression "puVar3[5] = unaff_s1[5]" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[5]" identifier [ number_literal ])) ;) (expression_statement "puVar3[7] = unaff_s1[7];" (assignment_expression "puVar3[7] = unaff_s1[7]" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[7]" identifier [ number_literal ])) ;) (expression_statement "puVar3[6] = unaff_s1[6];" (assignment_expression "puVar3[6] = unaff_s1[6]" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[6]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xc9] = 3;" (assignment_expression "puVar3[0xc9] = 3" (subscript_expression "puVar3[0xc9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar4 = unaff_s1[0xce];" (assignment_expression "uVar4 = unaff_s1[0xce]" identifier = (subscript_expression "unaff_s1[0xce]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xcf] = unaff_s1[0xcf];" (assignment_expression "puVar3[0xcf] = unaff_s1[0xcf]" (subscript_expression "puVar3[0xcf]" identifier [ number_literal ]) = (subscript_expression "unaff_s1[0xcf]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xce] = uVar4;" (assignment_expression "puVar3[0xce] = uVar4" (subscript_expression "puVar3[0xce]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = unaff_s1 + 8;" (assignment_expression "puVar7 = unaff_s1 + 8" identifier = (binary_expression "unaff_s1 + 8" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar3 + 8;" (assignment_expression "puVar5 = puVar3 + 8" identifier = (binary_expression "puVar3 + 8" identifier + number_literal)) ;) (do_statement "do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);" do (compound_statement "{\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        }" { (expression_statement "uVar13 = puVar7[1];" (assignment_expression "uVar13 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = puVar7[2];" (assignment_expression "uVar12 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar7[3];" (assignment_expression "uVar4 = puVar7[3]" identifier = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar7;" (assignment_expression "*puVar5 = *puVar7" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar5[1] = uVar13;" (assignment_expression "puVar5[1] = uVar13" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar12;" (assignment_expression "puVar5[2] = uVar12" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar4;" (assignment_expression "puVar5[3] = uVar4" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar7 + 4;" (assignment_expression "puVar7 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar5 + 4;" (assignment_expression "puVar5 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != unaff_s1 + 200)" ( (binary_expression "puVar7 != unaff_s1 + 200" identifier != (binary_expression "unaff_s1 + 200" identifier + number_literal)) )) ;) (expression_statement "iVar1 = *unaff_s2;" (assignment_expression "iVar1 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "puVar3[0xcd] = unaff_s2[1];" (assignment_expression "puVar3[0xcd] = unaff_s2[1]" (subscript_expression "puVar3[0xcd]" identifier [ number_literal ]) = (subscript_expression "unaff_s2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xcc] = iVar1;" (assignment_expression "puVar3[0xcc] = iVar1" (subscript_expression "puVar3[0xcc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);" (assignment_expression "iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19)" identifier = (call_expression "FUN_0005135c(puVar3,unaff_s1,pcVar19)" identifier (argument_list "(puVar3,unaff_s1,pcVar19)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar9 = unaff_s1[0xce];" (assignment_expression "iVar9 = unaff_s1[0xce]" identifier = (subscript_expression "unaff_s1[0xce]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = unaff_s1[0xcf];" (assignment_expression "uVar11 = unaff_s1[0xcf]" identifier = (subscript_expression "unaff_s1[0xcf]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = *unaff_s2;" (assignment_expression "iVar14 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "uVar2 = uVar11 + unaff_s2[1];" (assignment_expression "uVar2 = uVar11 + unaff_s2[1]" identifier = (binary_expression "uVar11 + unaff_s2[1]" identifier + (subscript_expression "unaff_s2[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar2 + unaff_s5;" (assignment_expression "uVar16 = uVar2 + unaff_s5" identifier = (binary_expression "uVar2 + unaff_s5" identifier + identifier)) ;) (expression_statement "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();" (assignment_expression "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))()" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a25f4))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a25f4))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a25f4)" * (pointer_expression "*(code **)(pcVar18 + 0x3a25f4)" * (cast_expression "(code **)(pcVar18 + 0x3a25f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a25f4)" ( (binary_expression "pcVar18 + 0x3a25f4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = uVar16 - (int)uVar20;" (assignment_expression "uVar6 = uVar16 - (int)uVar20" identifier = (binary_expression "uVar16 - (int)uVar20" identifier - (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);" (assignment_expression "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (pointer_expression "*unaff_s2" * identifier) = (binary_expression "(((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (parenthesized_expression "(((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20))" ( (binary_expression "((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)" (parenthesized_expression "((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f))" ( (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)" (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14" (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9" (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11)" (call_expression "(uint)(uVar16 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < uVar2)" ( (binary_expression "uVar16 < uVar2" identifier < identifier) ))) + (call_expression "(uint)(uVar2 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar11)" ( (binary_expression "uVar2 < uVar11" identifier < identifier) )))) + identifier) + identifier) + (parenthesized_expression "(unaff_s5 >> 0x1f)" ( (binary_expression "unaff_s5 >> 0x1f" identifier >> number_literal) ))) )) - (cast_expression "(int)((ulonglong)uVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar20 >> 0x20)" ( (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) - (call_expression "(uint)(uVar16 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < uVar6)" ( (binary_expression "uVar16 < uVar6" identifier < identifier) ))))) ;) (expression_statement "unaff_s2[1] = uVar6;" (assignment_expression "unaff_s2[1] = uVar6" (subscript_expression "unaff_s2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00050cb4(puVar3);" (call_expression "FUN_00050cb4(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "(**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);" (call_expression "(**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2c10))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a2c10)" * (pointer_expression "*(code **)(pcVar18 + 0x3a2c10)" * (cast_expression "(code **)(pcVar18 + 0x3a2c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a2c10)" ( (binary_expression "pcVar18 + 0x3a2c10" identifier + number_literal) ))))) )) (argument_list "(pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340)" ( identifier , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5b98" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x6e78" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar1 + 0x340" identifier + number_literal) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8);" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;" if (parenthesized_expression "(*(int *)(iVar1 + 0x3350) == 0)" ( (binary_expression "*(int *)(iVar1 + 0x3350) == 0" (pointer_expression "*(int *)(iVar1 + 0x3350)" * (cast_expression "(int *)(iVar1 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x3350)" ( (binary_expression "iVar1 + 0x3350" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000573e8;" goto statement_identifier ;)) }))) (expression_statement "(**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0);" (call_expression "(**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2ed0))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a2ed0)" * (pointer_expression "*(code **)(pcVar18 + 0x3a2ed0)" * (cast_expression "(code **)(pcVar18 + 0x3a2ed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a2ed0)" ( (binary_expression "pcVar18 + 0x3a2ed0" identifier + number_literal) ))))) )) (argument_list "(8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0)" ( number_literal , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" * (cast_expression "(int *)(pcVar18 + 0x3a25b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x3a25b8)" ( (binary_expression "pcVar18 + 0x3a25b8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar14 + 0x5ca0" identifier + number_literal) ))) ;) (labeled_statement "LAB_000573e8:\n  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);" statement_identifier : (expression_statement "(**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);" (call_expression "(**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a352c))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a352c)" * (pointer_expression "*(code **)(pcVar18 + 0x3a352c)" * (cast_expression "(code **)(pcVar18 + 0x3a352c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a352c)" ( (binary_expression "pcVar18 + 0x3a352c" identifier + number_literal) ))))) )) (argument_list "(unaff_s1 + 0x4ed,unaff_s3,0x1000)" ( (binary_expression "unaff_s1 + 0x4ed" identifier + number_literal) , identifier , number_literal ))) ;)) (expression_statement "unaff_s1[200] = 3;" (assignment_expression "unaff_s1[200] = 3" (subscript_expression "unaff_s1[200]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar14 = *unaff_s2;" (assignment_expression "iVar14 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "unaff_s1[0xcd] = unaff_s2[1];" (assignment_expression "unaff_s1[0xcd] = unaff_s2[1]" (subscript_expression "unaff_s1[0xcd]" identifier [ number_literal ]) = (subscript_expression "unaff_s2[1]" identifier [ number_literal ])) ;) (expression_statement "unaff_s1[0xcc] = iVar14;" (assignment_expression "unaff_s1[0xcc] = iVar14" (subscript_expression "unaff_s1[0xcc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar1 = FUN_00051e60(iVar1,0,pcVar19);" (assignment_expression "iVar1 = FUN_00051e60(iVar1,0,pcVar19)" identifier = (call_expression "FUN_00051e60(iVar1,0,pcVar19)" identifier (argument_list "(iVar1,0,pcVar19)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }" { (expression_statement "iVar14 = unaff_s1[0xce];" (assignment_expression "iVar14 = unaff_s1[0xce]" identifier = (subscript_expression "unaff_s1[0xce]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = unaff_s1[0xcf];" (assignment_expression "uVar11 = unaff_s1[0xcf]" identifier = (subscript_expression "unaff_s1[0xcf]" identifier [ number_literal ])) ;) (expression_statement "iVar1 = *unaff_s2;" (assignment_expression "iVar1 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "uVar2 = uVar11 + unaff_s2[1];" (assignment_expression "uVar2 = uVar11 + unaff_s2[1]" identifier = (binary_expression "uVar11 + unaff_s2[1]" identifier + (subscript_expression "unaff_s2[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar2 + unaff_s5;" (assignment_expression "uVar16 = uVar2 + unaff_s5" identifier = (binary_expression "uVar2 + unaff_s5" identifier + identifier)) ;) (expression_statement "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();" (assignment_expression "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))()" identifier = (call_expression "(**(code **)(pcVar18 + 0x3a25f4))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a25f4))" ( (pointer_expression "**(code **)(pcVar18 + 0x3a25f4)" * (pointer_expression "*(code **)(pcVar18 + 0x3a25f4)" * (cast_expression "(code **)(pcVar18 + 0x3a25f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x3a25f4)" ( (binary_expression "pcVar18 + 0x3a25f4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar6 = uVar16 - (int)uVar20;" (assignment_expression "uVar6 = uVar16 - (int)uVar20" identifier = (binary_expression "uVar16 - (int)uVar20" identifier - (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);" (assignment_expression "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (pointer_expression "*unaff_s2" * identifier) = (binary_expression "(((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (parenthesized_expression "(((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20))" ( (binary_expression "((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)" (parenthesized_expression "((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f))" ( (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)" (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1" (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14" (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11)" (call_expression "(uint)(uVar16 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < uVar2)" ( (binary_expression "uVar16 < uVar2" identifier < identifier) ))) + (call_expression "(uint)(uVar2 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar11)" ( (binary_expression "uVar2 < uVar11" identifier < identifier) )))) + identifier) + identifier) + (parenthesized_expression "(unaff_s5 >> 0x1f)" ( (binary_expression "unaff_s5 >> 0x1f" identifier >> number_literal) ))) )) - (cast_expression "(int)((ulonglong)uVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar20 >> 0x20)" ( (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) - (call_expression "(uint)(uVar16 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < uVar6)" ( (binary_expression "uVar16 < uVar6" identifier < identifier) ))))) ;) (expression_statement "unaff_s2[1] = uVar6;" (assignment_expression "unaff_s2[1] = uVar6" (subscript_expression "unaff_s2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_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) ))))) ;) })) (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 ))) ;) (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 ( )))) ;) (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 (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 ))) ;) (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) ))) ;)) (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 ))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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) )) (goto_statement goto statement_identifier ;)) (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 = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (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) )))) + (binary_expression IDENT * LIT)) )))) )))) ;) (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) )))) + 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 (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) ))) ;) (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 (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 ))) ;) (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) ))) ;)) (labeled_statement statement_identifier : (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 = (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) , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( IDENT )))) ;) (return_statement return IDENT ;) })) }))) (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 = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })) (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 = 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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 ( (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) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;)) (labeled_statement statement_identifier : (expression_statement (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) , IDENT ))) ;)) (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 { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (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 ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (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 (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 ))) ;) (labeled_statement statement_identifier : (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 ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (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 { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 ( 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 IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (subscript_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 IDENT + LIT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (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 = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) + IDENT) + IDENT) + (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) )) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return 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 ( 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) ))) ;) (return_statement return 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) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT ))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (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 = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) + IDENT) + IDENT) + (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) )) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_00056fc0(int *param_1,int param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 *unaff_s1;\n  uint uVar16;\n  int *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int unaff_s5;\n  undefined *puVar17;\n  code *pcVar18;\n  code *pcVar19;\n  undefined8 uVar20;\n  \n  if (param_1 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }\n  puVar8 = PTR_LAB_003f98e0 + 0x5804;\n  puVar17 = PTR___assert_fail_003fa620;\n  (*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);\n  iVar1 = (**(code **)(puVar17 + 0x3a34cc))();\n  if (puVar8 == (undefined *)0x0) {\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }\n  iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;\n  pcVar18 = *(code **)(puVar17 + 0x3a35cc);\n  (*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            );\n  pcVar19 = pcVar18 + 0x3aa704;\n  iVar14 = (**(code **)(pcVar18 + 0x3a3374))();\n  if (iVar1 == 0) {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }\n  if (iVar14 < *(int *)(iVar10 + 0x3a0)) {\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }\n  piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);\n  iVar10 = 0xc7d;\n  iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;\n  iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;\n  pcVar18 = *(code **)(pcVar18 + 0x3a3474);\n  (*pcVar18)();\n  if (iVar14 == 0) {\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }\n  else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }\n  if (iVar14 == 0) {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }\n  else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }\n  (**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0);\nLAB_000573e8:\n  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);\n  unaff_s1[200] = 3;\n  iVar14 = *unaff_s2;\n  unaff_s1[0xcd] = unaff_s2[1];\n  unaff_s1[0xcc] = iVar14;\n  iVar1 = FUN_00051e60(iVar1,0,pcVar19);\n  if (iVar1 != 0) {\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }\n  return iVar1;\n}" (primitive_type "int") (function_declarator "FUN_00056fc0(int *param_1,int param_2)" (identifier "FUN_00056fc0") (parameter_list "(int *param_1,int param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 *unaff_s1;\n  uint uVar16;\n  int *unaff_s2;\n  int unaff_s3;\n  int unaff_s4;\n  int unaff_s5;\n  undefined *puVar17;\n  code *pcVar18;\n  code *pcVar19;\n  undefined8 uVar20;\n  \n  if (param_1 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }\n  puVar8 = PTR_LAB_003f98e0 + 0x5804;\n  puVar17 = PTR___assert_fail_003fa620;\n  (*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);\n  iVar1 = (**(code **)(puVar17 + 0x3a34cc))();\n  if (puVar8 == (undefined *)0x0) {\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }\n  iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;\n  pcVar18 = *(code **)(puVar17 + 0x3a35cc);\n  (*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            );\n  pcVar19 = pcVar18 + 0x3aa704;\n  iVar14 = (**(code **)(pcVar18 + 0x3a3374))();\n  if (iVar1 == 0) {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }\n  if (iVar14 < *(int *)(iVar10 + 0x3a0)) {\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }\n  piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);\n  iVar10 = 0xc7d;\n  iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;\n  iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;\n  pcVar18 = *(code **)(pcVar18 + 0x3a3474);\n  (*pcVar18)();\n  if (iVar14 == 0) {\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }\n  else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }\n  if (iVar14 == 0) {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }\n  else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }\n  (**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0);\nLAB_000573e8:\n  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);\n  unaff_s1[200] = 3;\n  iVar14 = *unaff_s2;\n  unaff_s1[0xcd] = unaff_s2[1];\n  unaff_s1[0xcc] = iVar14;\n  iVar1 = FUN_00051e60(iVar1,0,pcVar19);\n  if (iVar1 != 0) {\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }\n  return iVar1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "undefined4 *unaff_s1;" (type_identifier "undefined4") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int *unaff_s2;" (primitive_type "int") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "int unaff_s3;" (primitive_type "int") (identifier "unaff_s3") (; ";")) (declaration "int unaff_s4;" (primitive_type "int") (identifier "unaff_s4") (; ";")) (declaration "int unaff_s5;" (primitive_type "int") (identifier "unaff_s5") (; ";")) (declaration "undefined *puVar17;" (type_identifier "undefined") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "code *pcVar18;" (type_identifier "code") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "code *pcVar19;" (type_identifier "code") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "undefined8 uVar20;" (type_identifier "undefined8") (identifier "uVar20") (; ";")) (if_statement "if (param_1 == (int *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }\n  else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\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    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);\n  }" ({ "{") (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003fa620" (* "*") (cast_expression "(code *)PTR___assert_fail_003fa620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003fa620"))) () ")")) (argument_list "(PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x59e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x59e0")) (, ",") (binary_expression "PTR_LAB_003f98e0 + 0x57f0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xd15") (, ",") (binary_expression "PTR_LAB_003f98e0 + 0x60d8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x60d8")) () ")"))) (; ";")) (} "}")) (else_clause "else if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }" (else "else") (if_statement "if (param_1[0x901] == -0x54535255) {\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(param_1[0x901] == -0x54535255)" (( "(") (binary_expression "param_1[0x901] == -0x54535255" (subscript_expression "param_1[0x901]" (identifier "param_1") ([ "[") (number_literal "0x901") (] "]")) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    iVar1 = 0;\n    if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }\n    return iVar1;\n  }" ({ "{") (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*param_1 != 0) {\n      iVar1 = *(int *)(param_2 + 0x24);\n    }" (if "if") (parenthesized_expression "(*param_1 != 0)" (( "(") (binary_expression "*param_1 != 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = *(int *)(param_2 + 0x24);\n    }" ({ "{") (expression_statement "iVar1 = *(int *)(param_2 + 0x24);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x24)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_2 + 0x24)" (* "*") (cast_expression "(int *)(param_2 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}"))) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))))) (expression_statement "puVar8 = PTR_LAB_003f98e0 + 0x5804;" (assignment_expression "puVar8 = PTR_LAB_003f98e0 + 0x5804" (identifier "puVar8") (= "=") (binary_expression "PTR_LAB_003f98e0 + 0x5804" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x5804"))) (; ";")) (expression_statement "puVar17 = PTR___assert_fail_003fa620;" (assignment_expression "puVar17 = PTR___assert_fail_003fa620" (identifier "puVar17") (= "=") (identifier "PTR___assert_fail_003fa620")) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);" (call_expression "(*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003fa620" (* "*") (cast_expression "(code *)PTR___assert_fail_003fa620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003fa620"))) () ")")) (argument_list "(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17)" (( "(") (identifier "puVar8") (, ",") (binary_expression "PTR_LAB_003f98e0 + 0x57f0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xd17") () ")"))) (; ";")) (expression_statement "iVar1 = (**(code **)(puVar17 + 0x3a34cc))();" (assignment_expression "iVar1 = (**(code **)(puVar17 + 0x3a34cc))()" (identifier "iVar1") (= "=") (call_expression "(**(code **)(puVar17 + 0x3a34cc))()" (parenthesized_expression "(**(code **)(puVar17 + 0x3a34cc))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x3a34cc)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x3a34cc)" (* "*") (cast_expression "(code **)(puVar17 + 0x3a34cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x3a34cc)" (( "(") (binary_expression "puVar17 + 0x3a34cc" (identifier "puVar17") (+ "+") (number_literal "0x3a34cc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (puVar8 == (undefined *)0x0) {\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }\n  else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }" (if "if") (parenthesized_expression "(puVar8 == (undefined *)0x0)" (( "(") (binary_expression "puVar8 == (undefined *)0x0" (identifier "puVar8") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);\nLAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);\nLAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);\nLAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);\n  }" ({ "{") (expression_statement "iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;" (assignment_expression "iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8" (identifier "iVar14") (= "=") (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x62a8" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a288c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a288c)" (( "(") (binary_expression "puVar17 + 0x3a288c" (identifier "puVar17") (+ "+") (number_literal "0x3a288c")) () ")")))) (+ "+") (number_literal "0x62a8"))) (; ";")) (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" (* "*") (cast_expression "(code **)(puVar17 + 0x3a35cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x3a35cc)" (( "(") (binary_expression "puVar17 + 0x3a35cc" (identifier "puVar17") (+ "+") (number_literal "0x3a35cc")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,\n               iVar14)" (( "(") (binary_expression "*(int *)(puVar17 + 0x3a2890) + -0x7b0" (pointer_expression "*(int *)(puVar17 + 0x3a2890)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a2890)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a2890)" (( "(") (binary_expression "puVar17 + 0x3a2890" (identifier "puVar17") (+ "+") (number_literal "0x3a2890")) () ")")))) (+ "+") (number_literal "-0x7b0")) (, ",") (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a288c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a288c)" (( "(") (binary_expression "puVar17 + 0x3a288c" (identifier "puVar17") (+ "+") (number_literal "0x3a288c")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xcec") (, ",") (identifier "iVar14") () ")"))) (; ";")) (labeled_statement "LAB_0005711c:\n    iVar14 = iVar14 + 0x62a8;" (statement_identifier "LAB_0005711c") (: ":") (expression_statement "iVar14 = iVar14 + 0x62a8;" (assignment_expression "iVar14 = iVar14 + 0x62a8" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 0x62a8" (identifier "iVar14") (+ "+") (number_literal "0x62a8"))) (; ";"))) (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" (* "*") (cast_expression "(code **)(puVar17 + 0x3a35cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x3a35cc)" (( "(") (binary_expression "puVar17 + 0x3a35cc" (identifier "puVar17") (+ "+") (number_literal "0x3a35cc")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,\n               iVar14)" (( "(") (binary_expression "*(int *)(puVar17 + 0x3a2890) + -0x784" (pointer_expression "*(int *)(puVar17 + 0x3a2890)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a2890)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a2890)" (( "(") (binary_expression "puVar17 + 0x3a2890" (identifier "puVar17") (+ "+") (number_literal "0x3a2890")) () ")")))) (+ "+") (number_literal "-0x784")) (, ",") (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a288c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a288c)" (( "(") (binary_expression "puVar17 + 0x3a288c" (identifier "puVar17") (+ "+") (number_literal "0x3a288c")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xced") (, ",") (identifier "iVar14") () ")"))) (; ";")) (labeled_statement "LAB_00057140:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);" (statement_identifier "LAB_00057140") (: ":") (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" (* "*") (cast_expression "(code **)(puVar17 + 0x3a35cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x3a35cc)" (( "(") (binary_expression "puVar17 + 0x3a35cc" (identifier "puVar17") (+ "+") (number_literal "0x3a35cc")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,\n               iVar14 + 0x62a8)" (( "(") (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x6818" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a288c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a288c)" (( "(") (binary_expression "puVar17 + 0x3a288c" (identifier "puVar17") (+ "+") (number_literal "0x3a288c")) () ")")))) (+ "+") (number_literal "0x6818")) (, ",") (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a288c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a288c)" (( "(") (binary_expression "puVar17 + 0x3a288c" (identifier "puVar17") (+ "+") (number_literal "0x3a288c")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xcee") (, ",") (binary_expression "iVar14 + 0x62a8" (identifier "iVar14") (+ "+") (number_literal "0x62a8")) () ")"))) (; ";"))) (labeled_statement "LAB_00057164:\n    (**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);" (statement_identifier "LAB_00057164") (: ":") (expression_statement "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);" (call_expression "(**(code **)(puVar17 + 0x3a35cc))\n              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0)" (parenthesized_expression "(**(code **)(puVar17 + 0x3a35cc))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x3a35cc)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" (* "*") (cast_expression "(code **)(puVar17 + 0x3a35cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x3a35cc)" (( "(") (binary_expression "puVar17 + 0x3a35cc" (identifier "puVar17") (+ "+") (number_literal "0x3a35cc")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0)" (( "(") (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x5804" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a288c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a288c)" (( "(") (binary_expression "puVar17 + 0x3a288c" (identifier "puVar17") (+ "+") (number_literal "0x3a288c")) () ")")))) (+ "+") (number_literal "0x5804")) (, ",") (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a288c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a288c)" (( "(") (binary_expression "puVar17 + 0x3a288c" (identifier "puVar17") (+ "+") (number_literal "0x3a288c")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xcf0") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }" (else "else") (compound_statement "{\n    iVar14 = *(int *)(puVar17 + 0x3a288c);\n    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;\n    iVar9 = *(int *)(puVar8 + 0x2d4);\n    if (iVar9 == 0) goto LAB_00057140;\n    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;\n    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }\n  }" ({ "{") (expression_statement "iVar14 = *(int *)(puVar17 + 0x3a288c);" (assignment_expression "iVar14 = *(int *)(puVar17 + 0x3a288c)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(puVar17 + 0x3a288c)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a288c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a288c)" (( "(") (binary_expression "puVar17 + 0x3a288c" (identifier "puVar17") (+ "+") (number_literal "0x3a288c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;" (if "if") (parenthesized_expression "(*(int *)(puVar8 + 0x336c) != -0x54535255)" (( "(") (binary_expression "*(int *)(puVar8 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(puVar8 + 0x336c)" (* "*") (cast_expression "(int *)(puVar8 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x336c)" (( "(") (binary_expression "puVar8 + 0x336c" (identifier "puVar8") (+ "+") (number_literal "0x336c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (goto_statement "goto LAB_0005711c;" (goto "goto") (statement_identifier "LAB_0005711c") (; ";"))) (expression_statement "iVar9 = *(int *)(puVar8 + 0x2d4);" (assignment_expression "iVar9 = *(int *)(puVar8 + 0x2d4)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar8 + 0x2d4)" (* "*") (cast_expression "(int *)(puVar8 + 0x2d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x2d4)" (( "(") (binary_expression "puVar8 + 0x2d4" (identifier "puVar8") (+ "+") (number_literal "0x2d4")) () ")"))))) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_00057140;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00057140;" (goto "goto") (statement_identifier "LAB_00057140") (; ";"))) (if_statement "if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0x2404) != -0x54535255)" (( "(") (binary_expression "*(int *)(iVar9 + 0x2404) != -0x54535255" (pointer_expression "*(int *)(iVar9 + 0x2404)" (* "*") (cast_expression "(int *)(iVar9 + 0x2404)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x2404)" (( "(") (binary_expression "iVar9 + 0x2404" (identifier "iVar9") (+ "+") (number_literal "0x2404")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (goto_statement "goto LAB_00057164;" (goto "goto") (statement_identifier "LAB_00057164") (; ";"))) (if_statement "if (iVar1 < *(int *)(iVar9 + 0x3a0)) {\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }" (if "if") (parenthesized_expression "(iVar1 < *(int *)(iVar9 + 0x3a0))" (( "(") (binary_expression "iVar1 < *(int *)(iVar9 + 0x3a0)" (identifier "iVar1") (< "<") (pointer_expression "*(int *)(iVar9 + 0x3a0)" (* "*") (cast_expression "(int *)(iVar9 + 0x3a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x3a0)" (( "(") (binary_expression "iVar9 + 0x3a0" (identifier "iVar9") (+ "+") (number_literal "0x3a0")) () ")"))))) () ")")) (compound_statement "{\n      iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));\n      return iVar1;\n    }" ({ "{") (expression_statement "iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));" (assignment_expression "iVar1 = FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4))" (identifier "iVar1") (= "=") (call_expression "FUN_00056fc0(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4))" (identifier "FUN_00056fc0") (argument_list "(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4))" (( "(") (identifier "iVar9") (, ",") (pointer_expression "*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x3a4) + iVar1 * 4)" (( "(") (binary_expression "*(int *)(iVar9 + 0x3a4) + iVar1 * 4" (pointer_expression "*(int *)(iVar9 + 0x3a4)" (* "*") (cast_expression "(int *)(iVar9 + 0x3a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x3a4)" (( "(") (binary_expression "iVar9 + 0x3a4" (identifier "iVar9") (+ "+") (number_literal "0x3a4")) () ")")))) (+ "+") (binary_expression "iVar1 * 4" (identifier "iVar1") (* "*") (number_literal "4"))) () ")")))) () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;" (assignment_expression "iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834" (identifier "iVar1") (= "=") (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x5834" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a288c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a288c)" (( "(") (binary_expression "puVar17 + 0x3a288c" (identifier "puVar17") (+ "+") (number_literal "0x3a288c")) () ")")))) (+ "+") (number_literal "0x5834"))) (; ";")) (expression_statement "pcVar18 = *(code **)(puVar17 + 0x3a35cc);" (assignment_expression "pcVar18 = *(code **)(puVar17 + 0x3a35cc)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(puVar17 + 0x3a35cc)" (* "*") (cast_expression "(code **)(puVar17 + 0x3a35cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x3a35cc)" (( "(") (binary_expression "puVar17 + 0x3a35cc" (identifier "puVar17") (+ "+") (number_literal "0x3a35cc")) () ")"))))) (; ";")) (expression_statement "(*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            );" (call_expression "(*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            )" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8\n            )" (( "(") (identifier "iVar1") (, ",") (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x57f0" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a288c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a288c)" (( "(") (binary_expression "puVar17 + 0x3a288c" (identifier "puVar17") (+ "+") (number_literal "0x3a288c")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xcf1") (, ",") (binary_expression "*(int *)(puVar17 + 0x3a288c) + 0x62a8" (pointer_expression "*(int *)(puVar17 + 0x3a288c)" (* "*") (cast_expression "(int *)(puVar17 + 0x3a288c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x3a288c)" (( "(") (binary_expression "puVar17 + 0x3a288c" (identifier "puVar17") (+ "+") (number_literal "0x3a288c")) () ")")))) (+ "+") (number_literal "0x62a8")) () ")"))) (; ";")) (expression_statement "pcVar19 = pcVar18 + 0x3aa704;" (assignment_expression "pcVar19 = pcVar18 + 0x3aa704" (identifier "pcVar19") (= "=") (binary_expression "pcVar18 + 0x3aa704" (identifier "pcVar18") (+ "+") (number_literal "0x3aa704"))) (; ";")) (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a3374))();" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a3374))()" (identifier "iVar14") (= "=") (call_expression "(**(code **)(pcVar18 + 0x3a3374))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3374))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a3374)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a3374)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a3374)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a3374)" (( "(") (binary_expression "pcVar18 + 0x3a3374" (identifier "pcVar18") (+ "+") (number_literal "0x3a3374")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }\n  else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);\nLAB_00057264:\n    iVar9 = iVar9 + 0x6104;\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);\nLAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);\nLAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;\n    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);\n  }" ({ "{") (expression_statement "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;" (assignment_expression "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104" (identifier "iVar9") (= "=") (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x6104" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2734)" (( "(") (binary_expression "pcVar18 + 0x3a2734" (identifier "pcVar18") (+ "+") (number_literal "0x3a2734")) () ")")))) (+ "+") (number_literal "0x6104"))) (; ";")) (expression_statement "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9);" (call_expression "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a3474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a3474)" (( "(") (binary_expression "pcVar18 + 0x3a3474" (identifier "pcVar18") (+ "+") (number_literal "0x3a3474")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,\n               iVar9)" (( "(") (binary_expression "*(int *)(pcVar18 + 0x3a2738) + -0x7b0" (pointer_expression "*(int *)(pcVar18 + 0x3a2738)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2738)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2738)" (( "(") (binary_expression "pcVar18 + 0x3a2738" (identifier "pcVar18") (+ "+") (number_literal "0x3a2738")) () ")")))) (+ "+") (number_literal "-0x7b0")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2734)" (( "(") (binary_expression "pcVar18 + 0x3a2734" (identifier "pcVar18") (+ "+") (number_literal "0x3a2734")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xc75") (, ",") (identifier "iVar9") () ")"))) (; ";")) (labeled_statement "LAB_00057264:\n    iVar9 = iVar9 + 0x6104;" (statement_identifier "LAB_00057264") (: ":") (expression_statement "iVar9 = iVar9 + 0x6104;" (assignment_expression "iVar9 = iVar9 + 0x6104" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 0x6104" (identifier "iVar9") (+ "+") (number_literal "0x6104"))) (; ";"))) (expression_statement "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9);" (call_expression "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a3474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a3474)" (( "(") (binary_expression "pcVar18 + 0x3a3474" (identifier "pcVar18") (+ "+") (number_literal "0x3a3474")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,\n               iVar9)" (( "(") (binary_expression "*(int *)(pcVar18 + 0x3a2738) + -0x784" (pointer_expression "*(int *)(pcVar18 + 0x3a2738)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2738)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2738)" (( "(") (binary_expression "pcVar18 + 0x3a2738" (identifier "pcVar18") (+ "+") (number_literal "0x3a2738")) () ")")))) (+ "+") (number_literal "-0x784")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2734)" (( "(") (binary_expression "pcVar18 + 0x3a2734" (identifier "pcVar18") (+ "+") (number_literal "0x3a2734")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xc76") (, ",") (identifier "iVar9") () ")"))) (; ";")) (labeled_statement "LAB_00057288:\n    (**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);" (statement_identifier "LAB_00057288") (: ":") (expression_statement "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104);" (call_expression "(**(code **)(pcVar18 + 0x3a3474))\n              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a3474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a3474)" (( "(") (binary_expression "pcVar18 + 0x3a3474" (identifier "pcVar18") (+ "+") (number_literal "0x3a3474")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,\n               iVar9 + 0x6104)" (( "(") (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x6818" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2734)" (( "(") (binary_expression "pcVar18 + 0x3a2734" (identifier "pcVar18") (+ "+") (number_literal "0x3a2734")) () ")")))) (+ "+") (number_literal "0x6818")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2734)" (( "(") (binary_expression "pcVar18 + 0x3a2734" (identifier "pcVar18") (+ "+") (number_literal "0x3a2734")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xc77") (, ",") (binary_expression "iVar9 + 0x6104" (identifier "iVar9") (+ "+") (number_literal "0x6104")) () ")"))) (; ";"))) (labeled_statement "LAB_000572ac:\n    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;" (statement_identifier "LAB_000572ac") (: ":") (expression_statement "iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;" (assignment_expression "iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804" (identifier "iVar10") (= "=") (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x5804" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2734)" (( "(") (binary_expression "pcVar18 + 0x3a2734" (identifier "pcVar18") (+ "+") (number_literal "0x3a2734")) () ")")))) (+ "+") (number_literal "0x5804"))) (; ";"))) (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79)" (identifier "iVar14") (= "=") (call_expression "(**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a3474))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a3474)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a3474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a3474)" (( "(") (binary_expression "pcVar18 + 0x3a3474" (identifier "pcVar18") (+ "+") (number_literal "0x3a3474")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2734)" (( "(") (binary_expression "pcVar18 + 0x3a2734" (identifier "pcVar18") (+ "+") (number_literal "0x3a2734")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xc79") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }" (else "else") (compound_statement "{\n    iVar9 = *(int *)(pcVar18 + 0x3a2734);\n    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;\n    iVar10 = *(int *)(iVar1 + 0x2d4);\n    if (iVar10 == 0) goto LAB_00057288;\n    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;\n    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }\n  }" ({ "{") (expression_statement "iVar9 = *(int *)(pcVar18 + 0x3a2734);" (assignment_expression "iVar9 = *(int *)(pcVar18 + 0x3a2734)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2734)" (( "(") (binary_expression "pcVar18 + 0x3a2734" (identifier "pcVar18") (+ "+") (number_literal "0x3a2734")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x336c) != -0x54535255)" (( "(") (binary_expression "*(int *)(iVar1 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar1 + 0x336c)" (* "*") (cast_expression "(int *)(iVar1 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x336c)" (( "(") (binary_expression "iVar1 + 0x336c" (identifier "iVar1") (+ "+") (number_literal "0x336c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (goto_statement "goto LAB_00057264;" (goto "goto") (statement_identifier "LAB_00057264") (; ";"))) (expression_statement "iVar10 = *(int *)(iVar1 + 0x2d4);" (assignment_expression "iVar10 = *(int *)(iVar1 + 0x2d4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar1 + 0x2d4)" (* "*") (cast_expression "(int *)(iVar1 + 0x2d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x2d4)" (( "(") (binary_expression "iVar1 + 0x2d4" (identifier "iVar1") (+ "+") (number_literal "0x2d4")) () ")"))))) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_00057288;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00057288;" (goto "goto") (statement_identifier "LAB_00057288") (; ";"))) (if_statement "if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x2404) != -0x54535255)" (( "(") (binary_expression "*(int *)(iVar10 + 0x2404) != -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x2404)" (* "*") (cast_expression "(int *)(iVar10 + 0x2404)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2404)" (( "(") (binary_expression "iVar10 + 0x2404" (identifier "iVar10") (+ "+") (number_literal "0x2404")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (goto_statement "goto LAB_000572ac;" (goto "goto") (statement_identifier "LAB_000572ac") (; ";"))) (if_statement "if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }" (if "if") (parenthesized_expression "(*(code **)(iVar10 + 0x23b8) != (code *)0x0)" (( "(") (binary_expression "*(code **)(iVar10 + 0x23b8) != (code *)0x0" (pointer_expression "*(code **)(iVar10 + 0x23b8)" (* "*") (cast_expression "(code **)(iVar10 + 0x23b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x23b8)" (( "(") (binary_expression "iVar10 + 0x23b8" (identifier "iVar10") (+ "+") (number_literal "0x23b8")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);\n      return iVar1;\n    }" ({ "{") (expression_statement "iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);" (assignment_expression "iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(iVar10 + 0x23b8))(iVar1)" (parenthesized_expression "(**(code **)(iVar10 + 0x23b8))" (( "(") (pointer_expression "**(code **)(iVar10 + 0x23b8)" (* "*") (pointer_expression "*(code **)(iVar10 + 0x23b8)" (* "*") (cast_expression "(code **)(iVar10 + 0x23b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x23b8)" (( "(") (binary_expression "iVar10 + 0x23b8" (identifier "iVar10") (+ "+") (number_literal "0x23b8")) () ")"))))) () ")")) (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (} "}")))) (if_statement "if (iVar14 < *(int *)(iVar10 + 0x3a0)) {\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(iVar14 < *(int *)(iVar10 + 0x3a0))" (( "(") (binary_expression "iVar14 < *(int *)(iVar10 + 0x3a0)" (identifier "iVar14") (< "<") (pointer_expression "*(int *)(iVar10 + 0x3a0)" (* "*") (cast_expression "(int *)(iVar10 + 0x3a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x3a0)" (( "(") (binary_expression "iVar10 + 0x3a0" (identifier "iVar10") (+ "+") (number_literal "0x3a0")) () ")"))))) () ")")) (compound_statement "{\n    iVar1 = FUN_00056fc0();\n    return iVar1;\n  }" ({ "{") (expression_statement "iVar1 = FUN_00056fc0();" (assignment_expression "iVar1 = FUN_00056fc0()" (identifier "iVar1") (= "=") (call_expression "FUN_00056fc0()" (identifier "FUN_00056fc0") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (expression_statement "piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);" (assignment_expression "piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104)" (identifier "piVar15") (= "=") (cast_expression "(int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar18 + 0x3a2734) + 0x6104)" (( "(") (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x6104" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2734)" (( "(") (binary_expression "pcVar18 + 0x3a2734" (identifier "pcVar18") (+ "+") (number_literal "0x3a2734")) () ")")))) (+ "+") (number_literal "0x6104")) () ")")))) (; ";")) (expression_statement "iVar10 = 0xc7d;" (assignment_expression "iVar10 = 0xc7d" (identifier "iVar10") (= "=") (number_literal "0xc7d")) (; ";")) (expression_statement "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;" (assignment_expression "iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0" (identifier "iVar9") (= "=") (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2734)" (( "(") (binary_expression "pcVar18 + 0x3a2734" (identifier "pcVar18") (+ "+") (number_literal "0x3a2734")) () ")")))) (+ "+") (number_literal "0x57f0"))) (; ";")) (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834" (identifier "iVar14") (= "=") (binary_expression "*(int *)(pcVar18 + 0x3a2734) + 0x5834" (pointer_expression "*(int *)(pcVar18 + 0x3a2734)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a2734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2734)" (( "(") (binary_expression "pcVar18 + 0x3a2734" (identifier "pcVar18") (+ "+") (number_literal "0x3a2734")) () ")")))) (+ "+") (number_literal "0x5834"))) (; ";")) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x3a3474);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x3a3474)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(pcVar18 + 0x3a3474)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a3474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a3474)" (( "(") (binary_expression "pcVar18 + 0x3a3474" (identifier "pcVar18") (+ "+") (number_literal "0x3a3474")) () ")"))))) (; ";")) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar14 == 0) {\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }\n  else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);\nLAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);\n    iVar14 = *(int *)(iVar1 + 0x2d4);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a32f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a32f8)" (( "(") (binary_expression "pcVar18 + 0x3a32f8" (identifier "pcVar18") (+ "+") (number_literal "0x3a32f8")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,\n               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" (( "(") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x3da0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x3da0")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xfce") (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x60c4")) () ")"))) (; ";")) (labeled_statement "LAB_000574f0:\n    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);" (statement_identifier "LAB_000574f0") (: ":") (expression_statement "iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);" (assignment_expression "iVar9 = (**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a32f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a32f8)" (( "(") (binary_expression "pcVar18 + 0x3a32f8" (identifier "pcVar18") (+ "+") (number_literal "0x3a32f8")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4)" (( "(") (binary_expression "*(int *)(pcVar18 + 0x3a25bc) + -0x784" (pointer_expression "*(int *)(pcVar18 + 0x3a25bc)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25bc)" (( "(") (binary_expression "pcVar18 + 0x3a25bc" (identifier "pcVar18") (+ "+") (number_literal "0x3a25bc")) () ")")))) (+ "+") (number_literal "-0x784")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xfcf") (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x60c4")) () ")")))) (; ";"))) (labeled_statement "LAB_00057518:\n    (**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);" (statement_identifier "LAB_00057518") (: ":") (expression_statement "(**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);" (call_expression "(**(code **)(pcVar18 + 0x3a2ed0))\n              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2ed0))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a2ed0)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a2ed0)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a2ed0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2ed0)" (( "(") (binary_expression "pcVar18 + 0x3a2ed0" (identifier "pcVar18") (+ "+") (number_literal "0x3a2ed0")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,\n               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x60b0")) (, ",") (number_literal "0xfd1") (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c" (pointer_expression "*(int *)(pcVar18 + 0x3a25c0)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25c0)" (( "(") (binary_expression "pcVar18 + 0x3a25c0" (identifier "pcVar18") (+ "+") (number_literal "0x3a25c0")) () ")")))) (+ "+") (number_literal "-0x2f6c")) (, ",") (identifier "iVar9") () ")"))) (; ";"))) (expression_statement "iVar14 = *(int *)(iVar1 + 0x2d4);" (assignment_expression "iVar14 = *(int *)(iVar1 + 0x2d4)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar1 + 0x2d4)" (* "*") (cast_expression "(int *)(iVar1 + 0x2d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x2d4)" (( "(") (binary_expression "iVar1 + 0x2d4" (identifier "iVar1") (+ "+") (number_literal "0x2d4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }" (else "else") (compound_statement "{\n    iVar1 = iVar14;\n    unaff_s2 = piVar15;\n    unaff_s3 = iVar9;\n    unaff_s4 = iVar10;\n    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;\n    iVar9 = iVar14 + 0x340;\n    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;\n    iVar14 = *(int *)(iVar14 + 0x2d4);\n  }" ({ "{") (expression_statement "iVar1 = iVar14;" (assignment_expression "iVar1 = iVar14" (identifier "iVar1") (= "=") (identifier "iVar14")) (; ";")) (expression_statement "unaff_s2 = piVar15;" (assignment_expression "unaff_s2 = piVar15" (identifier "unaff_s2") (= "=") (identifier "piVar15")) (; ";")) (expression_statement "unaff_s3 = iVar9;" (assignment_expression "unaff_s3 = iVar9" (identifier "unaff_s3") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "unaff_s4 = iVar10;" (assignment_expression "unaff_s4 = iVar10" (identifier "unaff_s4") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x336c) != -0x54535255)" (( "(") (binary_expression "*(int *)(iVar14 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar14 + 0x336c)" (* "*") (cast_expression "(int *)(iVar14 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x336c)" (( "(") (binary_expression "iVar14 + 0x336c" (identifier "iVar14") (+ "+") (number_literal "0x336c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (goto_statement "goto LAB_000574f0;" (goto "goto") (statement_identifier "LAB_000574f0") (; ";"))) (expression_statement "iVar9 = iVar14 + 0x340;" (assignment_expression "iVar9 = iVar14 + 0x340" (identifier "iVar9") (= "=") (binary_expression "iVar14 + 0x340" (identifier "iVar14") (+ "+") (number_literal "0x340"))) (; ";")) (if_statement "if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x3350) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x3350) != 0" (pointer_expression "*(int *)(iVar14 + 0x3350)" (* "*") (cast_expression "(int *)(iVar14 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x3350)" (( "(") (binary_expression "iVar14 + 0x3350" (identifier "iVar14") (+ "+") (number_literal "0x3350")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00057518;" (goto "goto") (statement_identifier "LAB_00057518") (; ";"))) (expression_statement "iVar14 = *(int *)(iVar14 + 0x2d4);" (assignment_expression "iVar14 = *(int *)(iVar14 + 0x2d4)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar14 + 0x2d4)" (* "*") (cast_expression "(int *)(iVar14 + 0x2d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x2d4)" (( "(") (binary_expression "iVar14 + 0x2d4" (identifier "iVar14") (+ "+") (number_literal "0x2d4")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar14 == 0) {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }\n  else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);\nLAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);\nLAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;\n    (**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);\nLAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);\n  }" ({ "{") (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4" (identifier "iVar14") (= "=") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60c4" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x60c4"))) (; ";")) (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a32f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a32f8)" (( "(") (binary_expression "pcVar18 + 0x3a32f8" (identifier "pcVar18") (+ "+") (number_literal "0x3a32f8")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,\n               iVar14)" (( "(") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x5c5c")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xfd2") (, ",") (identifier "iVar14") () ")"))) (; ";")) (labeled_statement "LAB_0005757c:\n    iVar14 = iVar14 + 0x60c4;" (statement_identifier "LAB_0005757c") (: ":") (expression_statement "iVar14 = iVar14 + 0x60c4;" (assignment_expression "iVar14 = iVar14 + 0x60c4" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 0x60c4" (identifier "iVar14") (+ "+") (number_literal "0x60c4"))) (; ";"))) (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a32f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a32f8)" (( "(") (binary_expression "pcVar18 + 0x3a32f8" (identifier "pcVar18") (+ "+") (number_literal "0x3a32f8")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,\n               iVar14)" (( "(") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x4b2c")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xfd3") (, ",") (identifier "iVar14") () ")"))) (; ";")) (labeled_statement "LAB_000575a0:\n    iVar14 = iVar14 + 0x60c4;" (statement_identifier "LAB_000575a0") (: ":") (expression_statement "iVar14 = iVar14 + 0x60c4;" (assignment_expression "iVar14 = iVar14 + 0x60c4" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 0x60c4" (identifier "iVar14") (+ "+") (number_literal "0x60c4"))) (; ";"))) (expression_statement "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14);" (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a32f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a32f8)" (( "(") (binary_expression "pcVar18 + 0x3a32f8" (identifier "pcVar18") (+ "+") (number_literal "0x3a32f8")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,\n               iVar14)" (( "(") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x5c7c")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xfd4") (, ",") (identifier "iVar14") () ")"))) (; ";")) (labeled_statement "LAB_000575c4:\n    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);" (statement_identifier "LAB_000575c4") (: ":") (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4);" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4)" (identifier "iVar14") (= "=") (call_expression "(**(code **)(pcVar18 + 0x3a32f8))\n                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a32f8))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a32f8)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a32f8)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a32f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a32f8)" (( "(") (binary_expression "pcVar18 + 0x3a32f8" (identifier "pcVar18") (+ "+") (number_literal "0x3a32f8")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,\n                        0xfd7,iVar14 + 0x60c4)" (( "(") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5804" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x5804")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (number_literal "0xfd7") (, ",") (binary_expression "iVar14 + 0x60c4" (identifier "iVar14") (+ "+") (number_literal "0x60c4")) () ")")))) (; ";"))) (} "}")) (else_clause "else {\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }" (else "else") (compound_statement "{\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s3 == 0) goto LAB_0005757c;\n    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;\n    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();\n    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;\n    if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }\n    iVar14 = *(int *)(pcVar18 + 0x3a25b8);\n    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;\n  }" ({ "{") (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8);" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")"))))) (; ";")) (if_statement "if (unaff_s3 == 0) goto LAB_0005757c;" (if "if") (parenthesized_expression "(unaff_s3 == 0)" (( "(") (binary_expression "unaff_s3 == 0" (identifier "unaff_s3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005757c;" (goto "goto") (statement_identifier "LAB_0005757c") (; ";"))) (if_statement "if (unaff_s2 == (int *)0x0) goto LAB_000575a0;" (if "if") (parenthesized_expression "(unaff_s2 == (int *)0x0)" (( "(") (binary_expression "unaff_s2 == (int *)0x0" (identifier "unaff_s2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000575a0;" (goto "goto") (statement_identifier "LAB_000575a0") (; ";"))) (expression_statement "unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();" (assignment_expression "unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))()" (identifier "unaff_s5") (= "=") (call_expression "(**(code **)(pcVar18 + 0x3a2650))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2650))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a2650)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a2650)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a2650)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2650)" (( "(") (binary_expression "pcVar18 + 0x3a2650" (identifier "pcVar18") (+ "+") (number_literal "0x3a2650")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);" (assignment_expression "unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4)" (identifier "unaff_s1") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x2d4)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x2d4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x2d4)" (( "(") (binary_expression "iVar1 + 0x2d4" (identifier "iVar1") (+ "+") (number_literal "0x2d4")) () ")"))))) (; ";")) (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8);" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")"))))) (; ";")) (if_statement "if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;" (if "if") (parenthesized_expression "(unaff_s1[0x901] != -0x54535255)" (( "(") (binary_expression "unaff_s1[0x901] != -0x54535255" (subscript_expression "unaff_s1[0x901]" (identifier "unaff_s1") ([ "[") (number_literal "0x901") (] "]")) (!= "!=") (number_literal "-0x54535255")) () ")")) (goto_statement "goto LAB_000575c4;" (goto "goto") (statement_identifier "LAB_000575c4") (; ";"))) (if_statement "if (unaff_s4 == 0) {\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }" (if "if") (parenthesized_expression "(unaff_s4 == 0)" (( "(") (binary_expression "unaff_s4 == 0" (identifier "unaff_s4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);\n      if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }\n      (**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);\n      return 0;\n    }" ({ "{") (expression_statement "iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);" (assignment_expression "iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2)" (identifier "iVar14") (= "=") (call_expression "(**(code **)(pcVar18 + 0x3a350c))(2)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a350c))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a350c)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a350c)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a350c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a350c)" (( "(") (binary_expression "pcVar18 + 0x3a350c" (identifier "pcVar18") (+ "+") (number_literal "0x3a350c")) () ")"))))) () ")")) (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (iVar14 != 0) {\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }" (if "if") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);\n        puVar3[200] = 1;\n        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);\n        puVar3[0xec] = 0xffffffff;\n        *puVar3 = *unaff_s1;\n        puVar3[1] = unaff_s1[1];\n        puVar3[2] = unaff_s1[2];\n        puVar3[3] = unaff_s1[3];\n        puVar3[4] = unaff_s1[4];\n        puVar3[5] = unaff_s1[5];\n        puVar3[7] = unaff_s1[7];\n        puVar3[6] = unaff_s1[6];\n        puVar3[0xc9] = 3;\n        uVar4 = unaff_s1[0xce];\n        puVar3[0xcf] = unaff_s1[0xcf];\n        puVar3[0xce] = uVar4;\n        puVar7 = unaff_s1 + 8;\n        puVar5 = puVar3 + 8;\n        do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);\n        iVar1 = *unaff_s2;\n        puVar3[0xcd] = unaff_s2[1];\n        puVar3[0xcc] = iVar1;\n        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);\n        iVar9 = unaff_s1[0xce];\n        uVar11 = unaff_s1[0xcf];\n        iVar14 = *unaff_s2;\n        uVar2 = uVar11 + unaff_s2[1];\n        uVar16 = uVar2 + unaff_s5;\n        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n        uVar6 = uVar16 - (int)uVar20;\n        *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n        unaff_s2[1] = uVar6;\n        FUN_00050cb4(puVar3);\n        return iVar1;\n      }" ({ "{") (expression_statement "puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);" (assignment_expression "puVar3 = (undefined4 *)FUN_000508d4(unaff_s1)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_000508d4(unaff_s1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000508d4(unaff_s1)" (identifier "FUN_000508d4") (argument_list "(unaff_s1)" (( "(") (identifier "unaff_s1") () ")"))))) (; ";")) (expression_statement "puVar3[200] = 1;" (assignment_expression "puVar3[200] = 1" (subscript_expression "puVar3[200]" (identifier "puVar3") ([ "[") (number_literal "200") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "(**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);" (call_expression "(**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a352c))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a352c)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a352c)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a352c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a352c)" (( "(") (binary_expression "pcVar18 + 0x3a352c" (identifier "pcVar18") (+ "+") (number_literal "0x3a352c")) () ")"))))) () ")")) (argument_list "(puVar3 + 0x4ed,unaff_s3,0x1000)" (( "(") (binary_expression "puVar3 + 0x4ed" (identifier "puVar3") (+ "+") (number_literal "0x4ed")) (, ",") (identifier "unaff_s3") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "puVar3[0xec] = 0xffffffff;" (assignment_expression "puVar3[0xec] = 0xffffffff" (subscript_expression "puVar3[0xec]" (identifier "puVar3") ([ "[") (number_literal "0xec") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*puVar3 = *unaff_s1;" (assignment_expression "*puVar3 = *unaff_s1" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "*unaff_s1" (* "*") (identifier "unaff_s1"))) (; ";")) (expression_statement "puVar3[1] = unaff_s1[1];" (assignment_expression "puVar3[1] = unaff_s1[1]" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "unaff_s1[1]" (identifier "unaff_s1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar3[2] = unaff_s1[2];" (assignment_expression "puVar3[2] = unaff_s1[2]" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "unaff_s1[2]" (identifier "unaff_s1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar3[3] = unaff_s1[3];" (assignment_expression "puVar3[3] = unaff_s1[3]" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "unaff_s1[3]" (identifier "unaff_s1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar3[4] = unaff_s1[4];" (assignment_expression "puVar3[4] = unaff_s1[4]" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "unaff_s1[4]" (identifier "unaff_s1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar3[5] = unaff_s1[5];" (assignment_expression "puVar3[5] = unaff_s1[5]" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "unaff_s1[5]" (identifier "unaff_s1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar3[7] = unaff_s1[7];" (assignment_expression "puVar3[7] = unaff_s1[7]" (subscript_expression "puVar3[7]" (identifier "puVar3") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "unaff_s1[7]" (identifier "unaff_s1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar3[6] = unaff_s1[6];" (assignment_expression "puVar3[6] = unaff_s1[6]" (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "unaff_s1[6]" (identifier "unaff_s1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar3[0xc9] = 3;" (assignment_expression "puVar3[0xc9] = 3" (subscript_expression "puVar3[0xc9]" (identifier "puVar3") ([ "[") (number_literal "0xc9") (] "]")) (= "=") (number_literal "3")) (; ";")) (expression_statement "uVar4 = unaff_s1[0xce];" (assignment_expression "uVar4 = unaff_s1[0xce]" (identifier "uVar4") (= "=") (subscript_expression "unaff_s1[0xce]" (identifier "unaff_s1") ([ "[") (number_literal "0xce") (] "]"))) (; ";")) (expression_statement "puVar3[0xcf] = unaff_s1[0xcf];" (assignment_expression "puVar3[0xcf] = unaff_s1[0xcf]" (subscript_expression "puVar3[0xcf]" (identifier "puVar3") ([ "[") (number_literal "0xcf") (] "]")) (= "=") (subscript_expression "unaff_s1[0xcf]" (identifier "unaff_s1") ([ "[") (number_literal "0xcf") (] "]"))) (; ";")) (expression_statement "puVar3[0xce] = uVar4;" (assignment_expression "puVar3[0xce] = uVar4" (subscript_expression "puVar3[0xce]" (identifier "puVar3") ([ "[") (number_literal "0xce") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar7 = unaff_s1 + 8;" (assignment_expression "puVar7 = unaff_s1 + 8" (identifier "puVar7") (= "=") (binary_expression "unaff_s1 + 8" (identifier "unaff_s1") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar5 = puVar3 + 8;" (assignment_expression "puVar5 = puVar3 + 8" (identifier "puVar5") (= "=") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8"))) (; ";")) (do_statement "do {\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        } while (puVar7 != unaff_s1 + 200);" (do "do") (compound_statement "{\n          uVar13 = puVar7[1];\n          uVar12 = puVar7[2];\n          uVar4 = puVar7[3];\n          *puVar5 = *puVar7;\n          puVar5[1] = uVar13;\n          puVar5[2] = uVar12;\n          puVar5[3] = uVar4;\n          puVar7 = puVar7 + 4;\n          puVar5 = puVar5 + 4;\n        }" ({ "{") (expression_statement "uVar13 = puVar7[1];" (assignment_expression "uVar13 = puVar7[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar12 = puVar7[2];" (assignment_expression "uVar12 = puVar7[2]" (identifier "uVar12") (= "=") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar7[3];" (assignment_expression "uVar4 = puVar7[3]" (identifier "uVar4") (= "=") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar5 = *puVar7;" (assignment_expression "*puVar5 = *puVar7" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar5[1] = uVar13;" (assignment_expression "puVar5[1] = uVar13" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar5[2] = uVar12;" (assignment_expression "puVar5[2] = uVar12" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar5[3] = uVar4;" (assignment_expression "puVar5[3] = uVar4" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar7 = puVar7 + 4;" (assignment_expression "puVar7 = puVar7 + 4" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar5 = puVar5 + 4;" (assignment_expression "puVar5 = puVar5 + 4" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != unaff_s1 + 200)" (( "(") (binary_expression "puVar7 != unaff_s1 + 200" (identifier "puVar7") (!= "!=") (binary_expression "unaff_s1 + 200" (identifier "unaff_s1") (+ "+") (number_literal "200"))) () ")")) (; ";")) (expression_statement "iVar1 = *unaff_s2;" (assignment_expression "iVar1 = *unaff_s2" (identifier "iVar1") (= "=") (pointer_expression "*unaff_s2" (* "*") (identifier "unaff_s2"))) (; ";")) (expression_statement "puVar3[0xcd] = unaff_s2[1];" (assignment_expression "puVar3[0xcd] = unaff_s2[1]" (subscript_expression "puVar3[0xcd]" (identifier "puVar3") ([ "[") (number_literal "0xcd") (] "]")) (= "=") (subscript_expression "unaff_s2[1]" (identifier "unaff_s2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar3[0xcc] = iVar1;" (assignment_expression "puVar3[0xcc] = iVar1" (subscript_expression "puVar3[0xcc]" (identifier "puVar3") ([ "[") (number_literal "0xcc") (] "]")) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);" (assignment_expression "iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19)" (identifier "iVar1") (= "=") (call_expression "FUN_0005135c(puVar3,unaff_s1,pcVar19)" (identifier "FUN_0005135c") (argument_list "(puVar3,unaff_s1,pcVar19)" (( "(") (identifier "puVar3") (, ",") (identifier "unaff_s1") (, ",") (identifier "pcVar19") () ")")))) (; ";")) (expression_statement "iVar9 = unaff_s1[0xce];" (assignment_expression "iVar9 = unaff_s1[0xce]" (identifier "iVar9") (= "=") (subscript_expression "unaff_s1[0xce]" (identifier "unaff_s1") ([ "[") (number_literal "0xce") (] "]"))) (; ";")) (expression_statement "uVar11 = unaff_s1[0xcf];" (assignment_expression "uVar11 = unaff_s1[0xcf]" (identifier "uVar11") (= "=") (subscript_expression "unaff_s1[0xcf]" (identifier "unaff_s1") ([ "[") (number_literal "0xcf") (] "]"))) (; ";")) (expression_statement "iVar14 = *unaff_s2;" (assignment_expression "iVar14 = *unaff_s2" (identifier "iVar14") (= "=") (pointer_expression "*unaff_s2" (* "*") (identifier "unaff_s2"))) (; ";")) (expression_statement "uVar2 = uVar11 + unaff_s2[1];" (assignment_expression "uVar2 = uVar11 + unaff_s2[1]" (identifier "uVar2") (= "=") (binary_expression "uVar11 + unaff_s2[1]" (identifier "uVar11") (+ "+") (subscript_expression "unaff_s2[1]" (identifier "unaff_s2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar16 = uVar2 + unaff_s5;" (assignment_expression "uVar16 = uVar2 + unaff_s5" (identifier "uVar16") (= "=") (binary_expression "uVar2 + unaff_s5" (identifier "uVar2") (+ "+") (identifier "unaff_s5"))) (; ";")) (expression_statement "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();" (assignment_expression "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))()" (identifier "uVar20") (= "=") (call_expression "(**(code **)(pcVar18 + 0x3a25f4))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a25f4))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a25f4)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a25f4)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a25f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25f4)" (( "(") (binary_expression "pcVar18 + 0x3a25f4" (identifier "pcVar18") (+ "+") (number_literal "0x3a25f4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar6 = uVar16 - (int)uVar20;" (assignment_expression "uVar6 = uVar16 - (int)uVar20" (identifier "uVar6") (= "=") (binary_expression "uVar16 - (int)uVar20" (identifier "uVar16") (- "-") (cast_expression "(int)uVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar20")))) (; ";")) (expression_statement "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);" (assignment_expression "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (pointer_expression "*unaff_s2" (* "*") (identifier "unaff_s2")) (= "=") (binary_expression "(((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (parenthesized_expression "(((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20))" (( "(") (binary_expression "((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -\n                    (int)((ulonglong)uVar20 >> 0x20)" (parenthesized_expression "((uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f))" (( "(") (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)" (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9 + iVar14" (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11) + iVar9" (binary_expression "(uint)(uVar16 < uVar2) +\n                     (uint)(uVar2 < uVar11)" (call_expression "(uint)(uVar16 < uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 < uVar2)" (( "(") (binary_expression "uVar16 < uVar2" (identifier "uVar16") (< "<") (identifier "uVar2")) () ")"))) (+ "+") (call_expression "(uint)(uVar2 < uVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 < uVar11)" (( "(") (binary_expression "uVar2 < uVar11" (identifier "uVar2") (< "<") (identifier "uVar11")) () ")")))) (+ "+") (identifier "iVar9")) (+ "+") (identifier "iVar14")) (+ "+") (parenthesized_expression "(unaff_s5 >> 0x1f)" (( "(") (binary_expression "unaff_s5 >> 0x1f" (identifier "unaff_s5") (>> ">>") (number_literal "0x1f")) () ")"))) () ")")) (- "-") (cast_expression "(int)((ulonglong)uVar20 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar20 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar20")) (>> ">>") (number_literal "0x20")) () ")")))) () ")")) (- "-") (call_expression "(uint)(uVar16 < uVar6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 < uVar6)" (( "(") (binary_expression "uVar16 < uVar6" (identifier "uVar16") (< "<") (identifier "uVar6")) () ")"))))) (; ";")) (expression_statement "unaff_s2[1] = uVar6;" (assignment_expression "unaff_s2[1] = uVar6" (subscript_expression "unaff_s2[1]" (identifier "unaff_s2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "FUN_00050cb4(puVar3);" (call_expression "FUN_00050cb4(puVar3)" (identifier "FUN_00050cb4") (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);" (call_expression "(**(code **)(pcVar18 + 0x3a2c10))\n                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2c10))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a2c10)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a2c10)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a2c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2c10)" (( "(") (binary_expression "pcVar18 + 0x3a2c10" (identifier "pcVar18") (+ "+") (number_literal "0x3a2c10")) () ")"))))) () ")")) (argument_list "(pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0\n                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,\n                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340)" (( "(") (identifier "pcVar19") (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x60b0")) (, ",") (number_literal "0xff2") (, ",") (number_literal "0x1bd") (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x5b98" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x5b98")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x6e78" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x6e78")) (, ",") (binary_expression "iVar1 + 0x340" (identifier "iVar1") (+ "+") (number_literal "0x340")) () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar14 = *(int *)(pcVar18 + 0x3a25b8);" (assignment_expression "iVar14 = *(int *)(pcVar18 + 0x3a25b8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x3350) == 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x3350) == 0" (pointer_expression "*(int *)(iVar1 + 0x3350)" (* "*") (cast_expression "(int *)(iVar1 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x3350)" (( "(") (binary_expression "iVar1 + 0x3350" (identifier "iVar1") (+ "+") (number_literal "0x3350")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000573e8;" (goto "goto") (statement_identifier "LAB_000573e8") (; ";"))) (} "}")))) (expression_statement "(**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0);" (call_expression "(**(code **)(pcVar18 + 0x3a2ed0))\n            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a2ed0))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a2ed0)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a2ed0)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a2ed0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a2ed0)" (( "(") (binary_expression "pcVar18 + 0x3a2ed0" (identifier "pcVar18") (+ "+") (number_literal "0x3a2ed0")) () ")"))))) () ")")) (argument_list "(8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,\n             iVar14 + 0x5ca0)" (( "(") (number_literal "8") (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x57f0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x57f0")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x3a25b8) + 0x60b0" (pointer_expression "*(int *)(pcVar18 + 0x3a25b8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x3a25b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25b8)" (( "(") (binary_expression "pcVar18 + 0x3a25b8" (identifier "pcVar18") (+ "+") (number_literal "0x3a25b8")) () ")")))) (+ "+") (number_literal "0x60b0")) (, ",") (number_literal "0xfe1") (, ",") (binary_expression "iVar14 + 0x5ca0" (identifier "iVar14") (+ "+") (number_literal "0x5ca0")) () ")"))) (; ";")) (labeled_statement "LAB_000573e8:\n  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);" (statement_identifier "LAB_000573e8") (: ":") (expression_statement "(**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);" (call_expression "(**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000)" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a352c))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a352c)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a352c)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a352c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a352c)" (( "(") (binary_expression "pcVar18 + 0x3a352c" (identifier "pcVar18") (+ "+") (number_literal "0x3a352c")) () ")"))))) () ")")) (argument_list "(unaff_s1 + 0x4ed,unaff_s3,0x1000)" (( "(") (binary_expression "unaff_s1 + 0x4ed" (identifier "unaff_s1") (+ "+") (number_literal "0x4ed")) (, ",") (identifier "unaff_s3") (, ",") (number_literal "0x1000") () ")"))) (; ";"))) (expression_statement "unaff_s1[200] = 3;" (assignment_expression "unaff_s1[200] = 3" (subscript_expression "unaff_s1[200]" (identifier "unaff_s1") ([ "[") (number_literal "200") (] "]")) (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar14 = *unaff_s2;" (assignment_expression "iVar14 = *unaff_s2" (identifier "iVar14") (= "=") (pointer_expression "*unaff_s2" (* "*") (identifier "unaff_s2"))) (; ";")) (expression_statement "unaff_s1[0xcd] = unaff_s2[1];" (assignment_expression "unaff_s1[0xcd] = unaff_s2[1]" (subscript_expression "unaff_s1[0xcd]" (identifier "unaff_s1") ([ "[") (number_literal "0xcd") (] "]")) (= "=") (subscript_expression "unaff_s2[1]" (identifier "unaff_s2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "unaff_s1[0xcc] = iVar14;" (assignment_expression "unaff_s1[0xcc] = iVar14" (subscript_expression "unaff_s1[0xcc]" (identifier "unaff_s1") ([ "[") (number_literal "0xcc") (] "]")) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "iVar1 = FUN_00051e60(iVar1,0,pcVar19);" (assignment_expression "iVar1 = FUN_00051e60(iVar1,0,pcVar19)" (identifier "iVar1") (= "=") (call_expression "FUN_00051e60(iVar1,0,pcVar19)" (identifier "FUN_00051e60") (argument_list "(iVar1,0,pcVar19)" (( "(") (identifier "iVar1") (, ",") (number_literal "0") (, ",") (identifier "pcVar19") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar14 = unaff_s1[0xce];\n    uVar11 = unaff_s1[0xcf];\n    iVar1 = *unaff_s2;\n    uVar2 = uVar11 + unaff_s2[1];\n    uVar16 = uVar2 + unaff_s5;\n    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();\n    uVar6 = uVar16 - (int)uVar20;\n    *unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);\n    unaff_s2[1] = uVar6;\n    iVar1 = 1;\n  }" ({ "{") (expression_statement "iVar14 = unaff_s1[0xce];" (assignment_expression "iVar14 = unaff_s1[0xce]" (identifier "iVar14") (= "=") (subscript_expression "unaff_s1[0xce]" (identifier "unaff_s1") ([ "[") (number_literal "0xce") (] "]"))) (; ";")) (expression_statement "uVar11 = unaff_s1[0xcf];" (assignment_expression "uVar11 = unaff_s1[0xcf]" (identifier "uVar11") (= "=") (subscript_expression "unaff_s1[0xcf]" (identifier "unaff_s1") ([ "[") (number_literal "0xcf") (] "]"))) (; ";")) (expression_statement "iVar1 = *unaff_s2;" (assignment_expression "iVar1 = *unaff_s2" (identifier "iVar1") (= "=") (pointer_expression "*unaff_s2" (* "*") (identifier "unaff_s2"))) (; ";")) (expression_statement "uVar2 = uVar11 + unaff_s2[1];" (assignment_expression "uVar2 = uVar11 + unaff_s2[1]" (identifier "uVar2") (= "=") (binary_expression "uVar11 + unaff_s2[1]" (identifier "uVar11") (+ "+") (subscript_expression "unaff_s2[1]" (identifier "unaff_s2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar16 = uVar2 + unaff_s5;" (assignment_expression "uVar16 = uVar2 + unaff_s5" (identifier "uVar16") (= "=") (binary_expression "uVar2 + unaff_s5" (identifier "uVar2") (+ "+") (identifier "unaff_s5"))) (; ";")) (expression_statement "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();" (assignment_expression "uVar20 = (**(code **)(pcVar18 + 0x3a25f4))()" (identifier "uVar20") (= "=") (call_expression "(**(code **)(pcVar18 + 0x3a25f4))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x3a25f4))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x3a25f4)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x3a25f4)" (* "*") (cast_expression "(code **)(pcVar18 + 0x3a25f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x3a25f4)" (( "(") (binary_expression "pcVar18 + 0x3a25f4" (identifier "pcVar18") (+ "+") (number_literal "0x3a25f4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar6 = uVar16 - (int)uVar20;" (assignment_expression "uVar6 = uVar16 - (int)uVar20" (identifier "uVar6") (= "=") (binary_expression "uVar16 - (int)uVar20" (identifier "uVar16") (- "-") (cast_expression "(int)uVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar20")))) (; ";")) (expression_statement "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);" (assignment_expression "*unaff_s2 = (((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (pointer_expression "*unaff_s2" (* "*") (identifier "unaff_s2")) (= "=") (binary_expression "(((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6)" (parenthesized_expression "(((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20))" (( "(") (binary_expression "((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -\n                (int)((ulonglong)uVar20 >> 0x20)" (parenthesized_expression "((uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f))" (( "(") (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)" (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14 + iVar1" (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11) + iVar14" (binary_expression "(uint)(uVar16 < uVar2) +\n                 (uint)(uVar2 < uVar11)" (call_expression "(uint)(uVar16 < uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 < uVar2)" (( "(") (binary_expression "uVar16 < uVar2" (identifier "uVar16") (< "<") (identifier "uVar2")) () ")"))) (+ "+") (call_expression "(uint)(uVar2 < uVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 < uVar11)" (( "(") (binary_expression "uVar2 < uVar11" (identifier "uVar2") (< "<") (identifier "uVar11")) () ")")))) (+ "+") (identifier "iVar14")) (+ "+") (identifier "iVar1")) (+ "+") (parenthesized_expression "(unaff_s5 >> 0x1f)" (( "(") (binary_expression "unaff_s5 >> 0x1f" (identifier "unaff_s5") (>> ">>") (number_literal "0x1f")) () ")"))) () ")")) (- "-") (cast_expression "(int)((ulonglong)uVar20 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar20 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar20 >> 0x20" (cast_expression "(ulonglong)uVar20" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar20")) (>> ">>") (number_literal "0x20")) () ")")))) () ")")) (- "-") (call_expression "(uint)(uVar16 < uVar6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 < uVar6)" (( "(") (binary_expression "uVar16 < uVar6" (identifier "uVar16") (< "<") (identifier "uVar6")) () ")"))))) (; ";")) (expression_statement "unaff_s2[1] = uVar6;" (assignment_expression "unaff_s2[1] = uVar6" (subscript_expression "unaff_s2[1]" (identifier "unaff_s2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" (identifier "iVar1") (= "=") (number_literal "1")) (; ";")) (} "}"))) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}")))

/* 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 */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

type_1 * function_1(type_2 var_1,type_3 *nexus_info)

{
  type_1 *var_26;
  int var_7;
  void *var_12;
  type_4 var_20;
  char *pcVar5;
  type_5 *clone_info;
  type_6 uVar6;
  type_7 *pPVar7;
  type_4 var_23;
  type_7 *var_17;
  type_8 *var_4;
  type_2 var_6;
  type_9 *var_9;
  type_9 *var_10;
  type_10 PVar13;
  type_4 var_19;
  ssize_t sVar15;
  type_11 PVar16;
  int var_5;
  int *piVar18;
  type_5 *unaff_s1;
  type_4 var_22;
  int *var_14;
  int var_13;
  int var_15;
  int var_21;
  type_8 *var_3;
  type_12 *var_8;
  type_13 *exception;
  type_14 uVar22;
  
  if (var_1 == (type_2)0x0) {
    (*(type_12 *)PTR___assert_fail_003fa620)
              (var_2 + 0x59e0,var_2 + 0x57f0,0xd15,var_2 + 0x60d8);
  }
  else if (*(int *)((int)var_1 + 0x2404) == -0x54535255) {
                    /* WARNING: Load size is inaccurate */
    var_26 = (type_1 *)0x0;
    if (*var_1 != 0) {
      var_26 = nexus_info->pixels;
    }
    return var_26;
  }
  var_4 = var_2 + 0x5804;
  var_3 = PTR___assert_fail_003fa620;
  (*(type_12 *)PTR___assert_fail_003fa620)(var_4,var_2 + 0x57f0,0xd17);
  var_7 = (**(type_12 **)(var_3 + 0x3a34cc))();
  if (var_4 == (type_8 *)0x0) {
    var_5 = *(int *)(var_3 + 0x3a288c) + 0x62a8;
    (**(type_12 **)(var_3 + 0x3a35cc))
              (*(int *)(var_3 + 0x3a2890) + -0x7b0,*(int *)(var_3 + 0x3a288c) + 0x57f0,0xcec,
               var_5);
LAB_0005711c:
    var_5 = var_5 + 0x62a8;
    (**(type_12 **)(var_3 + 0x3a35cc))
              (*(int *)(var_3 + 0x3a2890) + -0x784,*(int *)(var_3 + 0x3a288c) + 0x57f0,0xced,
               var_5);
LAB_00057140:
    (**(type_12 **)(var_3 + 0x3a35cc))
              (*(int *)(var_3 + 0x3a288c) + 0x6818,*(int *)(var_3 + 0x3a288c) + 0x57f0,0xcee,
               var_5 + 0x62a8);
LAB_00057164:
    (**(type_12 **)(var_3 + 0x3a35cc))
              (*(int *)(var_3 + 0x3a288c) + 0x5804,*(int *)(var_3 + 0x3a288c) + 0x57f0,0xcf0);
  }
  else {
    var_5 = *(int *)(var_3 + 0x3a288c);
    if (*(int *)(var_4 + 0x336c) != -0x54535255) goto LAB_0005711c;
    var_6 = *(type_2 *)(var_4 + 0x2d4);
    if (var_6 == (type_2)0x0) goto LAB_00057140;
    if (*(int *)((int)var_6 + 0x2404) != -0x54535255) goto LAB_00057164;
    if (var_7 < *(int *)((int)var_6 + 0x3a0)) {
      var_26 = function_1
                         (var_6,*(type_3 **)(*(int *)((int)var_6 + 0x3a4) + var_7 * 4));
      return var_26;
    }
  }
  var_9 = (type_9 *)(*(int *)(var_3 + 0x3a288c) + 0x5834);
  var_8 = *(type_12 **)(var_3 + 0x3a35cc);
  (*var_8)(var_9,*(int *)(var_3 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(var_3 + 0x3a288c) + 0x62a8
            );
  exception = (type_13 *)(var_8 + 0x3aa704);
  var_7 = (**(type_12 **)(var_8 + 0x3a3374))();
  if (var_9 == (type_9 *)0x0) {
    var_5 = *(int *)(var_8 + 0x3a2734) + 0x6104;
    (**(type_12 **)(var_8 + 0x3a3474))
              (*(int *)(var_8 + 0x3a2738) + -0x7b0,*(int *)(var_8 + 0x3a2734) + 0x57f0,0xc75,
               var_5);
LAB_00057264:
    var_5 = var_5 + 0x6104;
    (**(type_12 **)(var_8 + 0x3a3474))
              (*(int *)(var_8 + 0x3a2738) + -0x784,*(int *)(var_8 + 0x3a2734) + 0x57f0,0xc76,
               var_5);
LAB_00057288:
    (**(type_12 **)(var_8 + 0x3a3474))
              (*(int *)(var_8 + 0x3a2734) + 0x6818,*(int *)(var_8 + 0x3a2734) + 0x57f0,0xc77,
               var_5 + 0x6104);
LAB_000572ac:
    var_6 = (type_2)(*(int *)(var_8 + 0x3a2734) + 0x5804);
    var_7 = (**(type_12 **)(var_8 + 0x3a3474))(var_6,*(int *)(var_8 + 0x3a2734) + 0x57f0,0xc79);
  }
  else {
    var_5 = *(int *)(var_8 + 0x3a2734);
    if (var_9->signature != 0xabacadab) goto LAB_00057264;
    var_6 = var_9->var_1;
    if (var_6 == (type_2)0x0) goto LAB_00057288;
    if (*(int *)((int)var_6 + 0x2404) != -0x54535255) goto LAB_000572ac;
    if (*(type_12 **)((int)var_6 + 0x23b8) != (type_12 *)0x0) {
      var_26 = (type_1 *)(**(type_12 **)((int)var_6 + 0x23b8))(var_9);
      return var_26;
    }
  }
  if (var_7 < *(int *)((int)var_6 + 0x3a0)) {
    var_26 = function_1
                       (var_6,*(type_3 **)(*(int *)((int)var_6 + 0x3a4) + var_7 * 4));
    return var_26;
  }
  piVar18 = (int *)(*(int *)(var_8 + 0x3a2734) + 0x6104);
  var_5 = 0xc7d;
  var_7 = *(int *)(var_8 + 0x3a2734) + 0x57f0;
  var_10 = (type_9 *)(*(int *)(var_8 + 0x3a2734) + 0x5834);
  var_8 = *(type_12 **)(var_8 + 0x3a3474);
  (*var_8)();
  if (var_10 == (type_9 *)0x0) {
    (**(type_12 **)(var_8 + 0x3a32f8))
              (*(int *)(var_8 + 0x3a25b8) + 0x3da0,*(int *)(var_8 + 0x3a25b8) + 0x57f0,0xfce,
               *(int *)(var_8 + 0x3a25b8) + 0x60c4);
LAB_000574f0:
    pcVar5 = (char *)(**(type_12 **)(var_8 + 0x3a32f8))
                               (*(int *)(var_8 + 0x3a25bc) + -0x784,
                                *(int *)(var_8 + 0x3a25b8) + 0x57f0,0xfcf,
                                *(int *)(var_8 + 0x3a25b8) + 0x60c4);
LAB_00057518:
    (**(type_12 **)(var_8 + 0x3a2ed0))
              (0x8000,*(int *)(var_8 + 0x3a25b8) + 0x57f0,*(int *)(var_8 + 0x3a25b8) + 0x60b0,
               0xfd1,*(int *)(var_8 + 0x3a25c0) + -0x2f6c,pcVar5);
    var_12 = var_9->var_1;
  }
  else {
    var_9 = var_10;
    var_14 = piVar18;
    var_13 = var_7;
    var_15 = var_5;
    if (var_10->signature != 0xabacadab) goto LAB_000574f0;
    pcVar5 = var_10->filename;
    if (var_10->debug != var_11) goto LAB_00057518;
    var_12 = var_10->var_1;
  }
  if (var_12 == (void *)0x0) {
    var_7 = *(int *)(var_8 + 0x3a25b8) + 0x60c4;
    (**(type_12 **)(var_8 + 0x3a32f8))
              (*(int *)(var_8 + 0x3a25b8) + 0x5c5c,*(int *)(var_8 + 0x3a25b8) + 0x57f0,0xfd2,
               var_7);
LAB_0005757c:
    var_7 = var_7 + 0x60c4;
    (**(type_12 **)(var_8 + 0x3a32f8))
              (*(int *)(var_8 + 0x3a25b8) + 0x4b2c,*(int *)(var_8 + 0x3a25b8) + 0x57f0,0xfd3,
               var_7);
LAB_000575a0:
    var_7 = var_7 + 0x60c4;
    (**(type_12 **)(var_8 + 0x3a32f8))
              (*(int *)(var_8 + 0x3a25b8) + 0x5c7c,*(int *)(var_8 + 0x3a25b8) + 0x57f0,0xfd4,
               var_7);
LAB_000575c4:
    var_7 = (**(type_12 **)(var_8 + 0x3a32f8))
                      (*(int *)(var_8 + 0x3a25b8) + 0x5804,*(int *)(var_8 + 0x3a25b8) + 0x57f0,
                       0xfd7,var_7 + 0x60c4);
  }
  else {
    var_7 = *(int *)(var_8 + 0x3a25b8);
    if (var_13 == 0) goto LAB_0005757c;
    if (var_14 == (int *)0x0) goto LAB_000575a0;
    var_21 = (**(type_12 **)(var_8 + 0x3a2650))();
    unaff_s1 = (type_5 *)var_9->var_1;
    var_7 = *(int *)(var_8 + 0x3a25b8);
    if (unaff_s1->signature != 0xabacadab) goto LAB_000575c4;
    if (var_15 == 0) {
      var_7 = (**(type_12 **)(var_8 + 0x3a350c))(2);
      if (var_7 != 0) {
        clone_info = (type_5 *)var_16(unaff_s1);
        clone_info->type = DiskCache;
        (**(type_12 **)(var_8 + 0x3a352c))(clone_info->cache_filename,var_13,0x1000);
        clone_info->file = -1;
        clone_info->storage_class = unaff_s1->storage_class;
        clone_info->colorspace = unaff_s1->colorspace;
        clone_info->alpha_trait = unaff_s1->alpha_trait;
        clone_info->channels = unaff_s1->channels;
        clone_info->columns = unaff_s1->columns;
        clone_info->rows = unaff_s1->rows;
        clone_info->number_channels = unaff_s1->number_channels;
        clone_info->metacontent_extent = unaff_s1->metacontent_extent;
        clone_info->mode = PersistMode;
        uVar6 = *(type_6 *)&unaff_s1->length;
        *(int *)((int)&clone_info->length + 4) = (int)unaff_s1->length;
        *(type_6 *)&clone_info->length = uVar6;
        var_17 = unaff_s1->channel_map;
        pPVar7 = clone_info->channel_map;
        do {
          PVar16 = var_17->traits;
          sVar15 = var_17->offset;
          PVar13 = var_17[1].channel;
          pPVar7->channel = var_17->channel;
          pPVar7->traits = PVar16;
          pPVar7->offset = sVar15;
          pPVar7[1].channel = PVar13;
          var_17 = (type_7 *)&var_17[1].traits;
          pPVar7 = (type_7 *)&pPVar7[1].traits;
        } while (var_17 != (type_7 *)&unaff_s1->type);
        var_7 = *var_14;
        *(int *)((int)&clone_info->offset + 4) = var_14[1];
        *(int *)&clone_info->offset = var_7;
        var_26 = (type_1 *)var_18(clone_info,unaff_s1,exception);
        var_5 = *(int *)&unaff_s1->length;
        var_19 = (type_4)unaff_s1->length;
        var_7 = *var_14;
        var_20 = var_19 + var_14[1];
        var_22 = var_20 + var_21;
        uVar22 = (**(type_12 **)(var_8 + 0x3a25f4))();
        var_23 = var_22 - (int)uVar22;
        *var_14 = (((type_4)(var_22 < var_20) +
                     (type_4)(var_20 < var_19) + var_5 + var_7 + (var_21 >> 0x1f)) -
                    (int)((type_15)uVar22 >> 0x20)) - (type_4)(var_22 < var_23);
        var_14[1] = var_23;
        var_24(clone_info);
        return var_26;
      }
      (**(type_12 **)(var_8 + 0x3a2c10))
                (exception,*(int *)(var_8 + 0x3a25b8) + 0x57f0,
                 *(int *)(var_8 + 0x3a25b8) + 0x60b0,0xff2,0x1bd,
                 *(int *)(var_8 + 0x3a25b8) + 0x5b98,*(int *)(var_8 + 0x3a25b8) + 0x6e78,
                 var_9->filename);
      return (type_1 *)0x0;
    }
    var_7 = *(int *)(var_8 + 0x3a25b8);
    if (var_9->debug == var_11) goto LAB_000573e8;
  }
  (**(type_12 **)(var_8 + 0x3a2ed0))
            (8,*(int *)(var_8 + 0x3a25b8) + 0x57f0,*(int *)(var_8 + 0x3a25b8) + 0x60b0,0xfe1,
             var_7 + 0x5ca0);
LAB_000573e8:
  (**(type_12 **)(var_8 + 0x3a352c))(unaff_s1->cache_filename,var_13,0x1000);
  unaff_s1->type = MapCache;
  var_7 = *var_14;
  *(int *)((int)&unaff_s1->offset + 4) = var_14[1];
  *(int *)&unaff_s1->offset = var_7;
  var_26 = (type_1 *)var_25(var_9,ReadMode,exception);
  if (var_26 != (type_1 *)0x0) {
    var_5 = *(int *)&unaff_s1->length;
    var_19 = (type_4)unaff_s1->length;
    var_7 = *var_14;
    var_20 = var_19 + var_14[1];
    var_22 = var_20 + var_21;
    uVar22 = (**(type_12 **)(var_8 + 0x3a25f4))();
    var_23 = var_22 - (int)uVar22;
    *var_14 = (((type_4)(var_22 < var_20) +
                 (type_4)(var_20 < var_19) + var_5 + var_7 + (var_21 >> 0x1f)) -
                (int)((type_15)uVar22 >> 0x20)) - (type_4)(var_22 < var_23);
    var_14[1] = var_23;
    var_26 = (type_1 *)0x1;
  }
  return var_26;
}


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

int MASKED(int *param_1,int param_2)

{
  int iVar1;
  uint uVar2;
  undefined4 *puVar3;
  undefined4 uVar4;
  undefined4 *puVar5;
  uint uVar6;
  undefined4 *puVar7;
  undefined *puVar8;
  int iVar9;
  int iVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  int iVar14;
  int *piVar15;
  undefined4 *unaff_s1;
  uint uVar16;
  int *unaff_s2;
  int unaff_s3;
  int unaff_s4;
  int unaff_s5;
  undefined *puVar17;
  code *pcVar18;
  code *pcVar19;
  undefined8 uVar20;
  
  if (param_1 == (int *)0x0) {
    (*(code *)PTR___assert_fail_003fa620)
              (PTR_LAB_003f98e0 + 0x59e0,PTR_LAB_003f98e0 + 0x57f0,0xd15,PTR_LAB_003f98e0 + 0x60d8);
  }
  else if (param_1[0x901] == -0x54535255) {
    iVar1 = 0;
    if (*param_1 != 0) {
      iVar1 = *(int *)(param_2 + 0x24);
    }
    return iVar1;
  }
  puVar8 = PTR_LAB_003f98e0 + 0x5804;
  puVar17 = PTR___assert_fail_003fa620;
  (*(code *)PTR___assert_fail_003fa620)(puVar8,PTR_LAB_003f98e0 + 0x57f0,0xd17);
  iVar1 = (**(code **)(puVar17 + 0x3a34cc))();
  if (puVar8 == (undefined *)0x0) {
    iVar14 = *(int *)(puVar17 + 0x3a288c) + 0x62a8;
    (**(code **)(puVar17 + 0x3a35cc))
              (*(int *)(puVar17 + 0x3a2890) + -0x7b0,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcec,
               iVar14);
LAB_0005711c:
    iVar14 = iVar14 + 0x62a8;
    (**(code **)(puVar17 + 0x3a35cc))
              (*(int *)(puVar17 + 0x3a2890) + -0x784,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xced,
               iVar14);
LAB_00057140:
    (**(code **)(puVar17 + 0x3a35cc))
              (*(int *)(puVar17 + 0x3a288c) + 0x6818,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcee,
               iVar14 + 0x62a8);
LAB_00057164:
    (**(code **)(puVar17 + 0x3a35cc))
              (*(int *)(puVar17 + 0x3a288c) + 0x5804,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf0);
  }
  else {
    iVar14 = *(int *)(puVar17 + 0x3a288c);
    if (*(int *)(puVar8 + 0x336c) != -0x54535255) goto LAB_0005711c;
    iVar9 = *(int *)(puVar8 + 0x2d4);
    if (iVar9 == 0) goto LAB_00057140;
    if (*(int *)(iVar9 + 0x2404) != -0x54535255) goto LAB_00057164;
    if (iVar1 < *(int *)(iVar9 + 0x3a0)) {
      iVar1 = MASKED(iVar9,*(undefined4 *)(*(int *)(iVar9 + 0x3a4) + iVar1 * 4));
      return iVar1;
    }
  }
  iVar1 = *(int *)(puVar17 + 0x3a288c) + 0x5834;
  pcVar18 = *(code **)(puVar17 + 0x3a35cc);
  (*pcVar18)(iVar1,*(int *)(puVar17 + 0x3a288c) + 0x57f0,0xcf1,*(int *)(puVar17 + 0x3a288c) + 0x62a8
            );
  pcVar19 = pcVar18 + 0x3aa704;
  iVar14 = (**(code **)(pcVar18 + 0x3a3374))();
  if (iVar1 == 0) {
    iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x6104;
    (**(code **)(pcVar18 + 0x3a3474))
              (*(int *)(pcVar18 + 0x3a2738) + -0x7b0,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc75,
               iVar9);
LAB_00057264:
    iVar9 = iVar9 + 0x6104;
    (**(code **)(pcVar18 + 0x3a3474))
              (*(int *)(pcVar18 + 0x3a2738) + -0x784,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc76,
               iVar9);
LAB_00057288:
    (**(code **)(pcVar18 + 0x3a3474))
              (*(int *)(pcVar18 + 0x3a2734) + 0x6818,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc77,
               iVar9 + 0x6104);
LAB_000572ac:
    iVar10 = *(int *)(pcVar18 + 0x3a2734) + 0x5804;
    iVar14 = (**(code **)(pcVar18 + 0x3a3474))(iVar10,*(int *)(pcVar18 + 0x3a2734) + 0x57f0,0xc79);
  }
  else {
    iVar9 = *(int *)(pcVar18 + 0x3a2734);
    if (*(int *)(iVar1 + 0x336c) != -0x54535255) goto LAB_00057264;
    iVar10 = *(int *)(iVar1 + 0x2d4);
    if (iVar10 == 0) goto LAB_00057288;
    if (*(int *)(iVar10 + 0x2404) != -0x54535255) goto LAB_000572ac;
    if (*(code **)(iVar10 + 0x23b8) != (code *)0x0) {
      iVar1 = (**(code **)(iVar10 + 0x23b8))(iVar1);
      return iVar1;
    }
  }
  if (iVar14 < *(int *)(iVar10 + 0x3a0)) {
    iVar1 = MASKED();
    return iVar1;
  }
  piVar15 = (int *)(*(int *)(pcVar18 + 0x3a2734) + 0x6104);
  iVar10 = 0xc7d;
  iVar9 = *(int *)(pcVar18 + 0x3a2734) + 0x57f0;
  iVar14 = *(int *)(pcVar18 + 0x3a2734) + 0x5834;
  pcVar18 = *(code **)(pcVar18 + 0x3a3474);
  (*pcVar18)();
  if (iVar14 == 0) {
    (**(code **)(pcVar18 + 0x3a32f8))
              (*(int *)(pcVar18 + 0x3a25b8) + 0x3da0,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfce,
               *(int *)(pcVar18 + 0x3a25b8) + 0x60c4);
LAB_000574f0:
    iVar9 = (**(code **)(pcVar18 + 0x3a32f8))
                      (*(int *)(pcVar18 + 0x3a25bc) + -0x784,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,
                       0xfcf,*(int *)(pcVar18 + 0x3a25b8) + 0x60c4);
LAB_00057518:
    (**(code **)(pcVar18 + 0x3a2ed0))
              (0x8000,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,
               0xfd1,*(int *)(pcVar18 + 0x3a25c0) + -0x2f6c,iVar9);
    iVar14 = *(int *)(iVar1 + 0x2d4);
  }
  else {
    iVar1 = iVar14;
    unaff_s2 = piVar15;
    unaff_s3 = iVar9;
    unaff_s4 = iVar10;
    if (*(int *)(iVar14 + 0x336c) != -0x54535255) goto LAB_000574f0;
    iVar9 = iVar14 + 0x340;
    if (*(int *)(iVar14 + 0x3350) != 0) goto LAB_00057518;
    iVar14 = *(int *)(iVar14 + 0x2d4);
  }
  if (iVar14 == 0) {
    iVar14 = *(int *)(pcVar18 + 0x3a25b8) + 0x60c4;
    (**(code **)(pcVar18 + 0x3a32f8))
              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c5c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd2,
               iVar14);
LAB_0005757c:
    iVar14 = iVar14 + 0x60c4;
    (**(code **)(pcVar18 + 0x3a32f8))
              (*(int *)(pcVar18 + 0x3a25b8) + 0x4b2c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd3,
               iVar14);
LAB_000575a0:
    iVar14 = iVar14 + 0x60c4;
    (**(code **)(pcVar18 + 0x3a32f8))
              (*(int *)(pcVar18 + 0x3a25b8) + 0x5c7c,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,0xfd4,
               iVar14);
LAB_000575c4:
    iVar14 = (**(code **)(pcVar18 + 0x3a32f8))
                       (*(int *)(pcVar18 + 0x3a25b8) + 0x5804,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,
                        0xfd7,iVar14 + 0x60c4);
  }
  else {
    iVar14 = *(int *)(pcVar18 + 0x3a25b8);
    if (unaff_s3 == 0) goto LAB_0005757c;
    if (unaff_s2 == (int *)0x0) goto LAB_000575a0;
    unaff_s5 = (**(code **)(pcVar18 + 0x3a2650))();
    unaff_s1 = *(undefined4 **)(iVar1 + 0x2d4);
    iVar14 = *(int *)(pcVar18 + 0x3a25b8);
    if (unaff_s1[0x901] != -0x54535255) goto LAB_000575c4;
    if (unaff_s4 == 0) {
      iVar14 = (**(code **)(pcVar18 + 0x3a350c))(2);
      if (iVar14 != 0) {
        puVar3 = (undefined4 *)FUN_000508d4(unaff_s1);
        puVar3[200] = 1;
        (**(code **)(pcVar18 + 0x3a352c))(puVar3 + 0x4ed,unaff_s3,0x1000);
        puVar3[0xec] = 0xffffffff;
        *puVar3 = *unaff_s1;
        puVar3[1] = unaff_s1[1];
        puVar3[2] = unaff_s1[2];
        puVar3[3] = unaff_s1[3];
        puVar3[4] = unaff_s1[4];
        puVar3[5] = unaff_s1[5];
        puVar3[7] = unaff_s1[7];
        puVar3[6] = unaff_s1[6];
        puVar3[0xc9] = 3;
        uVar4 = unaff_s1[0xce];
        puVar3[0xcf] = unaff_s1[0xcf];
        puVar3[0xce] = uVar4;
        puVar7 = unaff_s1 + 8;
        puVar5 = puVar3 + 8;
        do {
          uVar13 = puVar7[1];
          uVar12 = puVar7[2];
          uVar4 = puVar7[3];
          *puVar5 = *puVar7;
          puVar5[1] = uVar13;
          puVar5[2] = uVar12;
          puVar5[3] = uVar4;
          puVar7 = puVar7 + 4;
          puVar5 = puVar5 + 4;
        } while (puVar7 != unaff_s1 + 200);
        iVar1 = *unaff_s2;
        puVar3[0xcd] = unaff_s2[1];
        puVar3[0xcc] = iVar1;
        iVar1 = FUN_0005135c(puVar3,unaff_s1,pcVar19);
        iVar9 = unaff_s1[0xce];
        uVar11 = unaff_s1[0xcf];
        iVar14 = *unaff_s2;
        uVar2 = uVar11 + unaff_s2[1];
        uVar16 = uVar2 + unaff_s5;
        uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();
        uVar6 = uVar16 - (int)uVar20;
        *unaff_s2 = (((uint)(uVar16 < uVar2) +
                     (uint)(uVar2 < uVar11) + iVar9 + iVar14 + (unaff_s5 >> 0x1f)) -
                    (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);
        unaff_s2[1] = uVar6;
        FUN_00050cb4(puVar3);
        return iVar1;
      }
      (**(code **)(pcVar18 + 0x3a2c10))
                (pcVar19,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0
                 ,0xff2,0x1bd,*(int *)(pcVar18 + 0x3a25b8) + 0x5b98,
                 *(int *)(pcVar18 + 0x3a25b8) + 0x6e78,iVar1 + 0x340);
      return 0;
    }
    iVar14 = *(int *)(pcVar18 + 0x3a25b8);
    if (*(int *)(iVar1 + 0x3350) == 0) goto LAB_000573e8;
  }
  (**(code **)(pcVar18 + 0x3a2ed0))
            (8,*(int *)(pcVar18 + 0x3a25b8) + 0x57f0,*(int *)(pcVar18 + 0x3a25b8) + 0x60b0,0xfe1,
             iVar14 + 0x5ca0);
LAB_000573e8:
  (**(code **)(pcVar18 + 0x3a352c))(unaff_s1 + 0x4ed,unaff_s3,0x1000);
  unaff_s1[200] = 3;
  iVar14 = *unaff_s2;
  unaff_s1[0xcd] = unaff_s2[1];
  unaff_s1[0xcc] = iVar14;
  iVar1 = FUN_00051e60(iVar1,0,pcVar19);
  if (iVar1 != 0) {
    iVar14 = unaff_s1[0xce];
    uVar11 = unaff_s1[0xcf];
    iVar1 = *unaff_s2;
    uVar2 = uVar11 + unaff_s2[1];
    uVar16 = uVar2 + unaff_s5;
    uVar20 = (**(code **)(pcVar18 + 0x3a25f4))();
    uVar6 = uVar16 - (int)uVar20;
    *unaff_s2 = (((uint)(uVar16 < uVar2) +
                 (uint)(uVar2 < uVar11) + iVar14 + iVar1 + (unaff_s5 >> 0x1f)) -
                (int)((ulonglong)uVar20 >> 0x20)) - (uint)(uVar16 < uVar6);
    unaff_s2[1] = uVar6;
    iVar1 = 1;
  }
  return iVar1;
}

